DEV Community

Karsten Silz
Karsten Silz

Posted on • Originally published at bpfnl.substack.com

How to Build Java Applications Today #74 (Java Tech Popularity Index Q2/2023)

TL;DR

All back-end frameworks lost job ad share to Jakarta EE. VS Code was #2 in IDE job ads. React still only had a slim job ads lead over Angular. Python beat Java by 3x for Udemy course buyers.


README

Welcome to the Q2/2023 issue of my newsletter “How To Build Java Applications Today”! 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?

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.

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 what's new & noteworthy in 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)

VS Code pulls away from IntelliJ in all categories but 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.

READ IDE DETAILS

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)

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.

READ BUILD TOOL DETAILS

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)

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)

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.

READ JVM LANGUAGE DETAILS

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)

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.

READ DATABASE DETAILS

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)

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.

READ BACK-END FRAMEWORK DETAILS

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)

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.

READ WEB FRAMEWORK DETAILS

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)

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.

READ MOBILE APP FRAMEWORK DETAILS

Next Issue

The next issue will arrive on Wednesday, July 26, 2023. That's the plan, at least. 😁

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


About

Karsten Silz is the author of this newsletter. 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.

Karsten has this newsletter, a developer website, and a contractor site. He's on LinkedInTwitter, Xing, and GitHub. Karsten is also a Java editor at InfoQ.

Top comments (0)