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.

  • deegeese
    link
    fedilink
    English
    arrow-up
    96
    arrow-down
    11
    ·
    5 months ago

    I have a hard time believing that rewriting the backend from scratch would be faster than getting PRs approved on the main project.

    Forks like this with one guy who “knows best” usually die a slow quiet death as they get left behind by the main project.

    • spaduf@slrpnk.net
      link
      fedilink
      English
      arrow-up
      60
      arrow-down
      4
      ·
      5 months ago

      I think how quickly this project has gotten to near feature parity is a testament to how slow Lemmy development has been. Think about scaled sort (a feature that has been hotly requested since the migration) and how long that took to get merged in. A sort should not by any means be slow to implement.

        • spaduf@slrpnk.net
          link
          fedilink
          English
          arrow-up
          26
          arrow-down
          2
          ·
          edit-2
          5 months ago

          IMO slow development isn’t necessarily a bad thing.

          Sure but even just recently there was the example of breaking federation over Christmas. Some of those issues persist through 0.19.3 which came out today

          Similarly scaled sort would have made a huge difference for small communities in the period directly after the migration.

        • Carighan Maconar@lemmy.world
          link
          fedilink
          English
          arrow-up
          8
          arrow-down
          3
          ·
          5 months ago

          IMO slow development isn’t necessarily a bad thing.

          Quite the opposite, often it’s a benefit as you don’t end up wasting time and changing code for features where you don’t actually know yet whether your current usage demands or supports them. There’s a lot of genefit in not moving fast and not breaking things. Mostly that, well, you don’t constantly break things.

      • deegeese
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        4
        ·
        5 months ago

        A sort should not by any means be slow to implement.

        Sure, if the sort key is something readily available. But for scaled sort they have to compute relative size/activity of the communities the specific user is in. The cost isn’t the sort, it’s computing the metric.

        • spaduf@slrpnk.net
          link
          fedilink
          English
          arrow-up
          9
          ·
          edit-2
          5 months ago

          I’m not talking about the literal sorting algorithm. Pretty sure scaled sort is exactly one more operation than hot.

      • deegeese
        link
        fedilink
        English
        arrow-up
        28
        arrow-down
        9
        ·
        5 months ago

        I’m a Java developer and I would much rather pick up Rust to join an active project than try to rebuild something that already works using a less-marketable language.

        • sik0fewl@kbin.social
          link
          fedilink
          arrow-up
          15
          arrow-down
          1
          ·
          5 months ago

          Sure, but it’s a lot more work for you to get to a point where you can be an active contributor.

          • deegeese
            link
            fedilink
            English
            arrow-up
            10
            arrow-down
            10
            ·
            edit-2
            5 months ago

            Is it really a lot of work for an experienced dev? I can pick up most new languages in a day or 2 unless it’s a total paradigm shift.

            • sik0fewl@kbin.social
              link
              fedilink
              arrow-up
              20
              ·
              5 months ago

              1-2 days is enough to learn the basics, but I doubt you’ll be as nearly as productive as with something you’ve been using for years. Keep in mind that new languages also mean new frameworks, etc, some which take years to actually master, but at least months to get a good handle on them.

              Also, from my understanding, Rust is a bit of a paradigm shift.

            • Carighan Maconar@lemmy.world
              link
              fedilink
              English
              arrow-up
              9
              ·
              5 months ago

              Yeah but there’s a big difference between having “picked up” a new language and being on the level where you can viably add useful code to a distributed federated deployed platform.

              I have 12 years in Java by now, I’m fairly confident with it. Rust, yeah no, not for production code.

            • magic_lobster_party@kbin.social
              link
              fedilink
              arrow-up
              1
              ·
              5 months ago

              Sure, anyone can pick up a new language or two over a weekend. That doesn’t mean they are confident enough to contribute to large scale programs with it. That takes much longer to learn.

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

        Yeah I agree. Rust is an excellent language when you absolutely must be as safe as possible but don’t want garbage collection. But there is a level of precision required of developers which makes it slower to development in. Other languages like Java, Python and Go are all quicker to develop in. Java is much easier to refactor IMO

    • MeanEYE@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      5 months ago

      Depends on amount of technical debt really. Sometimes rewrite is the only way. But in general fixing things can be done. It’s just matter of time, focus and effort.