How to Build Java Applications Today #66
Tags: java, bpf
Published: 2022-08-03 11:02:20

## TL;DR

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.

***

## 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
Technology Index on the front page, less work for me, and my second marathon.

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

***

## Release Radar

Java had Critical Patch Updates (CPU) in July. While Gradle, Quarkus, IntelliJ, and VS Code had major releases, Git, Spring Boot, Quarkus, and Micronaut had minor ones.

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

***

## New & Noteworthy

Microsoft joins Jakarta EE and MicroProfile Working Groups, and maybe give up GitHub.

**[Read New & Noteworthy](https://betterprojectsfaster.com/guide/java-full-stack-report-2022-08/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-08/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-08/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-08/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-08/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-08/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-08/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-08/fe-mobile)**

***

## Next Issue: Wednesday, September 7, 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).