Java Full-Stack Report June 2022: Technology Index
See Current Version
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 May 24-26, 2022.
|May 2022||April 2022||March 2022||February 2022||January 2022||December 2021||November 2021|
Table Of Contents
- What’s This?
- Why Popularity - and How?
- JVM Languages
- Back-End Frameworks
- Front-End Frameworks: Web
- Front-End Frameworks: Mobile
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: 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 is #2 in job ad mentions if explosive numbers from Japan are used and #3 if not.
- 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. Postgres job ad mentions are still 5% down since March, while MySQL and MongoDB are back up to their March levels.
- 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. Jakarta EE leads Quarkus in three of four categories. Quarkus just lost to Dropwizard in jobs again.
- 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
- 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.
Front-End Frameworks: Mobile
- 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.