The two major Java releases are often the biggest news for the Java community each year, but this year brings another thing for the Java community to celebrate. This month brings the latest Java release, JDK 14, but in May, the programming language will celebrate its 25th anniversary.
The first Java release was on May 23, 1995. It was initially developed at Sun Microsystems by a developer named James Gosling.
According to Rich Sharples, senior director of product management at Red Hat, as with any successful technology, there was a lot of luck in timing that contributed to its success. The language emerged as the dot-com boom was starting, and compared to languages like C++ and C, it was a very well-designed language. Sharples said that early on, Java was an easy language to read, which makes it a safe choice since readability is important for long-term maintenance.
Its success during the dot-com boom can be attributed to the fact that it was built with the network in mind, Sharples explained. For example, it had native primitives for emerging internet protocols, such as HTTP.
For these reasons, developers had an interest in Java early on, but there was interest in Java from an enterprise perspective as well. It had a strong compatibility guarantee, making it appealing to companies. Around the language sprang up a whole community of vendors offering commercial support for Java — another benefit for organizations.
While the language started off at Sun Microsystems, it has since been open-sourced. Sun Microsystems decided to open source Java in 2006, three years prior to the company being acquired by Oracle, who followed through on opening it up. According to Sharples, this gave the language a big boost because it allowed collaborators to come in and help build the language.
Sharples believes that Sun and Oracle both have very different approaches when it comes to openness. At Sun, Java was a standalone business and there weren’t really any aspirations of making much money off it. They also provided developers with free access to the JVM and supported Java for four or five years without developers needing to buy support for it.
When Oracle took over, innovation in Java didn’t slow down, but they did put more pressure on developers to find a company to support their use of Java. “That was one of the major changes I think was a little bit negative in the market,” said Sharples. “I think in terms of innovation and how they manage the open source project, it’s pretty much continued as it did under Sun Microsystems.”
According to Sharples, another big boost for Java came from the fact that it was used for Android development. “They all of a sudden had lots more Java developers, developers learning Java because they want to code Android applications, so that really…kept the ecosystem growing at a time when it probably would have flattened out,” said Sharples. “I think if you were to remove those two events, the open-sourcing and the use of Java in Android, we could be having a different conversation right now.”
The most recent big change to Java happened in 2017 when Oracle decided to majorly change its release schedule. Instead of releasing a new version of Java every few years, they would now release a major version every six months. And every few years, one of those releases would be selected as a long-term support (LTS) release. The latest long-term support release was Java 11, which came out in September 2018.
Sharples believes this shorter release cycle has been a good thing, though it has taken developers some time to get used to this new release cadence. “There’s a lot of change coming pretty much on a constant basis with the JDK updates. They’re fairly frequent … People who are running serious applications on Java really do need to understand that only the LTS or long-term supported version are what they should be ultimately deploying on unless they’re willing to change as rapidly as the JDK releases,” said Sharples.
Even though Java is 25 years old, Sharples believes this is still pretty young, given that languages like Python, C++, and C are much older. And it’s still one of the main languages being taught at universities and colleges globally, he said. “My guess is the last Java programmer probably hasn’t even been born yet,” said Sharples.
Java EE opens up
As Red Hat’s senior director of product management Rich Sharples mentioned, making Java more open was a big factor in Java’s success. In addition to open-sourcing the language, in 2017 Oracle also decided to move Java EE to the Eclipse Foundation, where it was renamed to Jakarta EE.
Mark Little, VP of engineering in Red Hat’s Middleware division, suspects that Oracle’s decision to move Java EE had something to do with the success of Microprofile, which was an Eclipse Foundation project meant to help optimize Enterprise Java for microservices architectures. Back in 2016, people had been worried if Java EE even had a future because it wasn’t something Oracle was putting a lot of focus on, he explained. One of the driving factors behind Microprofile, according to Little, was to show that big vendors and communities still did have interest in enterprise Java. “So perhaps it was a combination of Microprofile and the fact [that] they realized there was a lot of interest still in Java EE that made them decide that they had to do something to get back on the agenda and open-sourcing Java EE is a very commendable thing for them to do in that regard,” said Little.
Now that it is at the Eclipse Foundation, Jakarta EE has a strong focus on openness. Java EE changes used to be determined by the Java Community Process (JCP), but the Eclipse Foundation changed that process to be more vendor-neutral and open.
A lot of the members involved with Java EE still remain, including IBM, Red Hat, and Oracle. “But by it now being out of the JCP, and like I say, within a vendor neutral organization, we all hope that it will encourage others to step up and get involved. And if you look at the Jakarta EE website you’ll see a number of vendors on that who have expressed support, who kind of didn’t do that when it was under the JCP…So this hopefully means that vendors can be a lot more involved than perhaps they were previously.”