This article is featured in the DZone Guide to the Java Ecosystem. Get your free copy for more insightful articles, industry statistics, and more.
In order to more thoroughly understand the state of the Java ecosystem today, and where it’s going, we interviewed 11 executives with diverse backgrounds and experience with Java technologies, projects, and clients.
Specifically we spoke to:
Fred Simon, Co-Founder and Chief Architect, JFrog | Brandon Allgood, PhD, CTO, Numerate | Dr. Andy Piper, CTO, Push Technology | Gil Tene, CTO, Azul Systems | Anthony Kilman, Tech Lead, AppDynamics | Bhartendu Sharma, Vice President of Operations, Chetu | Ray Auge, Senior Software Architect, Liferay | Jonas Bonér, Founder and CTO, Typesafe | Toomas Rὅmer, CTO and Founder, ZeroTurnaround | Michael Hunger, Lead Developer Advocate, Neo Technology | Charles Kendrick, CTO and Chief Architect, Isomorphic Software
The Java ecosystem is massive. Everyone we spoke with has been working in the ecosystem throughout their careers, and most have positive feelings about how the platform has evolved to one that is open. Even though Java is not described as a “bright and shiny object,” it continues to have a very bright future—assuming Oracle and Google can resolve their differences.
Here’s what we’ve learned from the conversations:
- There’s no definitive agreement on the most important part of the Java ecosystem. Perhaps this is a function of the age, diversity, and size of the ecosystem. Ubiquity, reliability, and performance of the core platform were mentioned most frequently as benefits and the reasons why Java is the platform of choice for large, well-established enterprises. The object-oriented nature of the platform enables large development teams to work on multiple layers. Platform independence enables it to interface with other JVM languages. The JVM serves as a platform for new languages outside of Java like Scala, Clojure, Groovy, and many more. The transparency of the JDK enables the open-source community to make innovative additions to the ecosystem, thereby making Java more interesting and relevant. The JCP is vibrant and active with participants actively sharing contributions that add to the usefulness and improve runtime performance of the platform.
- As the owner of Java, and the JDK, Oracle is clearly the most important player in the ecosystem, producing the “official” elements of the platform; however, it is not the only player. In fact, there are at least 60 million Java developers. The Java Advisory Committee is actively overseeing the evolution of Java and ensuring standards and best practices are being maintained. The JCP is driving evolution in every sector. Google is important because of Android. IBM is committed to leading development and standards while serving on the governing board for OpenJDK. Pro-open-source organizations like Pivotal/Spring, Apache, Typesafe, and Red Hat are adding more interest and innovation around Java. Azul is leading JVM development while SAP is staying involved in development as well. Open-source communities around JVM languages like JRuby, Groovy, Clojure, and Scala are driving additional innovation.
- Twitter is the most popular way for respondents to stay up-to-date on the deluge of Java ecosystem trends, with most respondents following specific thought leaders and using Twitter to find the most relevant and timely blog posts. The Java community and elements thereof, as well as developer communities—like DZone’s Java Zone (formerly Javalobby), InfoQ, Hacker News, and StackExchange—were also mentioned as being great sources of knowledge and information.
- The greatest value of the Java ecosystem is its ubiquity. Java can be used for big servers, Big Data, IoT, and large websites. You can use the same language for both mobile on the client side and Big Data-crunching server side. This makes it easy to integrate between multiple services, platforms, and distributed transactions to get things done quickly. It’s easy to find developers who know Java. It builds the safest, most stable enterprise software that can scale. It has a tremendous library ecosystem and a strong open-source community behind it.
- The biggest recent changes respondents have seen in the Java ecosystem seem to be the introduction of Java 8 and the involvement of the open-source community. Java 8 enables easier parallel computations, backwards compatibility, and new language features like Lambda expressions—a powerful technique in a developer’s toolbelt. Open source has led to tremendous innovation, more languages, and opportunities across the mobile space due to Android also being open source. One respondent expressed concern that Sun’s lack of leadership and major missteps (citing JavaFX and JSF) have led to a number of conflicting approaches in basic areas of the platform like UI and data binding.
- While it may seem contradictory, the biggest obstacle to Java’s success is its success. Members of the IT community have an inherent bias against anything that’s been around for more than a few years. Java has been around for 20 years and is the legacy platform for most large enterprises. But there’s a reason why: it’s good, it’s secure, it’s scalable, it’s flexible, and it’s seeing a return to relevance with the additional elements being contributed by the open-source community. While developers and startups may want to use “bleeding edge” technology stacks such as Node.js (it was Ruby on Rails in 2008), established businesses are more interested in software that can get the job done reliably. They don’t care about the technology stack until it’s causing problems. A more specific concern is the poor expressiveness of the Java language, which can result in code that takes longer to write, is harder to read, and tends to be rigid in the face of evolving requirements. Java continues to struggle from JAR hell, a problem similar to DLL hell, which .NET solved years ago. Various solutions to this issue keep getting pushed out. Project Jigsaw, which is planned for Java 9, should alleviate the problem; however, a definitive solution has not yet been found.
- We asked respondents what they value in Java developers, and—like everything else in the Java ecosystem—there was a diverse group of opinions:
- Understand the software and its architecture. Have standard design patterns, like Flyweight and Observer, down pat.
- Master parallelization and be knowledgeable about how to interact with threads.
- Be a team player that is patient, empathetic, and stays abreast of how the ecosystem is evolving.
- Don’t try to reinvent the wheel. There’s already so much written in Java that’s available to the Java community; you can speed up development time by building on top of something that’s already been built and proven to work.
The executives we spoke with are working on their own products and serving clients. We’re interested in hearing from developers, and other IT professionals, to see if these insights offer real value. Is it helpful to see what other companies are working on from a more industry-level perspective? We welcome your feedback at firstname.lastname@example.org.
For more insights on microservices, JVM languages, and more trends in Java, get your free copy of the DZone Guide to the Java Ecosystem!