I quit Java
About a hundred years ago I applied for a C job at a company which was, at that time, recently bought by a bigger one.
1 week after, they told me to learn Java (the buyer had everything in Java)
And so did I.
Here is my sincere opinion on Java after all these years:
- Garbage collection and and managed Virtual machine environment aren’t there for scalability: their only result is to lower the penetration level for developers.
- Java is a very archaic language that doesn’t have any bells and whistles by today’s standards, but merely removes additional features found in other previous OOP languages, features considered harmful. Its only result is to be a foolproof wall against dangerous developers.
- Although an OOP language, the objects’ lifespan has no relevance to the resources it holds, and objects can exist from the beginning in an invalid state.
- 99% of the time, javadocs are used instead of some documentation.
- A Java programmer learns more configuration files formats than a medium Linux user. And this is not for the product he builds, but for the libraries he uses.
- Java frameworks users prefer to modify classes in-memory, at runtime, based on non-standard configuration files, than to switch to a more modern language. (this in-memory processing it’s a polymorphic virus’ dream: machine independence!)
- Java web development is organized around the idea that HTTP is stateful and URLs are one per application.
- Java applications only work with the libraries versions they were compiled/tested with. Any newer minor version of a library could break things, and no mechanism to separate the API from the implementation is available for these libraries.
- Java programmers treat databases as object factories plus some configuration files and try hard to re-invent security, cascading, relationships and queries.
- I have not yet found a useful Java program in the wild.
I think any Java programmer knows exactly what I’m talking about, for each of the points above.
The most painful point, for me, is the last.
I am a developer. I write code even at home.
And I won’t spend another minute with this technology nobody uses (oh, get me started, give me COBOL)