Java Full-Stack Report April 2022: Technology Index
What’s This?
I recommend JVM languages, databases, back-end frameworks, and front-end frameworks. My recommendations are based on popularity, industry analysis, and my 23 years of Java experience. I measure popularity among employers through job ads from 62 countries. For developer popularity, I use online training students, Stack Overflow questions, and Google searches.
I collected the data for this index from March 24-26, 2022.
Archive
March 2022 | February 2022 | January 2022 | December 2021 | November 2021 |
Table Of Contents
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 Trends
- JVM Languages: Java is #1, Kotlin #2, and Scala #3. Kotlin lost 17% of its job ad mentions in March. So Java pulls away again, despite shedding 4% on its own. And Scala lost 9% but still gained slightly on Kotlin.
- Databases: MySQL is #1 and Postgres #2, beating MongoDB in three out of four categories. But Postgres lost 12% of its job mentions in March. That’s why MySQL pulled away again while MongoDB caught up to 60%.
- Back-End Frameworks: Spring Boot remains the framework to beat. Jakarta EE leads Quarkus in three of four categories. But Jakarta EE lost 13% of its job mentions in March and DropWizard 30%. That made Quarkus #3 in jobs for the first time.
- Front-End Frameworks: Web: React is #1, Angular #2, and Vue #3. Both React and Angular lost 9% of their job mentions in March. That’s why Angular’s lead over Angular didn’t increase this month, but Vue now has 51% of Angular mentions.
- Front-End Frameworks: Mobile: Flutter lost 11% of its job ad mentions in March. So React Native pulled away again and beat Flutter two-to-one. Xamarin and JavaFX caught up a bit to Flutter mentions. But among developers, Flutter leads in all categories and is pulling away from React Native.
Recommendations
JVM Languages
- 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
- 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
- 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.
Front-End Frameworks: Web
- 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.
Front-End Frameworks: Mobile
- 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.