Earlier quoted context omitted.
When all you have is a hammer... What a ridiculous take, most server apps don't use Java and they are just fine.
This was true until 2017 when I became a C programmer. They are fine until they need to scale and iterate quickly without downtime.
Don’t call it a comeback: Java is still champ
321–330 of 557 posts
Re: Don’t call it a comeback: Java is still champ
#322Earlier quoted context omitted.
The real nightmare is Java's versioning scheme
The version number increments by 1 every 6 months. What is so nightmarish about that?
My recent experience was this: I have a Windows box in my basement that hosts a Spigot Minecraft server for some friends and their kids. This box also hosts my UniFi controller software.
The UniFi controller software requires Java 8, which is what Oracle offers for download on their website.
Spigot usually requires the latest version, at the time I ran into this problem it was 17. You have to go out of your way and actually download the whole JDK for any Java version newer than 8.
So I download and install JDK 17, which replaces the JRE 8 I already had running UniFi. Spigot works, and the UniFi controller appears to start up and function. However I quickly notice that the UniFi app is behaving erratically, and after some troubleshooting and googling, I learn that Java 17 is in fact not backwards compatible with Java 8, so both of them need to be installed.
Of course, Java doesn't make installing multiple versions side by side easy. It's doable, but even then they built no mechanism for a jar file to specify which runtime it needs and automatically run with it. So I had to write my own startup scripts for these apps calling the specific runtime they required.
None of this was particularly onerous to figure out and deal with, but your average user is going to get stuck and feel frustrated. And it left a bit of a sour taste in my mouth because .NET has done a pretty good job of avoiding exactly these kinds of problems.
Re: Don’t call it a comeback: Java is still champ
#323Java was actually not bad for me in class when learning software design and data structures, but soul-crushing to work with in the real world. Mindless, unnecessary use of getters/setters, interfaces, and AbstractFactoryImpls. Hiding almost every piece of functionality behind 10+ layers of indirection. Dependency Injection with Spring. They all make it feel like Java draws folks who actually __enjoy__ writing bloated…
Re: Don’t call it a comeback: Java is still champ
#324All that said, I don’t use Java much anymore, preferring to use Clojure when I need the rich JVM ecosystem. I do follow new Java language features and usually try them.
Re: Don’t call it a comeback: Java is still champ
#325Java was actually not bad for me in class when learning software design and data structures, but soul-crushing to work with in the real world. Mindless, unnecessary use of getters/setters, interfaces, and AbstractFactoryImpls. Hiding almost every piece of functionality behind 10+ layers of indirection. Dependency Injection with Spring. They all make it feel like Java draws folks who actually __enjoy__ writing bloated…
Of course, it can definitely be attributed, at least partly, to just moving to functional programming.
Every day I look forward to 6'o clock, so I can stop working and continue on my own projects.
Re: Don’t call it a comeback: Java is still champ
#326Java was actually not bad for me in class when learning software design and data structures, but soul-crushing to work with in the real world. Mindless, unnecessary use of getters/setters, interfaces, and AbstractFactoryImpls. Hiding almost every piece of functionality behind 10+ layers of indirection. Dependency Injection with Spring. They all make it feel like Java draws folks who actually __enjoy__ writing bloated…
I don't think this is an issue with Java, it's an issue with Spring. I'm baffled by the popularity of Spring.
The problem I see is as far Java ecosystem goes Spring is big, respected dev framework to be used liberally anywhere. So if a developer like me call Spring a revolting piece of shit software it is just me asking to become jobless.
Re: Don’t call it a comeback: Java is still champ
#327Earlier quoted context omitted.
Benchmarks generally show C# outperforming Java, but not to a degree that most people would worry about. Performance-sensitive applications are still going to go for something native. One of C#'s biggest assets is Anders Hejlsberg of Turbo Pascal fame. He's been in charge of C# since its inception. He's done a very good job of keeping the language clean and concise, and generally ahead of Java when it comes to adopti…
I thought Anders was full time on Typescript these days? Certainly his fingerprints are all over c# from being in charge for a long time though.
Re: Don’t call it a comeback: Java is still champ
#328Earlier quoted context omitted.
With Loom incoming, Go's only unfair advantage (shared with Erlang) may be gone soon. I guess we'll have the answer in a few years. Will the next WhatsApp be written in Java?
Loom does a small fraction of what the Erlang VM is capable of doing. For one, the Erlang VM has built-in preemptive green thread scheduling, which means it can suspend your green thread at ANY instruction, not just when an IO call is in progress. Loom is a step in the right direction, but Erlang is in its own universe for what it was designed for.
Re: Don’t call it a comeback: Java is still champ
#329Earlier quoted context omitted.
Oh, please. I once worked on a Java-based server at Google that had to answer requests with millisecond latency. In order to achieve this, the server had to block garbage collection most of the time. Periodically, each instance of the server would ask the load balancers to stop sending requests to it, so that it could then safely run the garbage collector, and then ask for traffic to return. We likely would not have…
> I once worked on a Java-based server at Google This is kind of a fair comment, but kind of not, because Java performance and GC internals have really advanced a lot in the last decade. It would really help if you qualified approximately when this was. > Sadly the garbage collection debate is full of people who want GC to be the answer to everything Good point. I think more recently, the Java world is very aware of…
Re: Don’t call it a comeback: Java is still champ
#330Earlier quoted context omitted.
> Java's GCs are incredible and you have a menu of algorithmic options can these options be used in separate parts of a single app ? e.g. the app I'm developing in C++ has parts that do realtime audio, others that do GPU rendering, others that do classic Qt Widgets GUI, others that do offline computations on datasets - and they all have different performance characteristics and need different memory management scheme…
If Java had isolated heaps then C++ would become redundant in every aspect except memory efficiency.