Java Full-Stack Report January 2023
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: Scala beats Kotlin in job ads, Quarkus & Micronaut steady as #3 & #4 in job ads, Java InfoQ Trends Report 2022, Eclipse 2022-12, and one in five Java developers uses VS Code.
This report is different because it measures popularity by observing what all Java developers do: job ads from 59 countries, online training students, Stack Overflow questions, and Google searches. 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, 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 | Dec | Nov | Oct | Sep | Aug | Jul | Jun | May | Apr | Mar | Feb | Jan |
2021 | Dec | Nov |
Retro
My look back at last month: Calendar and job ad woes, I wrote another GraalVM InfoQ article, and I started a new Java contract.
Technology Index
IDEs
- Popularity trend: Eclipse is the most popular Java IDE and leads IntelliJ in job ads 2.5:1, though it has declined over many years in other categories. IntelliJ holds up well for a commercial product: It’s only slightly behind Eclipse in Google searches and slightly ahead in questions at Stack Overflow. 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. 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 probably wins in job ad mentions where Scala also leads Kotlin. But Kotlin leads Scala in all other categories. Groovy and Clojure have mostly declined for many years. Python and JavaScript beat Java everywhere, but the job ad mentions rankings are unknown.
- 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. After some turbulence, MySQL and MongoDB are back to their October 2021 values: MySQL leads Postgres 1.4:1, MongoDB has 70% of Postgres’ numbers. Postgres and MongoDB are nearly at peak values at Stack Overflow.
- 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. 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 by only 15% in job ad mentions but by 1.5-3.6 in the other categories. Vue has only 30% of Angular’s job ad mentions but about 40-60% in the other categories.
- 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 dropped from a 2.9:1 lead over Flutter to a 1.9:1 since last April. Among developers, Flutter leads React Native 2:1 and pulls away (except for Google searches, where both slightly lost in 2022). 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 start a new project and have used React for building web applications, then use React Native.
- If you start a new project and have .NET experience, then use .NET MAUI.
- If you start a new project and need to use a library that’s only available in Java, then use JavaFX.
- Otherwise, start with Flutter first and use React Native if that doesn’t work out for you.
Release Radar
Essential tool & technology releases: Last month, Git, Eclipse, NetBeans, VS Code, Quarkus, and Micronaut had major releases. Maven, IntelliJ, Spring Boot, Quarkus, Micronaut, and Helidon had minor releases.
New & Noteworthy
The most important Java news: Java InfoQ Trends Report 2022, GraalVM Java compilers join OpenJDK in 2023, and one in five Java developers uses Visual Studio Code.
Next Issue
The next issue will arrive on Wednesday, February 1, 2023.
Like this report? Then subscribe to my free newsletter to have the report in your inbox every first Wednesday of the month!