How to Build Java Applications Today #67

TL;DR

README

Stand-Up

Release Radar

New & Noteworthy

Technology Index

Why Popularity — and How?

IDEs

  • Popularity trend: Eclipse is the most popular Java IDE, though it has declined over many years. IntelliJ holds up well for a commercial product: Except for job ads, it’s neck-to-neck with Eclipse. NetBeans has slipped into irrelevancy. VS Code isn’t a fully fledged Java IDE, but — apart from jobs — it’s 3–4 times as popular as Eclipse & IntelliJ.
  • If you don’t want to spend money, then use Eclipse.
  • If you may spend money, evaluate IntelliJ.
  • Evaluate VS Code for non-Java work, like web development (I use it for all my websites).
  • If you’re using NetBeans, move off of it — everybody else has (this is only a slight exaggeration).

Build Tools

  • Popularity trend: Maven is 2.5–3.5 times as popular as Gradle, except for Stack Overflow, where both are neck-to-neck. Ant and sbt have both declined for years.
  • If you use Scala, then use sbt.
  • Otherwise, if you absolutely cannot stand XML files and/or need to customize your build heavily, then use Gradle.
  • Otherwise, use Maven.

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 surpassed Kotlin in job ad mentions.
  • 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 (it’s neck-to-neck in Google searches and questions at Stack Overflow). All databases lost to Postgres in job ad mentions last month.
  • 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 and still grows in most categories. Despite a long decline, Jakarta EE leads Quarkus in all categories but questions at Stack Overflow, where Quarkus hits its all-time high. Quarkus also placed number three in job ad mentions after DropWizard’s collapse.
  • 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.

Web Frameworks

  • 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 migrate, then start with React first, Angular otherwise, and finally Vue.

Mobile App Frameworks

  • 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 migrate and have used React before, then start with React Native first and use Flutter otherwise.
  • If you start a new project or migrate and have not used React, then begin with Flutter first and use React Native otherwise.

Next Issue: Wednesday, October 5, 2022

About

--

--

Karsten Silz is a full-stack web & mobile developer with 23 years of Java experience, author, speaker, and contractor.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Karsten Silz

Karsten Silz is a full-stack web & mobile developer with 23 years of Java experience, author, speaker, and contractor.