How to Build Java Applications Today #67
See me talk at JAX London, I interviewed James Ward for InfoQ, Java patch updates, and developers decide the software architecture with with the "Advice Process".
README
Welcome to my newsletter “How To Build Java Applications Today”! If you like it, then subscribe below for free. Or read it on dev.to or Medium. 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.
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.
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”.
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.
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
Thanks for reading this issue of “How to Build Java Applications Today“! 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” as CTO in 2020. Since 2019, Karsten also works as a contractor in the UK.
Karsten has this newsletter, a developer website, and a contractor site. He’s on LinkedIn, Twitter, Xing, and GitHub. Karsten is also a Java editor at InfoQ.