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.
kill it with fire
Going from a modern well-designed language to an old-and-busted, kitschy, memory-hogging, bloated language. This is literally a step backwards.
Rust, Go… hell, even Ruby-on-Rails or whatever Python is offering nowadays would be a better choice.
I’m a long time Java developer who was recently moved to a project written in Go. All I can say is: What. The. Fuck. I swear, the people who designed the syntax must have been trying to make every wrong decision possible on purpose as a joke. The only think I can think of is that they only made design decisions on the syntax while high on shrooms or something.
Like, why in the actual fuck does the capitalization of a function change the scope??? Who thought that was a good idea? It’s not intuitive AT ALL. Just have a public/private keyword.
I did a lot of Java prior to doing Go. I think they’re both good. I don’t like the Go privacy/scope thing and I genuinely hate it’s error handling but it’s pretty much 90% good pragmatic choices IMO. That said, I still think Java is a fantastic language and it makes a lot of sense for something like Lemmy
Nah, Java is alright. All the old complicated “enterprise” community and frameworks gave it a bad reputation. It was designed to be an easier, less bloated C++ (in terms of features/programming paradigms). It’s also executed fairly efficiently. Last time I checked, the same program written in C would typically take 2x the time to complete in Java; whereas it would take 200x the time to complete in Python. Here’s some recent benchmarks: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/python3-java.html
I haven’t had a chance to try Rust yet, but want to. Interestingly, Rust scores poorly on source-code complexity: https://benchmarksgame-team.pages.debian.net/benchmarksgame/how-programs-are-measured.html#source-code
Modern Java isn’t that bad, and with new developments like the graalvm and cloud native builds, or what they are called, the footprint of a modern Java app can be comparable to an golang app.
Modern Java kinda has the same image problem as modern PHP. Not saying is all great, but it sure has seen quite the improvements in the last years
they are also working to make developers have less boiler plate. java might be an old language but the development has not stopped but only going better these days.
Or C#, it’s literally “Java, but good”.
The only time I would choose Java for a new project is if I had a hard dependency on something that only works with Java…
Seems like here the number of developers comfortable in Java is a dependency
I understand that being a problem for Rust, but not for many of the other “better than Java” languages on this list. Like, I dunno…C#?
If I’m being honest though, I just really hate Oracle, and that’s enough to give me pause over anything they dip their fingers in.
https://madnight.github.io/githut/#/pull_requests/2023/4
3.4% vs 11.7%
I think C# is probably more popular than it advertises here, but not on GitHub.
C# is regularly under-represented in OSS, in part because for most of it’s existence, the primary implementation (.NET Framework) was not open source or cross platform. It is also very popular in fields where open source is not the norm (game development, bespoke backend infrastructure, embedded apps).
I said it was easy to find C# developers, not that there were more of them on Github.
If the number of possible contributors on github is the big factor here then Python is the obvious choice at 18%.
Or Kotlin, which is much more “Java but good” as it even runs on the JVM
Yeah, but then you still have an Oracle dependency in your stack 🤮
You can switch to Kotlin Native, which depends on C libraries, or Kotlin JS, which depends on whatever libraries your JS runner has. No matter whatever Oracle has done, they produce a pretty good library, API spec and OpenJDK.
Next step, is to remake Lemmy in JavaScript. Pure JavaScript, no typescript, only express, nothing else
rewrite it in perl with a flat file database.