this post was submitted on 23 Jan 2024
363 points (96.7% liked)

Fediverse

27910 readers
3 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to [email protected]!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy

founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 13 points 9 months ago* (last edited 9 months ago) (4 children)

an alternative Java-based backend to Lemmy’s Rust-based one

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.

[–] [email protected] 10 points 9 months ago (1 children)

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.

[–] [email protected] 2 points 9 months ago

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

[–] [email protected] 10 points 9 months ago (1 children)

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

[–] [email protected] 3 points 9 months ago

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.

[–] [email protected] 9 points 9 months ago

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

[–] [email protected] 9 points 9 months ago (2 children)

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...

[–] [email protected] 10 points 9 months ago (1 children)

Seems like here the number of developers comfortable in Java is a dependency

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago) (1 children)

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.

[–] [email protected] 0 points 9 months ago (2 children)
[–] [email protected] 3 points 9 months ago (1 children)

I think C# is probably more popular than it advertises here, but not on GitHub.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

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).

[–] [email protected] 0 points 9 months ago* (last edited 9 months ago)

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%.

[–] [email protected] 1 points 9 months ago (1 children)

Or Kotlin, which is much more "Java but good" as it even runs on the JVM

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago) (1 children)

Yeah, but then you still have an Oracle dependency in your stack 🤮

[–] [email protected] 1 points 9 months ago

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.