25 years of Java. An amazing milestone for any programming language. For Java and the Java community, this is an especially significant achievement, as many have doubted Java’s staying power. It should be clear to everyone that not only is Java still going strong, but it also has a bright future ahead. Let’s look back a little and also think about what we want to achieve next.
Looking backwards can be difficult because, in our industry, we tend to have short memories: not much of what happened five years ago is talked about now, and events from 10 years ago are like talking about the Stone Age! However, it’s hard to exaggerate the level of enthusiasm, passion, and sheer invention that has been generated by Java at IBM through the last 25 years.
Much as you might consider IBM a little too conservative at times, we embraced Java from day one and have never stepped back. Since the early days, IBM has contributed to the Java process and won many awards for things like having the best Java virtual machines (JVMs), application servers, innovative Java tools, and more. As time moved on, you also see IBM’s influence in the way that Java evolved to become what it is today. Personally, we think it would be hard to find any other single company that has continuously invested so much into the technology, community, and ecosystem we simply call “Java.”
People tend to forget just what an amazing piece of technology the JVM provides. We take for granted the sophistication of the just-in-time compilers, the garbage collectors, and the platform independence. All this hard-won value comes from many years of invention and innovation. It might surprise you to know that IBM engineers have been technology leaders in JVM matters since day one – and some of us have been around for all that time!
IBM’s contributions to Java
IBM has had a vested interest in making Java the best runtime for business applications across all of its platforms. Since the beginning, we recognized Java as the game-changing opportunity that it was. The opportunity to build a new platform that brought all the computing vendors together – to have one very large space, rather than many small ones. To create a software platform that could get the best out of the hardware available (however much it changed) and yet preserve our customers’ investments and our own product investments. We saw that Java would allow our customers to innovate in new ways and much more quickly than ever before. And they did – in finance, security, healthcare, communications, travel, logistics, aerospace, construction, and many more industries. It’s no joke to say that IBM’s Java platforms underpin the world’s economy.
Yet IBM does not charge for using its JVM technology. This is simply because to do so undermines the true value of Java as an enabler. Everyone benefits from free, secure, open Java. Now that’s not to say that the developers working on Java and JVMs don’t deserve to get paid – these highly skilled engineers are providing a stable, performant, fundamental platform for protecting and building true revenue opportunities. Recent events have shown that we should not take Java runtimes for granted. Java is so important to the world that it has to remain free of runtime cost in all endeavors, and be free to distribute, change, and improve.
IBM is committed to ensuring that Java remains free by working at OpenJDK, AdoptOpenJDK, and the Eclipse Foundation. Indeed, we provide a commercial support offering around the free AdoptOpenJDK binaries containing Eclipse OpenJ9. IBM’s approach to support (as you’d imagine from a company whose customers are the largest ones around) is pretty focused and serious. At IBM, support means more than regular security fixes – which are free in the community. It means you can pick up the phone or electronic-equivalent and talk to our engineers to get help with diagnosing and fixing your Java runtime issues.
In 2017, IBM completed the open sourcing of our industry-leading JVM at the Eclipse Foundation. The Eclipse Foundation, an independent, not-for-profit corporation, thinks about open source the way that makes sense to IBM. The Oracle Java EE 8 and GlassFish code has moved to Eclipse under the Jakarta EE project, where it joins the MicroProfile project as a location to modernize and advance the enterprise platform technologies.
The community has always worked together to propose, critique, and implement the evolution of the Java platforms. The many years of communal experience sharing design ideas, formalizing them through standards, and encouraging multiple implementations has rightly kept Java in a dominant position within our industry. There’s every reason to believe that this approach is the right one to keep the enterprise and language platforms forging ahead into the future.
Now IBM’s Java runtime is 100% open source – you can get the same version of the technology that IBM uses in all of its products and that our customers use too. Of course, if you don’t want to build from source yourself, you can simply download Java Version 8 and beyond from the AdoptOpenJDK website. You can be assured that the download has been built and rigorously tested across multiple platforms in the same way and from the same codebase. IBM is offering several support options for AdoptOpenJDK binaries.
What’s to come
The Java of today is still quite close to the Java at the beginning. It has changed and grown, of course, but the community has helped evolve its direction over 25 years so that it has stayed relevant and tuned to the needs of the time. Can we continue doing this? The challenge for Java is now to find its path through a new transformation. The era of Cloud is here and Java is evolving to suit. This time, though, there are many directions to travel and many ways to get there.
As befits a company like IBM, we have a wide vision for the future of the Java platforms. There are deep technical areas where we envisage the JVM exploiting cloud container capabilities to further enhance its suitability in a modern computing environment, better integration with other languages prevalent in the multi-tier and microservice architectures, and use of machine learning techniques to make the platform smarter and adaptive to ever-changing workloads. Efforts with OpenJ9’s greatly improved memory utilization, fast application start-up, and blazing performance is creating a JVM that can truly be called a cloud-native Java Runtime.
Outside the JVM, the evolution of enterprise Java to Jakarta EE is also exciting. Jakarta EE 9, building on Jakarta EE 8, is on the horizon with the promise of being the platform for cloud, microservices, and containerized apps. Further, the new features and functionality offered in Eclipse MicroProfile deliver key aspects needed by developers to deliver the apps of tomorrow. Add to this Java being applied to event-driven, reactive systems and serverless app environments, the future is truly a bright one for Java.
It has been fun wandering down memory lane, but it’s going to be much more fun to help Java grow into something more amazing than ever. If you have a little time, think a bit about the future, think about what you would like in the Java of tomorrow, and how you could get involved to make it become real. The Java community is unique. Let’s work together and keep it a vibrant, innovative ecosystem for free Java.