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 real world problems being solved by Java - where is the greatest value being seen" Here's what they told us:
- 1) Java Memory Analysis – we use it to see where memory leaks are occurring. Newer asynchronous frameworks, working with Java code, jump from thread to thread. Requests from one thread are passed to another. We stitch the information together across thread boundaries. APM tools follow requests across threads to know if components are running slowly. We provide end-to-end transaction details. When looking at broken data, it’s hard to tell if it’s one request or multiple requests. This is necessary to determine the true cause of performance degradation. 2) Database access shows up a lot as well with transaction requests making a lot of database calls. You need to be able to see the gaps in free data capture to see the data as a whole. It makes it able to see whether a problem is happening in isolation or not. 3) In DevOps you need to be able to see the whole application lifecycle the moment you check in the code and begin building. By embedding upfront, you can catch code patterns that may lead to QA issues that hurt revenue, as well as the brand. Application lifecycle management is key to seeing what you’re pushing into the pipeline.
- Portability of the code. Every device can run Java with the same calls. If you build in C++, or other object-oriented languages, you will have to tweak for every platform you’re running on.
- Anywhere you need robustness – it’s scalable, works on many machines and many different operating systems. It’s the lingua franca of developers and has libraries for everything. It makes the lives of companies much better. It’s not a one trick pony and cannot be compared to other languages. The choices are either .Net or Java for robustness, scalability, and ability to work across many operating systems.
- There’s a larger supply of excellent Java developers ready and able to support the language. This minimizes the risk and eliminates any cost of adoption. There’s also a lot of open and free foundational learning and experiential information.
- Enterprise software development. Ability to write native Android apps.
- Messaging – JMS holds enterprise software together. It makes messaging work between various enterprise components for important contributions.
- Server-side use in the enterprise, specifically large-scale, database-oriented systems involving integration between multiple services or platforms, and distributed transactions.
- The greatest value of the Java language is its portability and the JVM. Java was designed to be able to run on all platforms regardless of byte ordering, data sizes, CPU, and OS. The JVM is an extremely powerful system letting you do things like swapping jars or code chunks at runtime. The ability to hot swap code greatly reduces the amount of time needed to debug an application.
- For the data pipeline we’re building in Kafka and Hadoop for batch processing. These are great, new Java use cases. It’s written on the JVM so it’s easier and comes with better support and performance. Spark in Python is not as good as Java.
- Java is one of the top three languages in the world for quality, reliability, ability to deliver on demand, toolchain, and the ecosystem. It’s the only language I can think of that can make this claim. Overall, it is still the most powerful and comprehensive language.
- The number of Open Source libraries but you still have to choose the right/best one. You never need to redo the basics. Also there are plenty of Java developers on the market unlike other languages.
- We see it used a lot in the healthcare finance and travel and transportation industries. Twitter started on Ruby on Rails and moved to Java because it’s more scalable and there are more programmers available.
- The maturity of the platform that’s been solving problems for 20 years. Expertise from Red Hat and ecosystem.
Where do you find the greatest value in Java?