2018 Java Ecosystem Executive Insights
2018 Java Ecosystem Executive Insights
Take a look at what more than a dozen executives have to say about the Java ecosystem and what's on the horizon.
Join the DZone community and get the full member experience.Join For Free
To gather insights on the current and future state of the Java ecosystem, we talked to executives from 14 companies.
While Java is still the prevalent language in enterprises and there are more Java developers than anything else, this topic does not generate the level of response of the other topics for which we produce research guides. Java content continues to outperform all other content on DZone by a 4:1 margin — but because it's not new and "sexy," not a lot of people want to talk about it. I'm most appreciative to the IT professionals that took the time to share their insights on the current and future state of the Java ecosystem.
Java continues to be the platform of choice for a number of enterprise companies, including financial institutions, as a result of its portability and because it allows developers to write once run anywhere. There are plenty of Java developers and it is seeing a resurgence with big data.
The Java Virtual Machine (JVM) was most frequently mentioned as the most important element of the Java ecosystem. The JVM is the most critical element followed by its openness, compatibility, the vastness of the libraries, and the completeness of the toolchains. The JVM enables languages other than Java to flourish. The fact that Java is open-source while championed by a large company was deemed to be important by a couple of respondents, as was the community in which no one participant is more important than the community. The maturity level of Java is high. This results in a lot of frameworks, libraries, and IDEs as well as a high-performance, consistent, compatible language that's simple and stable.
The most important player in the Java ecosystem is Oracle followed by multiple mentions of IBM, the Apache and Eclipse foundations, Red Hat, and Pivotal. Oracle was seen as the key holder but seems to be pulling back. It was interesting that financial institutions as a whole were mentioned given their use of Java and the number of developers they employ along with other companies like Twitter, Alibaba, Facebook, and Google with GCP and Kubernetes.
The Eclipse Foundation is likely to become the most significant player with its efforts around MicroProfile and Jakarta EE.
The two most significant changes to the ecosystem in the past year have been the move to semi-annual releases and Java EE moving to the Eclipse Foundation as Jakarta EE, putting the future of enterprise Java into the hands of the community. The move to halfyearly releases will boost interest in, and use of, Java by developers. The "open-sourcing" of Java EE to the Eclipse Foundation, creating EE4J and now the birth of Jakarta EE, is significant. Java has been the dominant player in enterprise applications for two decades. Jakarta EE ensures Java will continue to be the dominant player for enterprise computing for a long time.
The availability of developers helps Java solve many problems in organizations. There is a shortage of security, big data, and AI/ ML/DL/NLP professionals, but there are plenty of Java developers who can get organizations' work done. Twitter, financial institutions, automobile manufacturers, and AI/ML companies are all heavy users of Java. Java has the ability to support high-speed concurrent processing at scale, which becomes more important as the amount of data continues to grow.
The people I spoke with are all Java devotees and don't see any problems with Java. They realize that those who are not Java developers see the language as being too verbose. They believe Eclipse is a good steward of open source and, like open source, there needs to be more participation and engagement in the community.
While Java is considered verbose by some, there are alternatives like Kotlin, Scala, and project Lombok. Java lags behind because it's heavily used by large enterprises. With slowness comes stability. While it lacks some of the niceties of other languages, it provides quick wins with fast coding.
Serverless was mentioned by a couple of respondents as the future of Java. They believe it will lead to a major reshaping. Java is built for serverless, but it needs work. With Spring Boot, containers can be lighter-weight and great to build serverless upon. There were good changes in Java 8 and 9 for easier execution in container management, memory, and CPU. JVM-based languages and tooling will continue to evolve. The JVM enables many different types of languages to be built. Others see Java thriving in the open-source software ecosystem with innovations continuing to support Java's ongoing success.
The biggest concerns with the current state of the Java ecosystem were quality deterioration because people were not learning from their mistakes, understanding the value of the ecosystem, or taking security seriously enough. Some question the benefits of the more frequent release cycles because it may lead to release fatigue and meaningless releases that ultimately will not be adopted or supported.
When working with Java, developers need to realize the depth of the ecosystem and not try to reinvent the wheel. Learn the libraries and know your code is going to be attacked — prepare accordingly. Pay attention to the Java roadmap and try new builds before they go live to be seen as an expert. Like any other language, ensure your code is well-designed, extendable, maintainable, and easily understood by others.
JVM is the top-performing platform. Most languages live on the JVM so start with Java. Be language-agnostic. Learn domain-driven design. Read Design Patterns by the Gang of Four. There's a good future with Java. Look for tools to help with development. Keep an eye on open source projects through good information outlets.
Additional considerations regarding Java include:
Containers are changing how developers deploy applications and that affects Java applications.
Pay attention to Kotlin which runs on the JVM. Adopt new languages to help create new applications. There are a lot of really smart people in the ecosystem; pay attention to what they have to say. There's a lot to continue learning since things will continue to change.
Java developers' participation matters in the continued consistency, stability, and security of the Java ecosystem.
One of the strengths of Java that's undervalued is that it's a small language that does not offer a huge range of options for how to do things. As a result, two engineers writing the same solution for the same problem tend to end up with the same code. This is a strong advantage of Java that is not true of many other competing languages.
We need to recognize the importance of open source — embrace it and contribute to it where we can. If you find problems, work on fixing them. It's a great community and it's made better when everyone is involved and contributing.
Opinions expressed by DZone contributors are their own.