Java Tech Popularity Index Q4/2023

Karsten Silz
7 min readNov 29, 2023

TL;DR

Developer job ads dipped 30% in 2023. Monthly Stack Overflow questions dropped 42% since ChatGPT, with JavaScript at -56% and Python at -59%. Since June 22, Udemy’s first-time Python course purchases have outpaced Java’s 7.1 million to 2 million. Job ads for Quarkus and Micronaut continue to rebound.

README

Welcome to the Q4/2023 issue of my newsletter “Java Tech Popularity Index”! If you like it, then subscribe to it for free on Substack! Or read it on dev.to or Medium. Even better: Share it with people who are interested!

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 24 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.

Update for Q4/2023

Data Updates

  • Developer job ads dipped 30% in 2023.
  • Monthly Stack Overflow questions dropped 42% since ChatGPT, with JavaScript at -56% and Python at -59%.
  • Since June 22, Udemy’s first-time Python course purchases have outpaced Java’s 7.1 million to 2 million.
  • Job ads for Quarkus and Micronaut continue to rebound.

Feature Updates

  • The charts with the number of monthly questions at Stack Overflow show the ChatGPT release on November 30, 2022.
  • The charts for job ads and Udemy students show “100%” only once.
  • The vertical axis in the charts for Google Searches and Stack Overflow questions now has dimmed numbers.

Side Quests

I published one InfoQ news item since September: JAX London 2023: Team Dynamics, Developer Platforms, and the Adoption of AI. It’s not a coincidence that I wrote about JAX London — I presented there on October 4, 2023

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 but Udemy courses, where IntelliJ catches up ever so slightly. Eclipse loses ground to IntelliJ in all 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.

READ IDE DETAILS

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 and trends downwards in jobs.

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.

READ BUILD TOOL DETAILS

JVM Languages

This is 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%)

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 all categories (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 slightly declines in jobs against JavaScript but holds steady or increases a bit in all other categories. Java holds steady against JavaScript or declines slightly.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.

READ JVM LANGUAGE DETAILS

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 gains jobs on Postgres but loses slightly (courses, searches) or heavily (Stack Overflow questions). MongoDB gains in jobs on Postgres, holds steady in searches, but loses slightly in courses and questions.

MySQL gains jobs on Postgres but loses slightly (courses, searches) or heavily (Stack Overflow questions). MongoDB holds steady in job jobs but loses slightly everywhere else.

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.

READ DATABASE DETAILS

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 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.

READ BACK-END FRAMEWORK DETAILS

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 Angular edged closer in the last year. Vue holds steady or gains slightly against Angular, except for slight losses 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.

READ WEB FRAMEWORK DETAILS

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, 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.

READ MOBILE APP FRAMEWORK DETAILS

Next Issue

The next issue will arrive in February 2024.

Subscribe to this Index on Substack for free to receive the next issue automatically!

About

Karsten Silz is the author of this article. He is a full-stack Java developer (Spring Boot, Angular, Flutter) with 24 years of Java experience. Karsten has worked in Europe and the US and is also an author and speaker. He got a Master’s degree in Computer Science at the Dresden University of Technology (Germany) in 1996.

Karsten co-founded a software start-up in the US in 2004. He led product development for 13 years and left after the company was sold successfully. Karsten then co-founded the UK SaaS start-up “Your Home in Good Hands“ as CTO in 2020. Since 2003, he has also worked as a contractor.

Originally published at https://bpfnl.substack.com.

--

--

Karsten Silz

Karsten Silz is a full-stack web & mobile developer with 23 years of Java experience, author, speaker, and contractor.