Java Full-Stack Report July 2022: Technology Index Q3/2022
See Current Version
I recommend IDEs, build tools, JVM languages, databases, back-end frameworks, web frameworks, and mobile app frameworks. This report is different because it measures popularity by observing all Java developers: 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.
Popularity trends in job ad mentions: Scala surpassed Kotlin. All databases lost to Postgres last month. Quarkus is number three after DropWizard’s collapse. And everybody lost to the mobile app framework Flutter.
This is the Q3/2002 edition. I collected the data for it from June 23-29, 2022.
Table Of Contents
- What’s This?
- Why Popularity - and How?
- Build Tools
- JVM Languages
- Back-End Frameworks
- Web Frameworks
- Mobile App Frameworks
Why Popularity - and How?
Picking a popular technology makes our developer life easier: Easier to learn, easier to build, debug & deploy, easier to hire, and easier to convince teammates & bosses. Now popularity can make a difference in two situations: When multiple technologies score the same, we could go for the most popular one. And when a technology is very unpopular, we may not use it.
I measure popularity among employers and developers as the trend between competing technologies. I count mentions in job ads at Indeed for employer popularity. For developer popularity, I use Google searches, Udemy course buyers, and Stack Overflow questions.
- Popularity trend: Eclipse is the most popular Java IDE, though it has declined for many years. IntelliJ holds up well for a commercial product: Except for job ads, it’s neck-to-neck with Eclipse. NetBeans has slipped into irrelevancy. 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, move off of it - everybody else has (this is only a slight exaggeration).
- Popularity trend: Maven is 2.5-3.5 times as popular as Gradle, except for Stack Overflow, where both are neck-to-neck. Ant and sbt have both declined for years.
- If you use Scala, then use sbt.
- Otherwise, if you absolutely cannot stand XML files and/or need to heavily customize your build, then use Gradle.
- Otherwise, use Maven.
- Popularity trend: Java is #1, Kotlin #2, and Scala #3. Java leads Kotlin by an order of magnitude in job ad mentions, Udemy students, and Google searches. In questions at Stack Overflow, Java leads 5:1. Scala surpassed Kotlin in job ad mentions.
- 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.
- Popularity trend: MySQL is #1 and Postgres #2, beating MongoDB in three out of four categories (it’s neck-to-neck in Google searches and questions at Stack Overflow). All databases lost to Postgres in job ad mentions last month.
- 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.
- Popularity trend: Spring Boot remains the framework to beat and still grows in most categories. Despite a long decline, Jakarta EE leads Quarkus in all categories but questions at Stack Overflow, where Quarkus hits its all-time high. Quarkus also placed number three in job ad mentions after DropWizard’s collapse.
- 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.
- 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.
- 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 do migrate, then start with React first, Angular otherwise, and finally Vue.
Mobile App Frameworks
- Popularity trend: React Native and Flutter are back to their March levels of job ad mentions, so React Native leads Flutter 2:1 again. But among developers, Flutter leads in all categories and is pulling away from React Native.
- 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 do migrate and have used React before, then start with React Native first and use Flutter otherwise.
- If you start a new project or do migrate and have not used React, then begin with Flutter first and use React Native otherwise.