Author: Karsten Silz
May 1, 2023 7 min read

Permalink: https://betterprojectsfaster.com/guide/java-tech-popularity-index-2023-q2/main/

Java Tech Popularity Index Q2/2023


This is an old version! Click below for the current one.

See Current Version


What’s This?

My quarterly “Java Tech Popularity Index” measures the popularity of IDEs, build tools, JVM languages, databases, back-end frameworks, web frameworks, and mobile app frameworks with data from millions of developers: job ads from 59 countries, online training students, Stack Overflow questions, and Google searches.

I also recommend options in each of these seven areas. My recommendations are based on that popularity, industry analysis, and my 24 years of Java experience.

Why popularity? Because picking a popular technology makes our developer life easier: easier to learn, build, debug & deploy, easier to find jobs/hire, and easier to convince teammates & bosses. Now 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.


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


Table Of Contents


Archive

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

Update for Q2/2023

Late by two weeks, this issue has two new features: scorecards for each area and the actual number of questions at Stack Overflow.

  • Scorecards show the current standings & trends of the top three technologies. The runner-up is at 100%, but not on the card. The leader (left) and number 3 (right) are. The red arrows show the trend vs. the runner-up.
  • Until now, I used Stack Overflow Trends to show the number of questions. That had two problems: Not all technologies were available there (the Micronaut back-end framework, for instance, is not). And the numbers were a relative percentage of all questions, which made it harder to understand the actual number of questions. Now I use the StackExchange Data Explorer, which gives me the number of questions for all technologies.

On to the update for Q2/2023:

  • The number of developer ads is down in Q1/2023.
  • All back-end frameworks lost share against Jakarta EE over the last two months (Quarkus & Micronaut) and nine months (Spring Boot).
  • Python now has three times as many course buyers on Udemy as Java (39.8 million vs. 13.3 million). The gap is widening: It was four times as many buyers in the last nine months (4.3 million vs. 1.1 million).
  • VS Code claims the #2 spot in IDE job ad mentions for the first time, beating IntelliJ by 11%.
  • At 13-14%, React has had the slimmest job ads lead over Angular for the last 1.5 years. But in Udemy course purchases, React now has the largest lead over Angular at 1.5:1.
  • At 1.7:1, React Native has had the slimmest job ads lead over Flutter.
  • Postgres narrowly overtook MySQL in questions at Stack Overflow for the first time (1,509 questions vs. 1,485).
  • Gradle also surpassed Maven at Stack Overflow for the first time but with a more comfortable lead (440 questions vs. 390).

IDEs

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

Scorecard For IntelliJ (100%) vs. VS Code (left) and Eclipse (right)
Scorecard For IntelliJ (100%) vs. VS Code (left) and Eclipse (right)

VS Code pulls away from IntelliJ in all categories except Udemy courses. Eclipse pulls away slightly from IntelliJ in jobs but loses ground in all other categories.

Here are my recommendations:

  • If you don’t want to spend money, then use Eclipse.
  • If you may spend money, evaluate IntelliJ.
  • Evaluate VS Code for non-Java work, like web development (I use it for all my websites).
  • If you’re using NetBeans, consider moving off of it.

Build Tools

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

Scorecard For Gradle (100%) vs. Maven (Left) and Ant (Right)
Scorecard For Gradle (100%) vs. Maven (Left) and Ant (Right)

Maven holds steady against Gradle except for Stack Overflow. Ant holds up surprisingly well in jobs for its age but has disappeared from searches and Stack Overflow.

Here are my recommendations:

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

JVM Languages

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

Scorecard For Kotlin (100%) vs. Java (left) and Scala (right)
Scorecard For Kotlin (100%) vs. Java (left) and Scala (right)

Please take the Kotlin numbers with a huge grain of salt: Most Kotlin development is on Android, not in JVM projects. Kotlin gains on Java in all categories except for jobs. Scala declines against Kotlin in all categories (see the job ad section for why job numbers for Scala are missing).

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

Scorecard For JavaScript (100%) vs. Python (left) and Java (right)
Scorecard For JavaScript (100%) vs. Python (left) and Java (right)

Python slightly declines in jobs against JavaScript but holds steady or slightly increases in all other categories. Java holds steady in searches but declines slightly everywhere else.

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 the latest Java LTS version you, your team, and your application can take.

Databases

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

Scorecard For Postgres (100%) vs. MySql (left) and MongoDB (right)
Scorecard For Postgres (100%) vs. MySql (left) and MongoDB (right)

Postgres gains slightly on MySQL except for jobs where it loses slightly. MongoDB holds steady against Postgres except for questions where it also loses somewhat.

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 Jakarta EE (100%), not on the card, vs. Spring Boot (left) and Quarkus (right). The arrows show the trend vs. Jakarta EE.

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

Spring Boot pulls away from Jakarta EE everywhere except for jobs, where it dropped from 588% in June 2022. Quarkus gains on Jakarta EE everywhere and pulls away in Stack Overflow questions.

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

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

Scorecard For Angular (100%) vs. React (left) and Vue (right)
Scorecard For Angular (100%) vs. React (left) and Vue (right)

React pulls away from Angular except for jobs where Angular holds steady. Vue holds steady or gains slightly against Angular.

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 Flutter (100%), not on the card, against React Native (left) and Xamarin (right). The arrows show the trend vs. Flutter.

Scorecard For Flutter (100%) vs. React Native (Left) and Xamarin (Right)
Scorecard For Flutter (100%) vs. React Native (Left) and Xamarin (Right)

Flutter gains on its competitors in all categories but installed apps.

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, then 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 and have used React before, then start with React Native first and use Flutter otherwise.
  • If you start a new project or migrate and have not used React, then begin with Flutter first and use React Native otherwise.

Next Issue

The next issue will arrive on Wednesday, July 26, 2023. Subscribe to it as a newsletter to have it in your inbox then!


comments powered by Disqus