Is still worth for a software developer to learn Java in 2021?
This is by all means a legitimate question, especially if we consider all the new web frameworks available nowadays: with a streak of extremely popular client-side frameworks such as Angular, ReactJS, Vue.js and Svelte, coupled with solid and steady server-side frameworks like ASP.NET Core, Python, Node.js, Go and Rust, it might seem that "old legends" such as Java and PHP are close to extinction.
However, they are not: as a matter of fact, Java is still one of the hot languages when it comes to Enterprise level Web apps, as well as microservices; furthermore, it still dominates a lot of business sectors - such as the banking and finance web industry. In this post we'll try to give an objective answer to our starting question by taking into account a number of Java-related, factors, such as the learning curve, the modern Java development environment, the latest productivity reports. Are we ready? Let's start!
One of the biggest issue a modern software developer might hit while approaching Java is the fact that it's easily become one of the toughest language to learn, at least if we compare its learning curve with that of modern programming languages specifically designed for the web, most of which have a more straightforward and user-friendly approach. This is also the reason why most students are struggling with learning Java at school - and the reason why most of them are using Java assignments done by expert services which help with homework and complexity.
Apart from that, if we're comparing Java with NodeJs, python, kotlin and Scala like languages, we should definitely consider the latest releases of Java, such as Java version 12, which features a lot of functional programming stuff such as fibers, Webflux, Event handling, Nio and so on: most of them have been put in place to make Java compete with ASP.NET Core and Python, the two server-side frameworks that are most responsible for the progressive decline of the Java supremacy.
In terms of bare numbers, Java is still widely used worldwide, and the advent of the Internet of Things definitely helped it to stay in the loop: there are billions of devices around the world are running something with Java Virtual Machine (JVM): these numbers won't likely drop for a while, since a lot of large companies are still using Java and/or do have a immense Java codebase to mantain. These aspects alone will definitely guarrantee a high demand of Java software developers for years to come. Here are some further things to consider:
- The Spring Framework is still very popular, especially when it comes to Spring Boot - the Spring-based solution for creating stand-alone, production-grade applications: if we look at StackOverflow's numbers, we can find more than 100k questions with the spring-boot tag, compared to the 75k for Vue.js and 250k for Angular: that's not bad at all!
- Java is still critical to Android development, and it will likely continue to be pivotal for the next few years.
- Swing and JavaFX are still a great way to create cross-platform desktop applications, thanks to extremely popular open- source development platforms such as IntelliJ IDEA and Eclipse.
- The Java Virtual Machine (JVM) is still rocking in terms of bare performance and overall stability, even on modern computers & CPU architectures: more than 20 years of improvements have made it one of the most capable and solid VMs around.
Job opportunities and salary
Thanks to all the above reasons, the median salary for Java engineers is still generally considered to be above average compared to other language specific positions: here's a list of the average Java developers freelance rates worldwide for year 2019 from YouTeam.io's Where to Hire Offshore Java Developers article:
- United States: $ 39,000 per year – junior, $ 102,699 – middle, $ 202,000 – senior.
- Australia: $ 38,000 per year – junior, $ 99,906 — middle, $ 189,000 – senior.
- Canada: $ 30,000 per year – junior, $ 84,507 – middle, $ 165,000 – senior.
- United Kingdom: $ 19,673 per year – junior, $ 69,454 – middle, $ 149,510 – senior.
- France: $ 19,241 per year – junior, $ 43,538 – middle, $ 83,757 – senior.
- Germany: $ 37,359 per year – junior, $ 52,077 – middle, $70,191 – senior.
- Poland: $ 9,793 per year – junior, $ 22,234 – middle, $39,440 – senior.
- Israel: $ 5,604 per year – junior, $ 50,443 – middle, $93,039 – senior.
- India: $ 2,643 per year – junior, $ 6,385 – middle, $ 14,447 – senior.
- China: $ 11,039 per year – junior, $ 19,542 – middle, $52,511 – senior.
In a recent survey made by JRebel for their Java 2021 Productivity Report, the largest share of respondents self-identified as Java Developers (49%), followed by those identified as Architects (24%) and Team Leaders (17%): Consultants, Director, Vice-President, or C-Level together don't go over 10%: this definitely means that the language is still very lively and there's still a high demand for developers.
Many new modern languages are introduced in the last 20 years, but Java - despite its age - is still holding its position, especially when it comes to Android development and multi-platform app development. Java isn't showing any sign of declining, and the proof is that, whenever there is new hardware, Java is consistently one of the first languages that gets a port, since the manufacturers know that it will be useful: for all the above reasons, there is no rational analysis of the state of programming languages that would show Java in major decline for the foreseeable future.