Java has been one of the most in-demand languages for over 20 years now. It is widely used across the industry and is often a compulsory part of the syllabus in most computer science courses across the world. But many developers are beginning to see it as an aged and primitive programming language, which, they predict, will soon become obsolete. This article tries to get to the heart of this issue by analysing popular developer surveys.
In the last week of December 2021, I received a call from a friend of mine. She is a programmer who just completed her master’s degree in computer science. She was setting her learning goals for the upcoming year and asked me to recommend five programming languages that she should focus on. One of the recommendations I gave was to learn Java. “But Mir,” she said, “Isn’t Java dead?” I was taken aback by this statement. How can someone claim that Java is dead? It is one of the most widely adopted programming languages in the industry. It is also very much in use and in demand in the current market.
Later that day, I Googled ‘Is Java dead?’ just to see if there was any meat in this argument. This took me down a rabbit hole filled with a great many developers who do, in fact, believe that Java is mostly a redundant language with not much use in the future. Amongst the critics of Java were some great names in the industry such as Linus Torvalds. “What a horrible language,” said Linus in an interview when asked about Java. That got my attention and I started to dig deeper. I noticed a pattern in the arguments that the developers shared against Java. The vast majority of Java critics seemed to have issues with the way this language is structured.
The best way to understand how the developer industry perceives a technology is to follow the data published on popular developer survey reports. In this article, I have researched data from GitHub Octoverse Report 2021, JetBrains State of Developer Ecosystem 2021 and StackOverflow Developer Survey 2021. The insights that I drew from these reports hold the key to understanding what has gone right or wrong with the Java ecosystem.
A brief overview of Java
My assumption in this article is that the reader already has some notion of Java programming and how it functions. As such, I shall not go into too many details about the history of Java. Doing so will take us off-topic. But it is always a good idea to share the basics so that we can brush up on what we already know about Java. Feel free to skip this section if you have a good understanding of the language.
Java is a high level, class based, object-oriented programming language. Built on the write once, run anywhere (WORA) model, it was developed by Sun Microsystems in 1995. Oracle acquired Sun Microsystems in 2010 and took charge of the development process of Java.
From 2010 onwards, the development of Java sped up under Oracle with new versions being released almost every six months. The latest version at the time of writing this article is Java 17, released in October 2021.
Design principles of Java
Before heading into the analysis of the developer surveys, I find it necessary from the context of this article to share with you Oracle’s vision for Java. Listed below are the key points from the design principles of Java, as mentioned on the official website of Oracle.
Java is designed to be:
- Simple, object-oriented and familiar
- Robust and secure
- Architecture-neutral and portable
- High performance
- Interpreted, threaded and dynamic
These points are about to become very relevant to this article. I shall be connecting the dots in the last section. For now, let us begin the analysis of the developer surveys.
GitHub Octoverse Report 2021
Every year, GitHub publishes a survey of its own platform to gain insights on developer trends. It is called the GitHub Octoverse Report. The following are the key insights from the 2021 report with respect to Java, as shown in Figure 1.
Java ranked second in the top ten programming languages used in the GitHub repositories from 2014 to 2018. JavaScript remained the most popular programming language.
JetBrains State of Developer Ecosystem 2021
JetBrains conducts its own developer survey each year to understand the upcoming trends in the developer community. For 2021, 31,743 developers from 183 countries participated in the survey. The following are the key insights on Java in this report.
1. Java is the fifth most popularly used programming language, as shown in Figure 2.
2. Java ranks second in terms of the primary programming language used in a project.
3. Fifty-six per cent of Java developers build Web applications.
4. Of the Java developers that build Web applications, 77 per cent are backend Web developers.
5. Java is more popularly used in South Korea, China and India.
Stack Overflow Developer Survey 2021
Stack Overflow conducts the most comprehensive developer survey in the tech space. In 2021, over 80,000 developers were surveyed to gather key insights and trends. A great convenience provided by this report is that it lets you filter data by the parameters of ‘all respondents’ or ‘professional developers’. This means that you have a choice to see the data given by all respondents or you can filter out the data of the respondents who are not yet professional developers, i.e., haven’t worked in the industry yet. Given the topic of this article, I have only taken the responses of professional developers into account.
Given below are the key insights on Java from this report.
1. Java is the seventh most popular programming language according to 58,031 respondents, as shown in Figure 3.
2. On the question of ‘loving/dreading’ a programming language, 29,162 developers responded the following about Java:
a. 52.8 per cent (15,413) responded by saying they dread using Java.
b. 47.1 per cent (13,749) responded by saying they loved using Java.
3. On the question ‘What programming language do you want to learn’, Java was ranked ninth according to 82,914 respondents.
There are a few more insights within this survey that I felt were necessary to take note of in relation to Java.
First, a few insights on the Java based Spring Web development framework.
1. Spring ranks as the eighth most popular Web development framework according to 49,941 responses, as shown in Figure 4.
2. On the question of loving/dreading a framework, 9177 developers responded the following about Spring:
a. 59.8 per cent (5,490) responded by saying they love Spring.
b. 40.1 per cent (3,687) responded by saying they dread Spring.
3. Spring ranks eleventh in the list of frameworks that the developers “want to learn.” Of 66,202 respondents, only 3.8 per cent showed interest in learning Spring.
Second, some insights on the Java based Hadoop Big Data management library.
1. Hadoop ranks last in the ‘most popular libraries’ to use according to 41,760 respondents, as shown in Figure 5.
2. On the question of loving/dreading a library, 2,155 developers responded the following about Hadoop:
a. 54.7 per cent (1,179) responded by saying they dread using Hadoop.
b. 45.2 per cent (976) responded by saying they love using Hadoop.
3. Hadoop ranks tenth in the list of 13 libraries the developers ‘want to learn’ according to 58,282 respondents.
Two additional key insights to take note of from this survey are:
1. Of the 61,216 professional developers that participated in this survey, the majority have been working professionally for 10 years or less.
2. Out of the 81,641 total respondents in this survey, over 50 per cent have been programming for 10 years or less.
What do these reports say about Java?
The insights drawn from the reports discussed above can be summarised in the following points:
1. Java remains a popular programming language in the developer community, although its popularity has seen a slight decline due to the rise of programming languages like Python and Rust.
2. Although Java is used in many industries, its ecosystem primarily consists of backend Web developers. This is in huge part due to the popularity and demand of the Spring Web development framework, which is the most popular Java based Web development framework.
3. The developer community is losing interest in learning Java or investing time into learning frameworks that require Java. The lack of interest in learning Hadoop and Spring is a case in point.
4. Most developers coding professionally find Java an intimidating language. This resistance spills over in the statistics for Java based frameworks as well. A significant majority of Hadoop developers dread using Hadoop, whereas a significant minority of Spring developers dread using Spring.
Summing it up
By no means is Java a dead programming language. But it is most certainly a programming language that is facing trouble finding its footing in the ever evolving developer community. In the beginning of the article, I had shared the design principles of Java as described by Oracle. As far as the utility of Java is concerned, Oracle has done a great job. Java can be used for a wide variety of applications efficiently. However, the price of this utility has been the sacrifice of simplicity. The first design principle of Java is that it should be simple. Unfortunately, developers do not seem to find it simple to use.
Most of the developers who are participating in these surveys have been working for 10 years or less. This new generation of developers is having trouble with the strict implementation of the object-oriented design pattern of Java. With the rising popularity of Python (thanks to its many libraries) and the immense rise of computational power that allows many companies to not sweat over the time complexity of programs, Java is beginning to be seen more as an obstacle rather than a solution.
The beauty of Python and other such programming languages that do not strictly implement object-oriented programming is that due to their syntactic simplicity, it is easier to write semantically complex code with them.
So to conclude, I would say that Java is most certainly not dead, YET.