4 ms·
Mixed reasons Java/JVM environment (applies to Clojure, Scala, Groovy, etc): 1. Dependency management done right. Maven and Grade simply blast away most other
by alanfranzoni 10y ago
Mixed reasons Java/JVM environment (applies to Clojure, Scala, Groovy, etc):
1. Dependency management done right. Maven and Grade simply blast away most other dependency management systems. So yes, the code may be longer to write than other languages, but it's very easy to reuse code that's already written (by you and others)
2. Plenty of high quality third party libraries. Thank the enterprise, thank Android, thank whover you like: they just exist.
3. Stable APIs, libraries, and language. There have been very few occasions where backwards compatibility was broken in Java, and those were mostly very complex edge cases that occurred quite rarely. Nothing like py2->py3 btw. Sometimes slow is not so bad; it means you don't need to fix your code every 3 months because something changed upstream.
4. API/Interface first. Java encourages modularity and composition; J2EE may be a monster since it's comprised of dozens of interfaces, but it actually makes it very, very easy to "swap out" a single component with your own implementation without needing to rewrite/fork a whole library or framework. The way most things in Java work and interact are perfectly documented and standardized; combining even tens of different libraries is easy, you don't risk that each author has a different opinion on 'the right way to do it' that makes it not compatibile with the others.
5. Excellent tooling. Java IDEs are really advanced and can perform error-free refactoring and other operations on large projects.
6. Works on many platforms, in quite an expected and homogeneous way.