According to the TIOBE index, Java is the most popular programming language today. The index describes how often requests for a particular programming language appear in search engines. Although it doesn’t show the actual lines of code written in certain language, it reveals the language popularity in the world.   

The language and platform

In the corporate sector, Java holds a leading position due to its major advantages, as compared to the main competitor C#, among which are cross-platform features, powerful frameworks (Spring, Hibernate, Apache), and wide support of the community. Additionally, Java is a platform rather than just a language. The same app written in Java can run well on different OS, with no need to make changes in the code.  

However, the flip side of the language popularity is that Java is unwieldy. The changes in the language cannot be revolutionary or particularly frequent. They should be evolutionary and not make developers rewrite code from scratch, that is, provide backward compatibility. This led to the introduction of new languages, such as Scala, Groovy, Kotlin, Go that, being independent externally, still use JVM (Java Virtual Machine) as a runtime environment. 

Java was often berated for its slow and unwieldy features. But in 2018, Oracle changed Java’s release cycle for half a year, rolling out new versions every six months and bringing various improvements.    

New versions, new features?

With new releases, Java is approaching the latest trends in the modern software development – new features and patterns are introduced in the latest versions (var, pattern matching, lightweight threads, JS promises, etc.). For example, the following features were added in Java 12 and 13: 

  • Text blocks
  • Dynamics CDS Archive (to improve app startup performance)
  • Improved garbage collection algorithm
  • Integrated performance microtests
  • Simplified syntax for switch expressions

Some new features in Java 14:

  • Records as a replacement for POJO
  • Better NPE messages
  • Non-volatile memory support

Oracle changed its licensing policy in April 2019. All JDK releases (JDK11, JDK 8 Update 211) for commercial use issued since this date need to be licensed.

In return, Oracle will provide long-term support for the older Java versions. The changes in the licensing policy refer to Oracle JDK, while OpenJDK still remains free. Moreover, there are releases based on OpenJDK:

  • Liberica JDK is worth noting, as it is created by experienced developers from Oracle JDK who were previously members of Oracle’s team
  • AdoptOpenJDK
  • Red Hat OpenJDK
  • Amazon Corretto

In 2020, Java is still the most popular language and will remain so in the future, particularly in the enterprise segment. The language is evolving, although not so rapidly or abruptly, and widely supported by the community.

What languages should be used and learned in 2020?

Which programming language should you learn? We would not recommend chasing new modern languages such as Go, Rust because it is still not clear if they can survive the first stage of their growth and development. It’s possible that in a couple of years no one will remember them. It would be better to choose something well established and time-proven as, for example, Java for backend.  

Although Java is influenced by Oracle, this language is based on an independent non-proprietary technology, close to the open source world. Java has been developed for almost 25 years. Compared to the modern languages focused on solving particular tasks, it covers practically all areas of application development: data structures, multithreading; it has numerous proven frameworks for implementing all possible architectures, starting from classical client-server to microservice architecture and means of functional programming. It is hard to imagine an area that would not be supported by Java. It is not necessary to learn the language thoroughly, but it is worth immersing yourself into its major fields. Based on this knowledge, developers will be able to easily learn any other language, if required.         

Recently, the release of a new Java version has been the major event of half a decade. However, everything changes. Oracle has not only moved to making releases every six months, but also has confidently consolidated this trend. Two releases this year and the current Java 13 are clear proof.

On one hand, such frequency in issuing releases makes the language more up-to-date and popular for learning. On the other, rare releases were also Java’s strong point. Stability and reliability are two major factors that affect decision making when choosing a development technology. Now the support terms for new versions have been reduced significantly. Java 11 was the last release with long-term support.  

However, today’s realities determine their own rules: the development rate of technologies, demand for new solutions and high competition between programming languages require changes to be made in the established traditions. And Java follows these rules.  

In 2020 Java will keep a low entry threshold for software development

JavaScript is leading the number of projects on GitHub. There is no need to buy anything to develop in Java and JavaScript so far, as there are freely distributed tools. For JavaScript development, you only need a browser and word processor, and as for Java – just a free OpenJDK. Of course, there are also professional development environments such as IntelliJ IDEA.    

JavaScript has numerous realizations. The most popular are V8, Google’s engine used in Chrome, and Spidermonkey, the engine used in Firefox. There is also njs, an engine developed by Russian programmers that is used in a popular web service nginx. The standards for the JavaScript language are defined by an international industry organization known as the European Computer Manufacturers Association.    

Today, the demand for software developers in both languages is strong, and overall digitalization will bring no decrease in requirements for these technologies in the near future.