This article was prepared by a guest contributor to ProgrammableWeb. The opinions expressed in this article are the author's own and do not necessarily reflect the view of ProgrammableWeb or its editorial staff.
1995 was the year AOL floppy disks arrived in the mail, Netscape Navigator was born, and the first public version of Java was released. Over the next two decades, Java witnessed the multi-core revolution, the birth of the cloud, and the rise of polyglot programming. It survived these upheavals by evolving with them. As a result, we can celebrate Java’s 20th birthday this month.
Java’s promise of “Write Once, Run Anywhere,” which originally targeted portability across interactive television sets, is paying dividends in the Internet-of-Things (IoT) arena. The Java Virtual Machine (JVM) runs on mobile phones, wearables, all Blu-ray players, industrial robots, and cloud platforms. It even drives NASA's mission control software and a simluator of the Mars rover.
But the JVM’s old age doesn’t make it out-of-date. Java’s resurgence during the first part of this decade culminated with its biggest release ever in Java 8. It also gave rise to alternative JVM languages such as JRuby, Scala, Groovy, and Clojure. Ultimately, its transition to the OpenJDK project, which is supported by dozens of industry heavyweights, has ensured Java will be around for a long time.
Growing Up With the Web
Java began as an internal project at Sun Microsystems in the early 1990s. The company wanted to create a language for programming next-generation television sets and remote controls. But by the mid-1990s, it was already clear that the online revolution was beginning. In 1995, the “Internet” and the “World Wide Web” became the same thing in most people’s minds. Fittingly, Sun changed direction to target the Web.
Java hit the ground running in May of 1995, and within 5 months Oracle, Toshiba, Mitsubishi, Macromedia, and Borland bought licenses. But the most notable endorsement of Java came from Netscape, which included the Java runtime in its open source browser. At its peak, Netscape’s usage share was close to 90 percent, which meant Java had its foot in the door in a big way. But it was server-side Java that really took off. Programmers benefited from Java’s automatic memory management, the absence of buffer overflow errors, and the rapid feedback provided by its interpreted runtime.
Bubbles and Benchmarks
Java was still in its infancy when the dot-com bubble burst — hitting Sun hard. The company’s stock fell to $10 per share from a high of nearly $250 per share. It was the beginning of the end for the once great Silicon Valley heavyweight. But despite Sun’s financial troubles, new Java releases continued to offer performance and security improvements to the platform.
Sun’s demise also opened the door for third-party vendors to challenge the official JVM by creating their own versions of the Java runtime. The competition led to improvements on all fronts. BEA, IBM, and Sun vyed for dominance in the benchmarks of the day. The results were concurrent garbage collection, non-uniform memory-access support, large-page support, and heap compaction. Server-side Java performance was beginning to rival code written in C.
But no matter how well Java did, Sun continued to struggle. Ultimately, an acquisition was inevitable.
Oracle Takes Over
When Oracle purchased Sun, nearly 6 years ago, most developers were skeptical of how it would affect the future of Java. Would Oracle narrow the scope of its openness? Would they hinder the community’s ability to contribute JSRs? Thus far, Oracle has upheld Sun’s promise of an open JVM. Today, Java is more accessible than ever, and the community is larger and more vibrant than it was in the Sun years.
Oracle still maintains a strong grip on the “Java” name and API design, as demonstrated by the Oracle v. Google dispute. But Oracle has also funded extensive open source improvements to the OpenJDK. Could Java be more open? Yes, but it’s hard to complain about its current status given the history of the Java Community Process. It has grown under Oracle — both in openness and adoption.
Java Present and Future
The JVM runs on an estimated 89% of computers, 3 billion mobile phones, and 125 million TV devices. There are 9 million Java developers worldwide and Java is at the top of the TIOBE Index. But Java is not the only JVM Language on the list. The TIOBE Index includes Scala, Groovy, and Clojure.
Alternative JVM languages are powering critical systems at Netflix, Twitter, LinkedIn, Square, and Google. Organizations are able to leverage these languages with little cost to tooling and without having to retrain an entire team of developers. The JVM enables developers to choose the right tool for the job and allows those tools to interoperate using a consistent and robust platform.
Furthermore, the JVM’s ability to run in more and more places is growing too. Java is powering the Internet of Things with its portability, and the next release of Java will further improve this capability. Project Jigsaw, a proposal for a modular JVM, will enable more compact runtimes that run on the smallest devices without giving up networking, database connectivity, or other essential features.
Java has become more than just a language. It is a platform, an API, and a community. Businesses trust the JVM with their most important and sensitive technologies because of its maturity, reliability, and security. Java is at the precipice of the next generation of software and hardware. No matter what trends emerge, developers and businesses will look to Java as a platform that can create innovative products. Long live Java!