3 ms·
Java is rock stable and "complete". Not just the language itself. Build tools, JVM, profiling, dependency management. Everything is at least decent, most langua
by throwaway189262 5y ago
Java is rock stable and "complete". Not just the language itself. Build tools, JVM, profiling, dependency management. Everything is at least decent, most language problems were solved years ago. I have used many languages and nothing comes close to Java in the balance of speed, flexibility, ecosystem, and polish. If you're not sure which language will be best for a project, Java is perfect.
I work on a codebase with hundreds of thousands of lines that haven't been touched in 15 years. We're on Java 11 with plans to update to 17 later this year. Our 8->11 upgrade took me 3 days on a million+ line codebase. And when we released there were zero bugs related to the upgrade.
Java has the stability keep projects maintainable over decades. The only mainstream language with comparable backwards compatibility is C.
- metaltyphoon 5y agoC# ?
- throwaway189262 5y agoThe languages are kin, but Java has more going for it. C# is much smaller community. Microsoft isn't as good about avoiding breaking changes. Java has more quality tooling options. The CLR GC is way worse. Shenandoah and ZGC, and even G1 on new versions blow away CLR GC. Also heard the JIT compiler isn't as good from an Oracle dev a while back. C# performs better in synthetic benchmarks because it exposes more low level primitives. C# is far ahead in syntactical niceness and exposing lower level primitives. It also has reified generics and true primitive types. The "language" itself is definitely better than Java, there's no question. It's everything built around Java and the capabilities of the JVM that make it better than C#.