What began as an experiment in consumer electronics in the early 1990s celebrates its 20th anniversary as a staple of enterprise computing this week. Java has become a dominant platform, able to run wherever the Java Virtual Machine is supported, forging ahead despite the rise of rival languages and recent tribulations with security.
Java's road to dominance hinged on a pivot of sorts. The language debuted as an object-oriented programming tool in 1995, emerging from five years of work by Sun Microsystems' Green Team, which included James Gosling and Mike Sheridan, among others. The team was looking to merge information and programming to make Web-surfing more dynamic and to target the convergence of digital consumer devices and computers, both client-side concerns. As such, Java, which was originally known as "Oak," first gained prominence for its client-side applet technology, but later found its long-term groove in evolving toward the server side, thanks to the business aims of its closest supporters Sun, IBM, and Oracle, analyst Jeffrey Hammond of Forrester Research, recalls.
"It turned out write once, run everywhere' was too hard across the fragmentation of all the client-side devices, but it did work reasonably well across the less chaotic, but still segmented server architectures that the various vendors were investing in," Hammond says. "Java's VM turned out to be easier for most devs than writing and porting C code, and [it] had good vendor support."
The state of Java today
Thanks to that early momentum, Java today enjoys 1 billion Java downloads per year and is used on 97 percent of enterprise desktops, according to numbers from Oracle. Indeed, Java development remains a good skill for developers to have, supporting an estimated 9 million Java developers, with Java reigning at or near the top in language popularity indexes such as Tiobe, PyPL, and RedMonk, as well in job openings on the Dice.com site.
"Java is the only other language, besides C and C++, that has survived the test of time over all these years," although it has seen its ups and downs, says Arun Gupta, who was involved in Java development at Sun beginning in 1999 and now focuses on Java middleware as director of developer advocacy at Red Hat. "All the major industries run some form of Java in their mission-critical deployments. Only a technological apocalypse would render Java irrelevant in the future."
These days, Java is under the stewardship of Oracle as a result of its January 2010 acquisition of Sun. The platform went open source in 2006, although not everyone was pleased with Sun's plan of action. IBM, for one, wanted the Apache Software Foundation to take charge of Java.
"The biggest success of Java is the platform, the JVM itself," Gupta says. "It is very robust and supports a wide variety of mainstream languages, from Java, Groovy, Ruby, Scala, Clojure, Python, and many others. All these compile to byte code and run on the JVM."
Rather than sit still, Java has continued to evolve, making accommodations for functional programming in Java 8, released last year, and modularity, due in Java 9 in 2016.
"[Modularity and Java 9 are] going to be a big deal for Java technically and one that the entire ecosystem has been waiting for a long time to have," says Mike Milinkovich, executive director of the Eclipse Foundation, which originally arose out of an IBM effort to provide Java tooling. "In addition to that, I see Java becoming more and more important as a platform for cloud infrastructure and in the Internet of things."
A lot rides on Java
Over the years, a multitude of critical technologies and businesses have piggybacked on Java. Perhaps none is more critical these days than the Google Android mobile platform, which has leveraged Java via the Dalvik VM and even led to a lawsuit filed by Oracle alleging copyright and patent infringement. Android gives developers with Java skills an outlet in the burgeoning field of mobile application development.
"Java is critical to Eclipse and its community. The vast majority of our 270-plus projects are implemented in Java, including most of our tool, runtime, and IoT technologies," says Eclipse Foundation's Milinkovich.
Other technologies banking on Java have included application servers from BEA Systems and JBoss (acquired respectively by Oracle and Red Hat) and the JetBrains IntelliJ Idea IDE.
"IntelliJ IDE or, more concretely, Renamer was born out of a personal need of the original founders, while working with code, which happened to be Java," Hadi Hariri, developer advocacy lead at JetBrains, says. "In that regard, most likely yes, Java was fundamental."
The open source Spring Framework also has been successful riding the Java wave, competing with Java Enterprise Edition.
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.
- Review: The big 4 Java IDEs compared
- Java forever! 12 keys to Java's enduring dominance
- Java vs. Node.js: An epic battle for developer mind share