There has been a lot of hate towards Java over the years, but there are just as many proponents for the programming language. Here is why Java isn't going anywhere. In February 2018, Gartner Vice President and Distinguished Analyst Anne Thomas clarified in the research note that costs $1295. However, the summary she co-authored states, “The application platform market is morphing in response to digital business requirements. As Java EE and other three-tier frameworks, such as ASP.NET, fade in relevance, application leaders must build a strategy to shift to alternative platforms that support cloud-native applications.”
Bloggers and media had already sounded the death knell for Java with alarmist articles pushing alternatives that Java developers agree are less effective. Problem is that the note actually referred to Java EE (Enterprise edition), not the more popular Java SE. In her clarification/interview on ADT mag, she defended the report, pointing out the obvious, that less people use Java EE than SE and other slimmed-down versions such as Microprofile.
Java EE is built on SE(Standard Edition). Surely, those of us who understand the difference between Windows versions could draw similar conclusions. When you purchase Windows, you decide based on cost and required functionality. You may require a 32-bit OS or an academic, enterprise or professional license. It’s all a little confusing but Wikipedia offers an overview. Consider this when trying to make sense of the differences, would any student or home user buy a business edition with features that’ll never be used? It’s the very same with Java EE – it’s a full-featured development platform with enterprise features.
But is Java SE Dying?
Don’t take my word for it. Let’s ask Chris Nicholson, CEO of Skymind, the company behind Deeplearning4j, the most widely used deep learning tool for Java.
Considering deep learning is directly linked to AI (artificial intelligence) advances, we can assume that we are dealing with an enterprise-level application of Java that utilizes huge distributed computing resources to bring the dream of a functional neural net ever closer. Deep learning currently focuses on improving speech and image recognition based on vast data sets.
As a non-developer I found little evidence that Java is dying, at least online. Assuming you were making a case for a Java replacement, what would it be and why?
“You're right, there's no evidence that Java is dying. But no language is the best at everything. You would need different languages to replace different aspects of Java, which is problematic in itself, because cobbling multiple languages together makes whatever you're building more complex,” said Nicholson.
He went on to outline potential replacements.
Some claim Java is too bulky with many unwanted features. What do you think?
Most people who criticize Java are not working closely enough with it to see that many of its past problems have been addressed. Project Jigsaw, which you can use with JDK 9, makes it possible to work with modules and slim Java down.
Java, A True Survivor
Why has Java survived so long? According to Nicholson there are many reasons.
- It's backwards compatible, which is more than other popular languages can say. Stability is a huge plus with large organizations and large code bases.
- It's fast (sure it was slow in the 90s, but that's changed), and with libraries like JavaCPP, it's easy to push compute to native when you need to.
- It handles multi-threading and concurrency better than, say, Python.
- It usually offers better error messages than C++, which makes for faster debugging and greater productivity.
- It has an ecosystem of apps and frameworks that's rich and deep. There's a library for almost anything.
- It's got a huge community. Estimates range from 5 to 9 million developers using Java. That size of a community has incredible gravity.
- It's had a corporate steward and user base committed to stability since day 1. So, you don't get weird schisms like you have with Python 2.7 and 3.x.
Java Pros And Cons
Massive investment by global tech companies can ensure Java has a viable future.
“Java and the JVM dominate the big data stack. Hadoop, Spark, Kafka, ElasticSearch and Cassandra are all written in Java or Scala, a JVM language. That's because the JVM is stable and scalable. Many large organizations have invested tens or hundreds of millions of dollars into their JVM-based tech stacks. For developers wondering where the jobs are, Java's install base is one of the guarantees that it will be around for a long time,” said Nicholson.
“The Java ecosystem is rich. Almost anything you want Java has a library that will help you do it. For example, we wrote Deeplearning4j to make sure developers had a JVM-based library to build state of the art machine-learning applications that hook into Spark, Hadoop and GPUs,” added Nicholson.
Sometimes developers may have to sacrifice originality.
“But the flipside of richness is complexity. You're not starting from a blank slate with Java. The fastest way to build what you want to build is probably to understand someone else's code, and not every developer enjoys doing that,” said Nicholson.
Not Dying, and Never Been Better
In conclusion, it seems the future is bright for Java (and use of the standard edition is likely to continue to exceed that of the enterprise edition), with ongoing investment, a huge user community, numerous repositories and its presence in millions of devices around the world just some of the advantages. Continuous improvement still takes place to satisfy user complaints.
“Java recently switched to a 6-month release cadence, which will help it incorporate new features faster,” said Nicholson.
While Skymind’s Nicholson is obviously an advanced Java developer, he has advice for those seeking an alternative.
“Java's here to stay, but for developers who never really clicked with Java, I would recommend trying out other cool languages that use the JVM, like Scala and Kotlin,” said Nicholson.