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.
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.
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.
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.
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.