← Back to context

Comment by jjav

1 day ago

> Yah but why? The things it was good at doesn’t really matter nearly as much post AI.

Pretty much the opposite. Those who disliked it usually cited having to type too much due to class verbosity and variable verbosity (the former has merit, the latter was purely a choice).

If you no longer need to type in any of the code, what better than a language with a blazing fast and scalable runtime, with excellent debugging and monitoring support.

Most importantly IMO the JVM ecosystem has lots of solid, battle-tested, enterprise-grade frameworks like Spring and Quarkus, which do all the heavy lifting for those kinds of applications. The code can still be verbose, but that is solved by LLMs, as you said.

Rust has all the individual bits you need as libraries (web server, database access, etc.) but you have to wire it all together yourself. Sure LLMs can do that too, but how do you know the LLM did it correctly? There could be complex interactions between the individual libraries.

Using a complete framework solves that, you know its bits will work together correctly. It also makes the code structure of different applications look more similar, which probably helps LLMs understand it better too.

  • Also, I think too many people mistake Rust's type system for what is actually common across all languages with a Standard ML linage.

    Thus anyone without issues using a GC language, regardless of which GC shape, has already plenty of choice on the JVM, not only the frameworks.

But if you want "blazing fast" performance then there are other languages like Rust that the AI can write, and Rust runs basically everywhere Java does these days (and more) except perhaps Android, for which there are still ways around it.

  • > Rust runs basically everywhere Java does these days (and more)

    I don't follow Rust as much as I wish I could if I had more free time.

    What platforms are supported in Rust that don't support Java?

    Does Rust have diagnostics, monitoring and debugging support anywhere near JVM quality?

    • Primarily embedded, for which Java is basically unsupported for many use cases. Rust does have diagnostics and monitoring but it's debatable if they're as good as the JVM although again some places Java can't even run.

      1 reply →

  • Many of us know how to write blazing fast code with Java, first step is embrace the ecosystem, followed by actually understanding algorithms and data structures.

    Most rewrite language X in Y are justifications after the fact, when the real reason is language Y was cool for whatever reason.

  • Incidentally, Java seems faster on the server side than Rust in several benchmarks I've seen and tried locally - yes to be taken with a grain of salt, but point being that Rust is not the be-all performance aspiration - there are some really good Java One 26 and Devoxx 26 talks pertaining to the importance of well spec'd languages like Java and runtimes like the JVM in the age of AI. And this is without talking about things like monitoring and observability.

  • For complex enough and long-running application your run-of-the-mill Rust (so probably what AI would generate) will likely be slower than your run-of-the-mill Java.

    I know this is a heresy in some online religious groups pretending to care about engineering but that's reality.

    • > For complex enough and long-running application your run-of-the-mill Rust (so probably what AI would generate) will likely be slower than your run-of-the-mill Java.

      That phrase "complex enough" seems to be quite load bearing.

      At which point does complexity reach the tipping point where a Java implementation becomes faster? From my experience, the more complex the application, the more enerprisey the Java code becomes, relying heavily on dynamic capabilities that make it slow even by Java standards.