How to Build Java Applications Today #67
Tags: java
Published: 2022-09-07 11:19:06

## TL;DR

See me talk at JAX London, I interviewed James Ward for InfoQ, Java patch updates, major releases for Quarkus, Micronaut, NetBeans, and VS Code, and developers decide the software architecture with the "Advice Process".

***

## README

Welcome to my newsletter “How To Build Java Applications Today”! If you like it, then [subscribe to it for free on Substack](https://bpfnl.substack.com)! Or read it on [dev.to](https://dev.to/ksilz/series/11995) or [Medium](https://ksilz.medium.com). Even better: Share it with people who are interested!

***

## Stand-Up
See me at JAX London next month, I interviewed James Ward for InfoQ, Release Radar improved, and I ran a slow marathon.

**[Read Stand-Up](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/stand-up)**

***

## Release Radar

Java 11, 17, and 18 had patches in August. While Quarkus, Micronaut, NetBeans, and VS Code had major releases, Gradle, Git, Spring Boot, Helidon, and IntelliJ had minor ones.

**[Read the Release Radar](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/release-radar)**

***

## New & Noteworthy

Java Champion James Ward on the state of Java and JVM Languages, IEEE’s annual top programming languages 2022, and developers decide the software architecture with the “Advice Process”.

**[Read New & Noteworthy](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/new-noteworthy)**

***

## Technology Index
### Why Popularity - and How?

Picking a **popular technology** makes our developer life easier: easier to learn, easier to build, debug & deploy, easier to find jobs/hire, and easier to convince teammates & bosses. Now popularity can make a difference in two situations: When multiple technologies score similarly, 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.

**[Explain Popularity](https://betterprojectsfaster.com/guide/java-full-stack-index-popularity )**

***

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

**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/ide)**

***

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

**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/build)**

***

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

**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/lang)**

***

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

**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/db)**

***

### 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**.
  
**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/be)**

***

### 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**.
 
**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/fe-web)**  

***

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

**[Show Popularity & Details](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-09/fe-mobile)**

***

## Next Issue: Wednesday, October 5, 2022

Thanks for reading this issue of “How to Build Java Applications Today“! [Subscribe to it on Substack for free](https://bpfnl.substack.com) to receive the next issue automatically! My newsletter is published on the first Wednesday of every month. 

***

## About

Karsten Silz is the author of this newsletter. He is a full-stack web & mobile developer (Spring Boot, Angular, Flutter) with 23 years of Java experience, author, speaker, and marathon runner. Karsten got a Master's degree in Computer Science at the Dresden University of Technology (Germany) in 1996.

Karsten has worked in Europe and the US. He co-founded a software start-up in the US in 2004. Karsten led product development for 13 years and left after the company was sold successfully. He co-founded the UK SaaS start-up "[Your Home in Good Hands](https://yourhomeingoodhands.co.uk/)" as CTO in 2020. Since 2019, Karsten also works as a contractor in the UK.

Karsten has [this newsletter](https://bpfnl.substack.com/), a [developer website](https://betterprojectsfaster.com/), and a [contractor site](https://ksilz.com/). He's on [LinkedIn](https://www.linkedin.com/in/ksilz/), [Twitter](https://twitter.com/karsilz), [Xing](https://www.xing.com/profile/Karsten_Silz/), and [GitHub](https://github.com/ksilz). Karsten is also a [Java editor at InfoQ](https://www.infoq.com/profile/Karsten-Silz).


***

This month in "How to Build Java Applications Today": Technology Index on the front page, Java patch updates, major releases for Gradle and IntelliJ, Microsoft joins Jakarta EE and MicroProfile Working Groups, and maybe give up GitHub.