Executive Insights on the Current State of the Java Ecosystem
Here's what executives have to say about the future of Java.
Join the DZone community and get the full member experience.Join For Free
To understand the current and future state of the Java ecosystem, we reached out to our community for their insights.
Unlike other topics like containers and security, there are far fewer people willing to share their thoughts on the current and future state of Java. This appears to be a function of its maturity relative to other technologies.
We are grateful to our three contributors who all have significant experience with Java:
1. The most important elements of the Java ecosystem are Oracle, the Eclipse Foundation, and the members of the community that ensure pervasiveness and compatibility.
There is huge community adoption, low barrier to entry, nice frameworks, and toolsets. Java is available on all laptops, desktops, servers, cloud systems, and some embedded devices and mobile phones. This is invaluable since the code is compatible and doesn’t need to be continually recompiled or changed.
2. The most important players in the ecosystems continue to be Oracle and the community with many significant members of the community stepping up. IBM and Red Hat have made significant contributions in the language space while Amazon will have a significant impact through its default choices and the new Corretto OpenJDK distribution. Pivotal is also crucial thanks to frameworks like Spring and Spring Boot, while the Eclipse Foundation maintains Java EE.
3. The most significant change in the past year is the abandonment of the JRE. It overshadows all of the good things like the consistent feature release cadence. This is delaying the adoption of Java past Java 8. There’s a lot of good stuff in Java 11, but people are delaying adoption of the new features by six months to a year to move to another JRE.
4. Things Oracle and the community can do to encourage organizations to upgrade past Java 8 is to make it easy to do so. Promote Adopt OpenJDK, keep coming out with compelling improvements that make developers lives simpler and easier, and keep licensing straightforward.
Adopt OpenJDK is a one-stop shop for developers to get access to different JDK builds from different vendors. The community helps people who are having problems moving from version 8 to later versions.
Having to change from the JRE hurts adoption. It’s not just a question of the language, it’s also the tooling and the frameworks.
Java users need compelling reasons to move beyond Oracle to the public version. Amazon Corretto’s Java 8 is now publicly supported for four years beyond Java 8. The strongest encouragement will be from cloud providers. When Java X becomes the default in major cloud providers, people will choose Java X.
5. Java continues to be used everywhere, and we can expect it to see greater adoption in the cloud and IoT. Java runtime, enterprise Java class libraries, and application servers will be tuned to better fit into new environments.
6. The most significant challenges with the Java ecosystem today are size and complexity. There’s a lot going on and it can be difficult to know where to go in the community to get the help you need. The most common problems are the modularity issues above Java 8. If an application needs work to move up, people don’t know what’s required or it may require an obscure rework on a third-party library that no one understands. There needs to be a compelling reason to upgrade or it needs to become easier.
7. As long as large enterprises are able to evolve beyond Java 8 and Java becomes more cloud-native, it will continue to be a predominant language. Companies are unable to throw away the investment they’ve made in Java. Languages are hard to change. It will be interesting to see if other languages begin to use the Java Virtual Machine. There have been niche solutions for this in the JRE like JRuby, Nashorn, and Jython.
As long as large enterprises areable to evolve beyond Java 8and Java becomes more cloud native, it will continue to be a predominant language.
8. Developers need to examine the reasons they are considering a new language. Look at the stability of Java over the long term and the breadth and depth of the ecosystem. To deliver enterprise software, you need tools, CI/CD, test suites, class libraries, and a suite of additional capabilities. It will take years for a new language to achieve the richness of Java.
Java in the enterprise is not going anywhere because of the existing code that’s in place. It works, it scales, and people know how to run and operate it. What you are able to get out of the JRE with regards to the instrumentation, analysis, and operational insights during runtime is not available with other languages. The ability to get introspection while running is very interesting in the application world where there is a desire for things to run a long time.
Java is a blue collar language for developers trying to solve real business problems. As such, know the problem you are trying to solve. Java’s success can be attributed to the fact it has removed distractions like memory management and certain aspects of security. When reading the code, you can see the problem being solved.
Opinions expressed by DZone contributors are their own.