Following the new biannual release schedule that started in 2018, this year Java saw two major releases, Java 12 in March and Java 13 in September.
Java 12 introduced features such as a new low pause time garbage collector, microbench suite, switch expressions, a JVM constraints API, and more.
With Java 13, Oracle set out to improve the performance, stability, and security of the Java SE Platform and the Java Development Kit (JDK). This version introduced three major enhancements: dynamic CDS archives, the ability to uncommit unused memory, and a reimplementation of the Legacy Socket API.
Java 13 also introduced two new preview features, Switch Expressions and text blocks, for developers to test out. Switch Expressions allows switch to be used either as a statement or expression. Text blocks are multi-line string literals that automatically get formatted in a predictable way.
Another major change that had occurred in 2018 was the transfer of Java EE from Oracle to the Eclipse Foundation. The move was announced in 2017, and the Eclipse Foundation changed its name to Jakarta EE in February 2018.
Even in 2019, the transition continued. One of the major milestones it reached in 2019 was that it now operates under an “open, vendor-neutral community-driven process.” The Eclipse Foundation’s executive director, Mike Milinkovich, commented that this model would allow for more innovation in Java.
While Java still remains the most popular programming language according to many accounts, several reports throughout the year, such as the TIOBE Index and JetBrains’ State of Developer Ecosystem 2019 report, predicted that Python would soon overtake it as the top programming language.
A recent GitHub report found that Python actually did surpass Java in popularity in GitHub repositories. Its 2019 State of the Octoverse placed JavaScript as the most popular language, Python as the second most popular, and Java as the third most popular. According to GitHub, this was the first time that Python had surpassed Java.
In addition to competition from Python, Kotlin is likely reducing some of Java’s share as well, especially since Google started supporting it as a language for Android development. Kotlin is a language developed by JetBrains as a general-purpose, statically typed programming language for the Java Virtual Machine, Android, browsers, and more.
In the coming years, Java will need to fight hard if it wants to keep its coveted spot as the top programming language.
Oracle continues trying to evolve Java, and it currently has several projects in the works for facilitating innovation for Java, include:
- Valhalla, focused on introducing value types to Java
- Panama, which is about updating the form function for Java
- Loom, which focuses on scaling Java
- Amber, which is focused on finding ways to simplify the language
- Metropolis, which is trying to see how much of the JVM can be written in Java so that both JVM and Java can evolve faster
Oracle’s Georges Saab, vice president of engineering for Java Standard Edition, explained that the reason for these projects is because feature releases are now every six months. It’s hard to solve the harder problems of the language in that time frame, so these projects serve as a place where problems can be worked on more long term.