To gather insights on the state of the Java ecosystem today for DZone's Java Ecosystem research guide to be published in September, we spoke with 15 executives who are familiar with the Java ecosystem.
Here’s who we talked to:
Joel Depernet, E.V.P. Global Research and Development, Axway | Sacha Labourey, CEO and Founder, CloudBees | Rick Reich, CEO, Development Heroes | Asad Ali, Principal Software Developer and Lisa Hamaker, Marketing Manager, Dynatrace | David Park, V.P. of Products, HackerRank | Charles Kendrick, Founder and CTO, Isomorphic Software | Wayne Citrin, CTO, JNBridge | Raymond Augé, Senior Software Architect, Liferay | Laura Kassovic, Founder, MbientLab | Cameron Wilby, Co-Founder, Origin Code Academy | James Faulkner, Technology Evangelist, Red Hat | Paul Trowe, CEO, Replay Games | Calvin French-Owen, CTO and Co-Founder, Segment
We asked our respondents, "What are the most common issues affecting the Java ecosystem?" Here's what they told us:
- Threading and memory issues. Microservices customers are trying to take an app in Java into microservices. They need to be able to see between the tiers in microservices. Internal calls to third parties are important. Your app is no longer doing everything. You need to be able to see the gaps in calls to third party providers and determine how long the call is taking. In the end, the user experience is everything. As such, you need a holistic view of dependencies and third parties.
- Go to the Open Source model to grow faster making improvements like Linux. Everyone can take the code and make it better rather than waiting for Oracle. Some devices run different versions of Java so you have to appeal to the lowest common denominator of the platform you are serving.
- Lack of visibility of the leadership of Java within Oracle. Oracles owns it but isn’t stepping up to push it forward. Two strong ecosystems - .Net and Java – may make a better tomorrow by forcing innovation. Lack of innovation with Oracle. The slow uptake by enterprises of the newer versions.
- Adoption of the latest versioning. Disparity between local users and developers. When the JVM changes on your machine, there are certain things you can and cannot do. As a developer, you have to reinstall or redevelop iterating quickly.
- Finding good Java talent. Typically, more senior developers. Younger developers tend to be using newer languages. The stagnation in Java has resulted in .Net overtaking it. Features in the language have caught up.
- Complexity – lots of moving parts, adaptors, tooling (Eclipse getting better). Ambiguity in specification and standards. Gaps in the specifications – work with different one message broker versus another.
- Java continues to struggle from “jar hell” (in analogy with DLL hell), an issue that .NET solved years ago with .NET assemblies. The various solutions to “jar hell” keep getting pushed out (“Project Jigsaw” is now planned for Java 9). In addition, when Java is used for UI construction or for data-driven processing, the language has very poor expressiveness. This in turn means that code takes longer to write, is harder to read, and tends to be rigid instead of flexible in the face of new requirements. Essentially the same things I have covered above: Oracle’s dubious stewardship, and Java’s inappropriateness for the tasks it is currently being used for.
- Given that our use of Java is currently limited to Android development, our primary issue is Android related and not necessarily Java related. On the Android platform, you cannot use Java 7 and 8 features unless your app is targeted exclusively for newer Android SDKs. For example, you cannot combine exceptions in one catch block unless your app is targeting Android 4.4 or higher. We do not currently have any concerns with the Java ecosystem with regards to Android development.
- Java is getting better after being stagnant. It’s more mature and in a better place. I still have concerns over the core tenets of Java. They do a good job with security and make it hard for a developer to shoot themselves in the foot but it can still be verbose.
- There’s a desire to stay with the trendy new products and languages. The software industry has seen tremendously high velocity over the past five years. It’s hard for developers to not get caught up in the “fashion show of technology.” It’s harder to make decisions based on need versus fad. It’s a very general platform that does many things well; however, we have specific languages coming online that do specific things better.
- No critical issues outside of Oracle. Oracle’s strategy is to generate as much revenue as they can from Java.
What are the most common issues affecting the Java ecosystem by your company or your clients?