- cross-posted to:
- fediverso@feddit.it
- fediverse@discuss.online
- fediverse@lemmy.ml
- cross-posted to:
- fediverso@feddit.it
- fediverse@discuss.online
- fediverse@lemmy.ml
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.
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.
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.
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.
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.
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#.
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.