Java 25 years — aging like fine wine or more like milk?
Tags: java, productivity, codequality
Published: 2020-09-18 09:19:18

On May 23, 1995, Sun Microsystems released Java. This means that Java turned 25 years old this year, and that is something we need to celebrate! The age of 25 is quite old for a programming language, though, right? Let’s take a look at the programming language, the ecosystem, the community, and the future of Java, see and try to decide if Java aged like fine wine or more like milk.

James Gosling, Mike Sheridan, and Patrick Naughton started the java language project back in 1991. In 1995 Sun Microsystems released the first version. James Gosling wrote the language with a C/C++ style syntax, so programmers could familiarize themselves very easily with Java. The purpose of the language was the ability to run it on all sorts of systems without specific code changes. The WORA principle, “Write Once Run Anywhere”, was created with the release of runtimes for all popular platforms. 

At the age of 25, critics might say that Java is old and there is no place for a language like Java anymore. However, if we look closely, Java is still one of the most popular languages at this moment. Besides, other very popular languages like JavaScript and Python are also about the same age—JavaScript was founded in 1995 while the first version of Python dates back in 1990.


## The Java ecosystem
Java is not just a language—the JVM (Java Virtual Machine) and its ecosystem have evolved a lot over the years. Other languages where created that run on the JVM and became popular as well, for example, Scala, Groovy, and more recently, Kotlin. However, if we look at the [JVM report 2020](https://snyk.io/blog/jvm-ecosystem-report-2020/) we see that Java itself is still the most popular language on the JVM. 

The most recent release is [Java 15](https://openjdk.java.net/projects/jdk/15/) which was launched a couple of days ago on September 15, 2020. With new language features like Sealed Classes, Hidden Classes, text blocks, Pattern Matching for `instanceof`, and Records, claiming that Java is not evolving or dead, is simply not true. In fact, it is evolving at a faster pace than ever before. Maybe even so fast that Java developers cannot keep up with it anymore—the [JVM report 2020](https://snyk.io/blog/jvm-ecosystem-report-2020/) shows that people tend not to upgrade to the latest version. Regardless of whether developers keep up with the new cadence or not, Java is very much alive.

The Java ecosystem is more than just the JVM and the languages running on it. With the introduction of package managers like [Maven](https://maven.apache.org/) in 2002 and [Gradle](https://gradle.org/) in 2007, it became much easier to include third-party libraries and frameworks in Java languages. Well-known libraries like [Apache Commons](https://commons.apache.org/), [Eclipse Collections](https://www.eclipse.org/collections/), and thousands of others enrich the ecosystem massively. Frameworks like [Quarkus](https://quarkus.io/) and [Spring](https://spring.io/) (Boot) make application development, in general, much easier. Spring is the most dominant framework in the ecosystem, at the moment, and an essential asset for tons of applications.

## Staying up to date
Java and the ecosystem are growing massively. New features and fixes are popping up in both the language and third-party libraries and frameworks at a rapid pace. With a massive community supporting the language, different distributions of the JDK (Java Development Kit), and maintaining open source libraries, the ecosystem is moving at a fast pace. The biggest issue for the developers, at this point, is keeping up with that pace. Not only do we see people still using old Java versions in production—[64% are still using Java 8 in production](https://snyk.io/blog/developers-dont-want-to-leave-java-8-as-64-hold-firm-on-their-preferred-release/), at the beginning of 2020—the same holds for outdated library and framework versions. 

Outdated dependencies will, first of all, expose you to known vulnerabilities that can harm your system. [Snyk](https://snyk.io) helps you with that by scanning and fixing your projects. Secondly, upgrading to newer versions gets harder and harder every time it is postponed. By not updating you automatically create technical debt which grows over time.

![Java 25 year - what version are you using](https://dev-to-uploads.s3.amazonaws.com/i/3rk7m5szwacn7dpmzi4u.png)


## Conclusion
Java is still a very vibrant language and ecosystem—the large, active community makes this possible. Although some changes are not received with cheers by everyone, we can conclude that the language is still evolving rapidly—updating to newer versions of your Java distribution and your libraries, is key now and will be in the near future.

In short, Java is very much alive and kicking. While there are aspects and changes in Java that not all people agree with—or have been able to adapt to—the ecosystem is vibrant and the language is rapidly evolving and maturing like a fine Californian Cabernet Sauvignon.