←back to thread

224 points chhum | 4 comments | | HN request time: 0.505s | source
Show context
toprerules ◴[] No.44006750[source]
I admire Java as a success story, but I still have a deeply ingrained aversion to it for many reasons. I will admit that many of the reasons are due to Java's legacy as the language of bloated corporations, and its creation of overly verbose, magic fueled frameworks and poorly written code. Java as a language goes hand in hand with the idea that code is coal to be shoveled into the furnace, and we should all throw our aspirations away and embrace mediocrity.

My other issues with the JVM is how much of a black box it is from a platform perspective, which makes debugging a PITA with standard ops tools like strace, gdb, etc. The JVM's over allocation of memory robs the kernel of real insight as to how the workload is actually performing. When you use the JVM, you are completely locked in and god help you if there isn't a JVM expert to debug your thing and unravel how it translates to a platform implementation.

Then of course there's the weird licensing, it's association with Oracle, managing JDK versions, it's lack of it factor in 2025, and a huge boatload of legacy holding it back (which is not unique to Java).

I have successfully navigated my career with minimal exposure to Java, and nowadays there's a glut of highly performant languages with GC that support minimal runtimes, static compilation, and just look like regular binaries such that the problems solved by something like the Java or Python VMs just aren't as relevant anymore - they just add operational complexity.

To reiterate, I admire JG just like any tech person should. Java's success is clear and apparent, but I'm glad I don't have to use it.

replies(6): >>44007271 #>>44009450 #>>44010005 #>>44010292 #>>44010639 #>>44011196 #
throwaway7783 ◴[] No.44010005[source]
In my 20+ years using java, not once have I used strace or gdb. Java itself has fantastic debugger support, and IDEs have built in step through capabilities.

Mentioning Java and Python in the same way in the context of performance is really odd. Python is nowhere near the JVM when it comes to performance

replies(1): >>44011266 #
1. toprerules ◴[] No.44011266[source]
It sounds like you've only ever written code without dealing with it in production. You can't always plug your code into an IDE when your debugging someone else's JVM app on a remote server.
replies(3): >>44011525 #>>44012096 #>>44012911 #
2. vips7L ◴[] No.44011525[source]
Except you can. Remote debugging is a huge feature.
3. throwaway7783 ◴[] No.44012096[source]
Eh, okay. Sounds like you don't know how to do this in production.
4. lenkite ◴[] No.44012911[source]
Please - you can definitely do this in Java. Its been a standard basic feature of Java tooling for 25 years now. (Its the equivalent of saying that Rust doesn't have a package manager).

I strongly urge reading some elementary tutorials to educate yourself.

See https://www.baeldung.com/java-application-remote-debugging for CLI based remote debugging

But most people use IDE's.

See https://www.jetbrains.com/help/idea/debugging-your-first-jav...

and https://www.jetbrains.com/help/idea/tutorial-remote-debug.ht...

Java's debugging experience is better than any language out there - with the possible exception of Common LISP. I always cry when I need to debug a project written in another language after so much comfort using Java.