Author: Karsten Silz
Jun 1, 2022   |  updated Jul 6, 2022 4 min read

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

Java Full-Stack Report June 2022: Technology Index


This is an old version! Click below for the current one.

See Current Version


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 May 24-26, 2022.

Archive

May 2022 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

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

Databases

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

Back-End Frameworks

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

comments powered by Disqus