Java's trials and tribulations
Java has not been without some serious bumps in the road. A multitude of security flaws have emerged in recent years, leading to calls for quarantining Java and grumblings that client-side Java has become an outdated technology and a malicious hacker's best friend. Oracle, however, has responded with efforts to control its security issues and believes Java's security situation is getting better.
But not everyone has been happy with Oracle's stewardship of Java over the past five years, as the company has taken a beating for supposed missteps in handling Java and been criticized for stagnation and including "crapware" in the Java installer. James Gosling, considered the founder of Java, left Oracle not long after the Sun acquisition but has since given Oracle's handling of Java a thumbs-up.
The omission on Apple's wildly successful iOS devices was another big setback for Java and Java developers alike. But thanks to ingenuity in the Java community, third-party tools vendors have come forward with ways of enabling Java developers to use their skills to build apps for iPads and iPhones.
Some see Java's overall position on mobile as a black mark, despite the fact that Android leveraged Java and Java Micro Edition has been around for years for putting Java on embedded devices.
"Java missed the mobile revolution big time, and this market is now dominated by iOS/Swift and Android/Dalvik," Gupta says. "Java can be made to work on these devices, but Web-scale adoption cannot happen until it's OEMed on the device itself."
The Java juggernaut is here to stay
Despite all the bumps in the road, proponents see a long shelf life for Java at the center of computing.
"It will still be a core part of infrastructure [in five to 10 years] and all over the systems of record that firms use to run their businesses, but I think we'll see less and less on the client side, especially in browsers given the changes Microsoft and Google are making to their browsers, and the proliferation of mobile devices," Forrester's Hammond says.
But where Java may prove challenged in the years ahead is in the rising realm of microservices and scale-out architectures.
"I'll be watching Java 9 very closely to see how the modularization of core Java libraries works out," Hammond says. "We see many devs using smaller runtimes like Node to power their new, microservices-based architectures, and a move toward stateless, scale-out architectures. Java -- and .Net for that matter -- need to prove how well they will work in this world."
While Java has matured, additions such as lambdas and support for other languages on the JVM help keep the platform fresh, Hammond adds.
"From a technological perspective, I think [Java is] going in the right direction, and I think projects like Groovy also helped them make decisions like adding lambda expressions," says Guillaume Laforge, project lead for Groovy, which has had lambda expressions since 2003.
Eclipse Foundation's Milinkovich sees a continued long life for Java, saying it will be around for 50 years.
"Java and the Java platform defined an entire generation of enterprise software development and those systems are going to be around for a very long time," he says. "Millions of developers use Java as their primary development language, and those skills will be with us for many years."
Milinkovich adds that Java has a debt to the open source community.
"Java's owes an enormous amount of its success to the innovation and support that it received from the Apache and Eclipse communities in particular. The professional-quality and completely free Eclipse IDE was a huge part of Java's adoption around the world," Milinkovich says. "Apache's contributions with Tomcat, Commons, OpenJPA, and other projects were a large part of Java's success in the enterprise."
Gupta concurs, saying that Java is bolstered by the strong community around it.
That may be the key for Java's longevity in the years ahead: the work of the community itself.