Seems like an interesting effort. A developer is building an alternative Java-based backend to Lemmy’s Rust-based one, with the goal of building in a handful of different features. The dev is looking at using this compatibility to migrate their instance over to the new platform, while allowing the community to use their apps of choice.

  • bdonvr@thelemmy.club
    link
    fedilink
    English
    arrow-up
    64
    arrow-down
    3
    ·
    11 months ago

    What missing features are so important that you decide to recreate the entire backend of Lemmy because you think the devs aren’t fast enough?

    • Ghostalmedia@lemmy.world
      link
      fedilink
      English
      arrow-up
      62
      arrow-down
      7
      ·
      11 months ago

      Java instead of Rust is going to be a big thing for a lot of people who would like to contribute in their spare time. Yeah, Rust is cool, but every CS grad and their mother knows Java.

      Back during the migration surge a few months ago, you commonly saw a LOT of comments from folks saying they would love to help eat away at the project’s backlog, but they just didn’t have the time or energy to learn Rust at the moment.

      • Amaltheamannen@lemmy.ml
        link
        fedilink
        English
        arrow-up
        42
        arrow-down
        8
        ·
        11 months ago

        Any recent CS grad is obsessed with rust, trust me. It’s not hard to learn either with that background.

        • Undaunted@feddit.de
          link
          fedilink
          English
          arrow-up
          26
          arrow-down
          6
          ·
          11 months ago

          I’m not saying that rewriting he backend is a good choice, but for me specifically, I’d like Lemmy to be written in Java. Why? I’m a Java software engineer for nearly 7 years now and I’d like to contribute. Yes, I could learn Rust, like I did learn Go, C, C++ and other languages during my cs studies. But I really don’t have the free time and motivation to do that after I already worked 8-10 hours at my computer. If I could use my existing Java knowledge to quickly fix some small bugs or whatever, I’d love to do that. But the hurdle to learn a new language (including other paradigms and best practices) just to contribute to this one project is just too high for me.

          • peopleproblems@lemmy.world
            link
            fedilink
            English
            arrow-up
            12
            arrow-down
            1
            ·
            11 months ago

            Yeah, same boat. I’m continuously learning new shit with C# and I’m starting to understand Angular after all these years. I could switch back to Java with few issues.

            I would love to learn Rust, but there’s no time right now.

          • Spzi@lemm.ee
            link
            fedilink
            English
            arrow-up
            11
            arrow-down
            2
            ·
            11 months ago

            Exactly this. It’s often about finding the right balance between technically optimal, and socially feasible (lacking the right phrase here).

            The nerds brimming with technical expertise often neglect the second point.

            Oh - wow! I was about to complain about how https://join-lemmy.org/ is a shining bad example in this regard, talking about server stuff right away and hiding how Lemmy actually looks until page 3, but apparently they changed that and improved it drastically. Cool, good job!

            Anyways.

            For collaborative projects especially, it is important to strike a balance between tech and social aspects. Making poor tech choices will put people off. But making your project less accessible will also result in less people joining. It’s crucial to find a good balance here. For many coming from the tech side, this usually means making far more concessions to the social side than intuitively feels right.

          • Amaltheamannen@lemmy.ml
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            2
            ·
            11 months ago

            Once you know a few languages and the principles for how a computer works moving to a new one is easy. Don’t think of it as being a “Java developer”, but a programmer. It’s just a tool.

            We did not learn languages at uni, but concepts. You use the same data structures and algorithms.

            I think you’d be surprised, try picking up rust for some advent of code challenges. If you know Java Streams and C/C++ lower level programming all that you’re missing is some pattern matching.

            • magic_lobster_party@kbin.social
              link
              fedilink
              arrow-up
              3
              ·
              11 months ago

              Anyone can quickly learn how to solve some code challenges in a new language.

              It’s a completely different story to learn how to write long lived enterprise scale programs that can grow with multiple independent contributors. This takes a lifetime to learn. More people have more experience to do it with Java.

            • uranibaba@lemmy.world
              link
              fedilink
              English
              arrow-up
              3
              ·
              11 months ago

              I know Java and I am learning C#, I don’t feel like I can just send a few hours and be at the same level as I am with Java. There are a lot of things I do not know or understand yet with C#.

        • Dandroid@dandroid.app
          link
          fedilink
          English
          arrow-up
          9
          ·
          11 months ago

          That feeling when you’re not a recent CS grad anymore 😭

          I never even heard of rust when I graduated in 2016.

        • Ghostalmedia@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          11 months ago

          If I were to guess, it’s not recent grads making those posts. I got the sense those comments were coming from people who had been around for a while. Folks who are now senior enough to be trapped in draining meetings all day, and have to manage a family a night.

          The work day and home life can get longer and more exhausting the further the older you get.

      • P03 Locke@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        16
        arrow-down
        6
        ·
        11 months ago

        Yeah, Rust is cool, but every CS grad and their mother knows Java.

        Sure, twenty-five years ago, when Sun was pushing their language hard into colleges everywhere.

        Now? Sun Microsystems doesn’t even exist, and everybody hates the JVM in an ecosystem where VMWare, Docker, and Kubernetes do the whole “virtual machine” model much better.

        • Cosmic Cleric@lemmy.world
          link
          fedilink
          English
          arrow-up
          11
          arrow-down
          1
          ·
          11 months ago

          Now? Sun Microsystems doesn’t even exist

          That was a long, long, long time ago.

          Java has continued to be very popular after Oracle purchased Sun Microsystems.

        • uranibaba@lemmy.world
          link
          fedilink
          English
          arrow-up
          7
          ·
          11 months ago

          Can’t say I agree. It feels like an almost even 50/50 split between Java and C# when I look at job postings.

      • ComradeKhoumrag@infosec.pub
        link
        fedilink
        English
        arrow-up
        13
        arrow-down
        8
        ·
        11 months ago

        I think rust is a very pragmatic choice, lemmy is decentralized, the security benefits are a necessity when it comes to self hosters donating hardware

          • Dessalines@lemmy.ml
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            1
            ·
            11 months ago

            After working in java for over a decade, I will never use another garbage-collected language if I can avoid it again. I still have nightmares about debugging memory build-ups and having to trace down where to do manual garbage collection. I remember my shop eventually just paid for 32 GB ram servers, and java filled those up too.

            Rust doesn’t have these problems because its not a garbage collected language like java or go, and has an ownership-based memory model that’s easy to work with.

              • Dessalines@lemmy.ml
                link
                fedilink
                English
                arrow-up
                2
                arrow-down
                1
                ·
                11 months ago

                Garbage collection is by nature imperfect, its impossible for it to always be correct about when and what things to free up in memory. The best option is to not use a garbage collected language.

                • kaffiene@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  11 months ago

                  Wow. It’s amazing that anyone ever got anything to work in java. Must have never got used for anything

            • kaffiene@lemmy.world
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              1
              ·
              11 months ago

              That wasn’t a memory safety issue, that was a what the fuck were you thinking design issue. It would have been batshit in any language

      • SorteKanin@feddit.dk
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        5
        ·
        11 months ago

        Yeah, Rust is cool, but every CS grad and their mother knows Java.

        This is quite an outdated view I would say.

        • Ghostalmedia@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          2
          ·
          11 months ago

          Perhaps, but a lot of devs wanted to contribute to a Java client, and that’s what they were saying.

    • 0x1C3B00DA@kbin.social
      link
      fedilink
      arrow-up
      25
      ·
      11 months ago

      Lemmy doesn’t have to have missing features for someone to want to write their own implementation. And in a decentralized system you want multiple implementations to exist. This is a good thing

    • BURN@lemmy.world
      link
      fedilink
      English
      arrow-up
      19
      ·
      11 months ago

      It seems to be more language focused than hard to PR against the main repo.

      Java is much more widely known than Rust, which means a much larger pool of developers. I never contributed to the original Lemmy server because I couldn’t wrap my head around a full production scale rust project. I’ll very likely contribute to this because I work with production Java code daily. Im sure I’m not the only other dev who has run into this.

      Also maybe there’s just too many disagreements with the Lemmy owners, who are a bit extreme for a lot of people.

      • kersploosh@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        11 months ago

        This looks like the major driver of the project, IMO. The Sublinks roadmap is full of feature ideas geared toward better moderation, both at the community and instance level.