Author: Karsten Silz
May 4, 2022 4 min read

Permalink: https://betterprojectsfaster.com/guide/java-full-stack-report-2022-05/the-index/

Java Full-Stack Report May 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 April 24-26, 2022.

Archive

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

  • JVM Languages: Java is #1, Kotlin #2, and Scala #3. Kotlin lost 22% of its job ad mentions in the last two months. 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 10% of its job mentions over the last two months. That’s why MySQL pulled away again while MongoDB as the #3 came closer.
  • Back-End Frameworks: Spring Boot remains the framework to beat. Jakarta EE leads Quarkus in three of four categories. Quarkus solidifies its #3 place in jobs.
  • Front-End Frameworks: Web: React is #1, Angular #2, and Vue #3. React now leads Angular 1.5:1 in job ad mentions while Vue holds steady at half of Angular mentions. React pulls away from Angular in the developer popularity while Vue holds steady again.
  • Front-End Frameworks: Mobile: Flutter lost 15% of its job ad mentions over the last two months while React Native was on a surge. So React Native now leads Flutter 2.5:1, and Xamarin is up to 56% of Flutter’s 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.

comments powered by Disqus