2020 marks a major milestone for the Java programming language as it celebrates its 25th birthday and continues to be among the most relevant and widely used development technologies.
Sun Microsystems engineer James Gosling publicly announced the Java language on May 23, 1995, though the initial effort actually got started in June 1991. The early promise of Java was simple and yet profound, offering developers the opportunity to write once and then run anywhere. At the time, code was often tightly coupled with underlying hardware and the idea of code portability wasn't fully realized—until Java came along.
Java has undergone significant technical and organizational challenges over the past 25 years. It moved from being entirely proprietary to open source in 2006, it transitioned from Sun to Oracle in 2010 as part of Oracle's acquisition of Sun, and, in 2017, its release cadence was accelerated.
Oracle Reflects on the Rise of Java
In an online event hosted by Oracle celebrating 25 years of Java, Georges Saab, vice president of the Java Platform Group at Oracle and chair of the OpenJDK Governing Board, noted that Java found initial success because it solved a problem that developers had. The problem was code portability and the ability to write code that can run on any system.
Mark Reinhold, chief architect of the Java Platform Group at Oracle, also reflected on how promising Java was in the beginning, though he admitted that there have been many surprises.
"Probably the thing that surprised me the most is how long it's lasted," he said.
Beyond the promise of portability, key tenets of the Java language are also stability and backward compatibility, such that code written a decade ago can still run today. Reinhold noted that early on, Java development struck a balance between adding new features while still maintaining stability.
Over the years, it's been critical that Java has continued to innovate, added Brian Goetz, Java language architect at Oracle.
"If we don't innovate, we're going to become irrelevant, and Java is not going to be interesting to people to program with," he said.
What's Wrong with Java
While Java has many strengths, it isn't a perfect language.
Pluralsight Java and Android development instructor Jim Wilson told ITPro Today that Java tends to be more verbose than other modern languages, which sometimes is difficult for beginners. That said, issues that beginning developers might have with Java can be overcome through a combination of education and tools, he added.
"Education provides developers with the understanding to work effectively and enables developers to maximize the capabilities and power of the language," Wilson said.
There is no one perfect language, he added, as every language has pluses and minuses. One language may be the one great language for performing Task A, but another may be the one great language for performing Task B, and yet another for performing Task C.
A language alone does not constitute a solution. Wilson noted that ecosystem, APIs, tooling support, experience with a language, access to knowledgeable developers, available libraries of existing solutions, etc., all factor into determining the best language to work in when producing high-value, production software solutions. And when all of these issues are factored in, Java is a tough language to beat, Wilson said.
Java Success and Open Source
"It’s hard to say there’s a lot wrong with any language that has literally stood the test of time," Mark Little, vice president of software engineering, Runtimes, at Red Hat, told ITPro Today. "In fact, there’s probably far more 'right' with Java today than wrong, including the vibrant OpenJDK community, the fact it remains in the top 2 ranking of developer languages globally, is still used as a teaching language in many schools and colleges throughout the world, and is at the heart of one of the most popular multiplayer games in the world, Minecraft."
Little noted that Java was popular even before it was open sourced through efforts such as IcedTea and then OpenJDK, which is an open source Java development kit that is at the core of Java development today.
"However, the fact that OpenJDK came along and has grown to be an incredibly vibrant community, with participation from Red Hat, Oracle, Azul, Microsoft and others, helped developers to recognize that no one vendor is in charge of their programming language destiny," he said. "There’s been an explosion of open source frameworks, toolkits, IDEs, etc., over the past 10+ years, and whilst there are many different causes for this, I think one of them is the fact Java was open sourced."
Little added that open source software efforts have fundamentally empowered the Java language to maintain its top-ranked status for large-scale application development and production.
The Next 25 Years of Java
Java is likely to remain a cornerstone of enterprise application stacks for years to come.
Although there have been many rivals, Java hasn't been displaced by any of them, according to Azul Systems CTO and co-founder Gil Tene.
"When Java displaced C, C++ and 4GL as the predominant means of building enterprise applications, that disruptive shift happened in a handful of years," Tene told ITPro Today. "We've seen multiple waves of presumptive Java killers since, but none have taken."
Among the many reasons why Tene expects Java to remain widely used is the simple fact that there is a large pool of trained Java developers already for enterprises to draw from, making it possible to maintain code years after it was initially written.
In addition, the rapid release cadence for Java that began in 2018 means that there are now two releases of Java each year. In the past, it could take three or more years for a new release. This year has seen one release thus far, Java 14 , providing a series of incremental improvements.
Oracle's Goetz said the six-month release cycle has helped Java innovate faster, while still maintaining stability.
"With the six-month cadence, we've been able to rotate our balance back to a good mix of big and small features, work on them side by side and deliver them as they're ready," he said. "If you look at the response to Java 14, people are all excited about the new features, and you know, we're going to keep them coming."