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 languages, it reveals the language popularity in the world.
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 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.
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:
Some new features in Java 14:
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:
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.
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 the 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 make 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 points. 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.
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.