Despite having just celebrated its 30 year anniversary, Java is still going strong. Scroll through the list of other programming languages created in the 90s and you won’t find many names you’d still recognize today, yet Java is still prevalent across the industry. 

TIOBE’s Programming Community index for June 2025 ranks Java as the fourth most popular programming language, Stack Overflow’s 2024 developer survey ranked it as seventh most popular, and IEEE Spectrum’s annual ranking in 2024 placed it in the number two spot. 

Development on Java first began in 1991 by James Gosling, Mike Sheridan, and Patrick Naughton, and its first public release was on May 23, 1995. During the first 15 years of the language, it was maintained by Sun Microsystems, which was acquired by Oracle in 2010, where it lives today. 

To understand how Java has maintained its popularity over the decades, Simon Ritter, CTO of the Java platform Azul, says you have to go back to the philosophy Gosling had when the language was created. “He described it as a blue collar programming language, and what he meant by that was it was all about getting the job done,” said Ritter. “It wasn’t an academic exercise in terms of investigating how we could change programming languages in particular ways and use different things. It was about, I need to get a job done. I want to get it done in the most efficient way. And that’s how it came about, and that’s really the philosophy that has followed the language through those 30 years, and has had a big impact on why the language has continued to be so successful.”

Another reason why the language has been so successful is that it continues to pull features from other languages to keep it relevant, Ritter explained. For example, Text Blocks was a feature borrowed from JavaScript, functional programming was borrowed from Scala, and pattern matching is something that has been seen in many other programming languages. 

“Other languages have come around and they’ve added new things, and people have gone, ‘oh, I like that shiny new feature that’s been added to that language.’ And what Java has done is said, ‘hmm, okay, let’s take some of those ideas and bring those into the language,’” said Ritter. 

And of course, the “write once, run anywhere” nature of Java has been a draw as well, especially as hardware evolved. Brian Fox, co-founder and CTO of Sonatype, the company behind the Maven Central repository, said “if you go all the way back and you look at C and C++, we have libraries and DLLs, but largely those things had to be recompiled all the time for new versions of hardware and new chips and things like that. It created this situation where in order for any of these blocks to be reusable, somebody had to constantly update them.”

The Java Virtual Machine (JVM) eliminated that issue and enabled a situation where you could create the Java JAR file once and never have to go back to update it. “You could focus your energy on innovating that thing forward as opposed to just constantly rebuilding it to make it relevant in the modern time,” he said.

Ritter believes that the greatest legacy of Java is that almost any website that you interact with probably has Java running somewhere, especially on the server side. 

“The JVM is really the power behind that and its ability to scale to hundreds, thousands, millions of users, and still deliver the things that people need,” he said. 

OpenJDK

A significant milestone in Java’s history was the push to make the language more open. 

“If we go right back to the early days of Java’s history, it became very popular, and then there were a lot of calls from people to make it more open, and Sun continued to maintain quite strict control over it, in that they didn’t hand over the specification to an open standards body,” Ritter said.

However, Sun did recognize that there was a need for people to provide input on how the language should evolve, which led to the creation of the Java Community Process. 

Several years later, in 2007, Sun released the source code of Java under the GNU GPL, leading to the creation of OpenJDK. 

Switching the release schedule allowed the language to improve more gradually

In 2017, after the release of Java 9, Oracle switched from releasing a new version of Java roughly every three years to releasing two new versions every year. This, Ritter says, has allowed the language to improve quite rapidly ever since, while still improving in a controlled way so that people don’t have radical changes. 

According to Fox, there was an inflection point between the release of Java 8 and 9, which is when they introduced the module system and some other revolutionary changes. 

“It created a little bit of a fragment in the community we still see, where people are struggling to update their applications past Java 8 because of the pretty significant changes there,” he said. 

He recalls working with Oracle and pleading them not to do things that would create a schism in the community, like with Python 2 vs 3, and he believes they were mostly successful at avoiding that. 

“There was a little bit of a hurdle to get over it, definitely not like a major fork in the community where every library had to be recompiled in the new thing, or you couldn’t use it,” said Fox. “Other than that, everything feels largely incremental. I don’t think there was any other huge watershed moment, and I would assert that’s a good thing. That’s why it continues to grow.”

Java EE becomes Jakarta EE

Another major change that happened in 2017 was that Oracle donated Java EE—a set of specifications for enterprise Java features—to the Eclipse Foundation, where it was renamed Jakarta EE. 

“From our perspective, Java is continuing to evolve right before our eyes, and it is in the midst of a renaissance of sorts,” said Tanja Obradovic, senior director of Java Programs for the Eclipse Foundation. “Our community isn’t just maintaining Java; it’s actively modernizing it, and developers continue to turn to it for everything from cloud-native services to AI.”

According to Obradovic, Jakarta EE is an example of how Java has evolved to support open-source developers and their needs. The next release will include deeper cloud native integration refinements while continuing to deprecate outdated technologies. This helps to refine the platform to support technologies like microservices and event-driven architectures. 

“All of this is possible due to the dedication of the open source community. That presence is what has contributed to and even extended its longevity as a language,” she said. 

Apache Maven

Apache Maven is a build automation and dependency management tool for Java, and Fox said it is significant in Java’s history because it made it really easy to build software with Java. 

“It was always deeply frustrating to me as an experienced Java programmer, how hard it was to try to make changes to things that we were using every day. Like, our IDE was Eclipse, and it was written in Java, and it’s like, I really wish it would do this thing, and I ought to be able to take 20 minutes and just change that code, but it was impossible to get it to build. And then when Maven came along, it was like, oh yeah, it’s super easy to build this code,” he said.

Other languages that have followed have adopted similar systems for dependency management, like the npm package manager for JavaScript, pip for Python, and Nuget for .NET. 

“I feel like those early things that we did with Java really helped open source, not just within Java, but made everything that came after it have the same basic shape that enabled the massive explosion that we’re seeing now,” said Fox.