Author: Karsten Silz
Dec 7, 2022   |  updated Dec 7, 2022 6 min read

Permalink: https://betterprojectsfaster.com/guide/java-full-stack-report-2022-12/main/

Java Full-Stack Report December 2022


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

See Current Version


What’s This?

In my monthly “Java Full-Stack Report”, I recommend IDEs, build tools, JVM languages, databases, back-end frameworks, web frameworks, and mobile app frameworks. I also cover essential releases and news.


This month: Spring Boot 3 brings Java 17, Jakarta EE 9, and native Java with GraalVM, Spring Modulith structures Spring Boot 3 applications with modules & events, and a new UI in IntelliJ 2022.3.


This report is different because it measures popularity by observing what all Java developers do: job ads from 62 countries, online training students, Stack Overflow questions, and Google searches. My recommendations are based on that popularity, industry analysis, and my 23 years of Java experience.

Why popularity? Because picking a popular technology makes our developer life easier: easier to learn, easier to 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 report? Then subscribe to my free newsletter to have the report in your inbox every first Wednesday of the month!


Table Of Contents


Archive

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

Stand-Up

My look back at last month: I’ll talk again at the two largest Java conferences in Germany next year, and I published two news item and one interview at InfoQ.

Release Radar

Essential tool & technology releases: Last month, Gradle, IntelliJ, VS Code, Spring Boot, and Quarkus had major releases. Spring Boot, Quarkus, and Micronaut also had minor releases.

New & Noteworthy

The most important Java news: Spring Boot 3 brings Java 17, Jakarta EE 9, and native Java with GraalVM, Spring Modulith Structures Spring Boot 3 applications with modules and events, a new UI in IntelliJ 2022.3, and a garbage collection refresher.

Technology Index

IDEs

  • Popularity trend: Eclipse is the most popular Java IDE, though it has declined over many years. IntelliJ holds up well for a commercial product: Except for job ads, it’s neck-to-neck with Eclipse. NetBeans is the least popular IDE. VS Code isn’t a fully fledged Java IDE, but - apart from jobs - it’s 3-4 times as popular as Eclipse & IntelliJ.
  • 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

  • Popularity trend: Maven is 2.5 times as popular as Gradle, except for Stack Overflow, where Gradle is slightly ahead of Maven. Ant and sbt have declined for years.
  • 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

  • Popularity trend: Java is #1, Kotlin #2, and Scala #3. Java lost 20% of its job ad mentions over the last five months but still leads Scala and Kotlin and its non-JVM competitors like Python or JavaScript. Scala’s recent lead in job ad mentions over Kotlin shrinks, but Kotlin leads Scala in all other categories. Groovy and Clojure have mostly declined for many years.
  • On your current project, keep your existing language unless that language is absolutely, really not working out for you.
  • 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

  • Popularity trend: MySQL is #1, Postgres #2, and MongoDB is #3. MySQL and MongoDB surged over the last three months in job ad mentions, with MySQL leading Postgres now 2:1 and MongoDB reaching 70% of Postgres’ numbers.
  • 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

  • Popularity trend: Spring Boot dominates and still grows in all categories except for Google searches. Despite a long decline, Jakarta EE leads Quarkus in all categories but questions at Stack Overflow, where Quarkus just hit its all-time high. Quarkus is now #3 in job ad mentions, Micronaut is the new #4.
  • 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

  • Popularity trend: React is #1, Angular #2, and Vue #3. React leads Angular 1.4:1 in job ad mentions and pulls away from Angular in developer popularity. Vue holds steady in all categories at about half of Angular’s level but catches up in job ad mentions and (more slowly) in students at Udemy.
  • If you already use React, Angular, or Vue 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, then start with React first, Angular otherwise, and finally Vue.

Mobile App Frameworks

  • Popularity trend: React Native has 50% more apps on iOS but only leads Flutter in job ad mentions 1.5:1 after a steep decline in the last five months. Among developers, Flutter leads React Native 2:1 and pulls away (except for Google searches, where both slightly lost). Xamarin and JavaFX have generally declined for years.
  • 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 migration. In many (most?) cases, such a 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, January 3, 2023. It will have the Q1/2023 version of the Technology Index!


Like this report? Then subscribe to my free newsletter to have the report in your inbox every first Wednesday of the month!


comments powered by Disqus