I don’t know if this is confirmation bias or what (minus the hyperbole, I agree with Steve Yegge, so I’ve been back in the Java ecosystem pretty heavily), but the quality of the Java libraries I’m seeing, and the liveliness of the Java ecosystem, both seem to have taken strong upward turns lately. Throw in a non-Oracle JVM that’s as high quality as J9, and I’m starting to feel genuinely optimistic.
More and more companies are starting to realize that mature, enterprise class tooling are very compelling. I can’t say Java is my favorite language to work in, but there are times when it is definitely the right tool for the job.
One big thing I remember about using the IBM JVM is the existence of a class sharing cache. Shared class bytecode and AOT compiled code is somehow optimised and could be stored at a path from which multiple JVM processes can read. This makes JVM startup and class loading significantly faster.
Shared Classes is the name, and it is designed to accelerate startup and reduce VM size in environments that frequently start JVM processes. -Xshareclasses option.
It’s been awhile since I delved into that. Probably two or three years now.
Source: former IBMer who maintained a product that shipped a JRE with it, but options like that were largely set it and forget it.
Im still avoiding Java while Oracle’s lawyers are doing things like asking for API’s to be copywritten. With such risk, Im not putting anything into an Oracle-connected tech unless it’s a business venture targeting that market.