We need to talk about Java

Has there ever been a bigger elephant in the room than Java? Bigger in terms of marketshare, and bigger in terms of  footprint size. I started out as a Java developer, and have done most of my work with it, but I definitely feel that there are better tools for specific jobs. If you want one single language to do it all, maybe with some HTML thrown in, Java will do it. But how many times is that really the case?

Java primarily suffers from what I call Unintended Dependencies, or Why Do I Need Your X to Build My Y? As everyone knows, Java ships with all the libraries to do everything from application UIs to database persistence to messaging to system calls, to building native platform calls, and more. I've been around long enough to remember when you needed to add J2EE as an additional package, and I think that's when things started to go wrong. Now, just to build a Docker image of OpenJava it takes about 500 megabytes of disk. Add Tomcat onto that plus whatever app you're deploying and your over 700. Compare that to a Node or even Go server and that's a lot of overhead for a simple REST API.

So back to my initial assertion that the JVM ships with everything you could possibly need. What Oracle could do is make the JVM just the core Java libraries,and create a JVM package manager to add additional capabilities as needed. Stripping it back to the core and adding in only what you need would cut down on the overhead for your app. Any additional dependencies would be loaded into the JVM from the build tools, allowing simple integration as needed without breaking any existing apps.

In the end, Java needs to work towards its strength, Enterprise level server applications. Make anything that does not support that goal optional and lose some excess baggage.

Comments

Popular posts from this blog

The Power of Log

Welcome to the Pessimistic developer