Author: Karsten Silz
May 1, 2024   |  updated May 2, 2024 7 min read

Permalink: https://betterprojectsfaster.com/guide/java-tech-popularity-index-2024-q1/main/

Java Tech Popularity Index Q1/2024

What’s This?

Picking a popular technology makes our developer life easier. My free, quarterly newsletter measures Java technology popularity by following the money: job ads in 59 countries and online course purchases by 60+ million developers. I also analyze developer interest with Google searches and developer engagement with questions at Stack Overflow.

The Java technologies are: IDEs, build tools, JVM languages, databases, back-end frameworks, web frameworks, and mobile app frameworks. I also recommend options in each of these seven areas. My recommendations are based on that popularity, industry analysis, and my 25 years of Java experience.

Why popularity? Because popular technologies are easier to learn, build, debug & deploy, easier to find jobs/hire, and easier to convince teammates & bosses. Popularity can make a difference in two situations: When multiple technologies score similarly, we could go for the most popular one. And when a technology is very unpopular, we may not use it.

The Stack

Here are my recommendations:

  • IDE: IntelliJ Community Edition
  • Build Tool: Maven
  • JVM Language: Java
  • Database: MySQL
  • Back-End Framework: Spring Boot
  • Web Framework: React
  • Mobile App Framework: React Native

Like this index? Then subscribe to it as a newsletter and have it in your inbox every three months!


Table Of Contents


Archive

2023 Q4 Q3 Q2 Mar Feb Jan
2022 Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan
2021 Dec Nov

Update for Q1/2024

Late Again 😔

Why am I two months late? Three reasons:

  • I wrote a Java application to read the number of job ads mentioned on Indeed. It stopped working last December because of changes at Indeed. I have spent a lot of time adopting my application, but I have not succeeded so far.
  • Turning the Google searches and Stack Overflow data into charts took a lot of manual work. I wrote another Java application to automate most of that.
  • I move back to Stuttgart, Germany, at the end of May. That takes some time to prepare.

Data Updates

  • The number of developer ads is down 32% in November 2023 year-over-year.
  • The monthly number of Stack Overflow questions is down 55% since ChatGPT appeared (November 2022 vs. March 2024).
  • I now recommend IntelliJ Community Edition because the AI code assistants from Microsoft, Google, and Amazon don’t run in Eclipse.
  • The IDE VS Code and the back-end framework Quarkus hit its all-time high in job ad mentions.

Side Quests

I published a deep-dive into Spring Boot 3.2 and Spring Framework 6.1. It includes an interview with members of the Spring Team. I also attended QCon London and published two news items on talks (here and here).

IDEs

Here is the scorecard of VS Code (left) and Eclipse (right) vs. IntelliJ (100%), not on the card. The arrows show the trend vs. IntelliJ.

VS Code (left) And Eclipse (right) vs. IntelliJ (100%)
VS Code (left) And Eclipse (right) vs. IntelliJ (100%)

VS Code pulls away from IntelliJ in all categories except Udemy courses. Eclipse loses ground to IntelliJ in all categories.

Here are my recommendations:

  • Use an AI code assistant in your IDE.
  • If you don’t want to spend money, use IntelliJ Community Edition.
  • If you may spend money, evaluate IntelliJ Ultimate Edition.
  • Evaluate VS Code for non-Java work, like web development (I use it for all my websites).
  • If you use Eclipse or NetBeans, evaluate IntelliJ or VS Code, as they have AI assistants.

Build Tools

Here is the scorecard of Maven (left) and Ant (right) vs. Gradle (100%), not on the card. The arrows show the trend vs. Gradle.

Maven (left) and Ant (right) vs. Gradle (100%)
Maven (left) and Ant (right) vs. Gradle (100%)

Maven loses to Gradle except for jobs, where it rises slightly. Ant has disappeared from searches and Stack Overflow but surprisingly gains in jobs.

Here are my recommendations:

  • If you use Scala, use sbt.
  • Otherwise, if you absolutely cannot stand XML files and/or need to customize your build heavily, use Gradle.
  • Otherwise, use Maven.

JVM Languages

Here is the scorecard of Java (left) and Scala (right) vs. Kotlin (100%), not on the card. The arrows show the trend vs. Kotlin.

Java (left) And Scala (right) vs. Kotlin (100%)
Java (left) And Scala (right) vs. Kotlin (100%)

Please take the Kotlin numbers with a huge grain of salt: Most Kotlin development is on Android, not in JVM projects. Java loses to Kotlin in all categories except for jobs. Scala declines against Kotlin in searches and Stack Overflow but holds steady in Udemy Courses. Please see the job ad section for why job numbers for Scala are missing.

Now, let’s look at JVM competitors. Here is Python (left) and Java (right) vs. JavaScript (100%), not on the card. The arrows show the trend vs. JavaScript.

Python (left) And Java (right) vs. JavaScript (100%)
Python (left) And Java (right) vs. JavaScript (100%)

Python and Java hold steady or increase in all categories, except for a slight decline of Java in Stack Overflow.

Here are my recommendations:

  • If you need to switch languages or are on a new project:
    • Use Scala if you need functional programming.
    • Use Kotlin if you really need a “more modern Java”.
    • Otherwise, use Java 17.

Databases

Here is the scorecard of MySql (left) and MongoDB (right) vs. Postgres (100%), not on the card. The arrows show the trend vs. Postgres.

MySql (left) And MongoDB (right) vs. Postgres (100%)
MySql (left) And MongoDB (right) vs. Postgres (100%)

MySQL and MongoDB gain jobs on Postgres. MySQL loses slightly in courses, holds steady in searches, and drops more heavily in Stack Overflow questions. MongoDB holds steady in courses but loses slightly in searches and Stack Overflow questions.

These are my recommendations:

  • On your current project, keep your existing database unless that database is absolutely, irrevocably, really not working out for you.
  • If you need to switch databases or are on a new project:
    • If you know that you’ll need the NoSQL features and/or scalability, and you can’t get this with MySQL, then use MongoDB.
    • Otherwise, use MySQL.

Back-End Frameworks

Here is the scorecard of Spring Boot (left) and Quarkus (right) vs. Jakarta EE (100%), not on the card. The arrows show the trend vs. Jakarta EE.

Spring Boot (Left) And Quarkus (Right) vs. Jakarta EE (100%)
Spring Boot (Left) And Quarkus (Right) vs. Jakarta EE (100%)

Spring Boot pulls away from Jakarta EE everywhere except for job ad mentions. Quarkus gains on Jakarta EE everywhere.

Here are my recommendations:

  • On your current project, keep your existing back-end framework unless that framework is absolutely, really not working out for you.
  • If you need to switch back-end frameworks or are on a new project:
    • Use Quarkus if you need the smallest possible, fastest-starting Java application now.
    • Otherwise, use Spring Boot.

Web Frameworks

Here is the scorecard of React (left) and Vue (right) vs. Angular (100%), not on the card. The arrows show the trend vs. Angular.

React (left) And Vue (right) vs. Angular (100%)
React (left) And Vue (right) vs. Angular (100%)

React pulls away from Angular except for jobs where React holds steady. Vue holds steady everywhere except for slight gains at Stack Overflow.

Here are my recommendations:

  • If you already use React, Angular, or Vue in your project, keep using them. Otherwise, evaluate a migration. In many (most?) cases, such migration doesn’t make business sense.
  • If you start a new project or migrate, start with React first, Angular otherwise, and finally, Vue.

Mobile App Frameworks

Here is the scorecard of React Native (left) and Xamarin (right) vs. Flutter (100%), not on the card. The arrows show the trend vs. Flutter.

React Native (Left) And Xamarin (Right) vs. Flutter (100%)
React Native (Left) And Xamarin (Right) vs. Flutter (100%)

React Native and Xamarin lose to Flutter in all categories.

Here are my recommendations:

  • Don’t build two separate applications with Apple’s and Google’s first-party frameworks. Use a cross-platform framework instead.
  • If you already use Flutter or React Native in your project, keep using them. Otherwise, evaluate a migration. In many (most?) cases, such migration doesn’t make business sense.
  • If you start a new project and have used React to build web applications, then use React Native.
  • If you start a new project and have .NET experience, use .NET MAUI.
  • If you start a new project and need to use a library only available in Java, use JavaFX.
  • Otherwise, start with Flutter first and use React Native if that doesn’t work out for you.

Next Issue

The next issue will arrive in June 2024. Subscribe to it as a newsletter to have it in your inbox then!


comments powered by Disqus