Arguably minimal fuss & stable. Java code written today will still run without change in 5 years. Can't say the same of other languages.
What other language would you recommend for a large eng organization of 1000+ ppl?
Arguably minimal fuss & stable. Java code written today will still run without change in 5 years. Can't say the same of other languages.
What other language would you recommend for a large eng organization of 1000+ ppl?
I've always found that Java particularly shines in team settings in a way that a lot of individual productivity languages like python and Ruby fall down atleast.
Obviously there is a broad spectrum of other languages between and beyond them, but which do you prefer?
I like Go and Rust the most these days. Not because they're perfect by any means, but they avoid a lot of traps of the other languages and scale well for the whole lifecycle of actual software development in teams.
Java is bad for a few reasons. The JVM makes everything an object on the heap, which means you're always in a war with your garbage collector. You have to run in bigger machines with plenty of memory headroom. There's a lot of backward compatibility cruft, like the fake generics. The worst part is the people though. The language is too mainstream but not hard enough to weed out the bad coders, and they make a mess out of the code base.
For performance-critical sections, you can plug in C/C++, wrapped in Python APIs.
A 500K SLOC project in Python might be unwieldy, though.
Unfortunately there's no great way of managing all of those dependencies for build and deployment.
That’s only half true now that Java actually has a steady release cycle. There were plenty of breaking changes from 8+.
This is in contrast to the legendary backwards compatibility of 1.4 to 1.5 to 6 to 7 to 8.
A5 y.o. usually has a limited command of the natural language yet.