How to Build Java Applications Today: #57
Tags: java, bpf
Published: 2021-11-01 18:38:55

---
canonical_url: https://bpfnl.substack.com/p/how-to-build-java-applications-today-cff

---

## TL;DR
Back to the Roots, Java Full-Stack Index November 2021, and Getting Started Guides.

***

## README
Welcome to my newsletter “How To Build Java Applications Today”! If you like it, then [subscribe to it 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 may be interested.

***

## Next Issue: Wed, Dec 8, 2021
I plan to publish my newsletter on the first Wednesday every month (a change from the first Monday I’ve done so far). Because of vacation, the next issue will be out a week later, on **Wednesday, December 8, 2021**.

***

## Stand-Up
So here’s the first issue on a monthly cadence. If I thought it was less work than four weekly issues - at least this month I was wrong! I spent a lot of time on the “Java Full-Stack Index” (see below), measuring the popularity of technologies in five areas with four data points. I also extracted pieces from existing talk pages into five “Getting Started Guides” (also see below). 

And all of that happened while I was preparing to physically attend three conferences for eight days in three weeks and give four talks there! I’m writing this on the first day of Devoxx UK 2021, where I gave a 15-minute talk on how Java developers should build front-ends today. But hey - **physical** conferences again! Yay!

***

## ADVERTISEMENT
### 22 YEARS OF FULL-STACK JAVA FOR HIRE NEXT MAY
I’m a full-stack Java developer with 22 years of experience: Spring Boot, Angular, Flutter. I'm looking for a project in May 2022, in Milton Keynes, London, or remote. I’ll work as a contractor or fixed-term employee but don’t take permanent positions. 

Interested? Then check out my resume & work samples!

[Check out my resume & work samples ](https://ksilz.com/)

***

## Back to the Roots

I overhauled my newsletter, as promised last month. I want this monthly newsletter to be **really useful** to my readers. So what did I change to be useful?
 
I went back to the roots. This newsletter is called "How to build Java applications today". So **what** do we need when we build a Java application today? We need languages, tools, and frameworks. But which ones? We have so many choices!

That's where the "Java Full-Stack Index 2021" comes into play. I recommend technologies for five crucial areas of Java applications. My recommendations are based on popularity, industry analysis, and my 22 years of Java experience. And I’ll update the index monthly. How's that different from everything else you find out there? Find out below in the following article.

Now once we picked a technology, we need to learn it. That's where my "Getting Started Guides" can be helpful. For two technologies, I will tell you what I found useful in learning. For three, I provide the knowledge myself. Read more below.
 
There's a third service that I wanted to introduce but couldn't. Hopefully, it'll be ready next month!
 
***

## Java Full-Stack Index November 2021

What do we need to build a Java application today? A JVM language, a database, a back-end framework, a web framework, and - if we want to get fancy - a mobile app framework. So my new index recommends technologies in these five areas, based on popularity, industry analysis, and my 22 years of Java experience.

I’m not the only one making these kinds of recommendations. Now, where I think I **am** different is in my take on popularity:

- Picking a popular technology makes it easier to learn, code, and roll out that technology. 
- That's why I add popularity as a crucial criterion for picking Java application technologies.
- I measure popularity by systematically observing what **millions** of developers do.
- By monitoring not one but four popularity data points across the entire technology adoption journey, I can **forecast the popularity of technologies in the near future**.

So what are those "four popularity data points"? And what the heck is the “technology adoption journey”?

“Technology adoption journey” describes how we learn technologies:

- First, we are **interested** in a technology.
- Then we **learn** it.
- Next, we **apply** it in one or more projects.
- Finally, we claim it as a **skill** and put it on our resume.

Think of this as a **funnel**, with the wide top being interested in technology and the narrow bottom the skill on our resume. We don’t always make it through to the bottom of the funnel. In fact, most times, we don’t: We stop pursuing a technology after investigating it a bit. Or we abandon it after starting to learn it. Or we never get a chance to apply it meaningfully. Or we do master it, but don’t put it on our resume.

In this funnel, the **quantity decreases** from top to bottom: We are interested in many technologies, but only a few end up on our resume. Now **time** increases from top to bottom: Many months or even years have passed from when we first look at a technology to when we put it in our resume.

And as it so happens, the four popularity data points I observe map to the funnel stages.

- Interest: The number of Google searches for a technology
- Learn: The number of students online training company Udemy and the number of questions at Stack Overflow
- Apply: The number of questions at Stack Overflow
- Skill: The number of how often a technology is mentioned in job ads from 63 countries at the job portal Indeed

Now you may say: “Wait a minute! A technology mentioned in a job ad is **not** a skill listed on a resume!” And you’re right. But how would I scan millions of resumes for skills? And I think a technology mentioned in a job ad is even **better**: It shows **demand for skills**. This is what we developers want to know anyways: Can we find a job with technology X? And our bosses want to know: Can we hire developers for technology X?

That’s why I assume that we developers act at least partially rational in learning skills for which there is or will be a demand. So eventually, many people learning a technology will “magically” increase how often that technology is mentioned in job ads.

You may also say: “Isn’t searching in job ads prone to errors?” Yes, it is. But it matters less than you think: I don’t care about finding the **exact** number of ads that mention a technology. I care about the **ratio of mentions between competing technologies**. So assuming that these errors impact all technologies the same way, relatively speaking, the ratio is still correct then.

Monitoring four data points through the technology adoption funnel gives us better insights. Case in point: Google’s cross-platform UI toolkit Flutter is very popular today and leads its arch-rival React Native from Facebook in the top three funnel stages. But React Native’s headstart shows in job ads: Globally, twice as many ads mention it than Flutter. Because there are more Flutter developers in the funnel than React Native ones, I predict that Flutter will close some of the gap with React Native over the next year.

Another example: Facebook’s web framework React “has won” over its arch-rival Angular from Google. And the first three funnel stages show it. But in job ads, Angular still has 86% of React’s mentions. But because React is pulling away at the top of the funnel, I predict it’ll pull away in job ad mentions as well.

So if I got you interested in my recommendations and the popularity measurements, then head over to my new shiny new Java Full-Stack Index! And remember: An updated version will drop on Wednesday, December 8!

[Java Full-Stack Index November 2021](https://betterprojectsfaster.com/guide/java-full-stack-index-2021-11)

***

### Getting Started Guides
 
Once we picked a technology, we need to learn it. That's where my "Getting Started Guides" can be helpful. For these technologies, I wrote the guides myself:

- **Declarative UIs** are state-of-the-art in building user interfaces.
- **JHipster** is an open-source Java code generator. It produces Java applications with production-level code quality without proprietary layers. Use it to build production applications or learn about technologies.
- **JaVers** is an open-source Java framework for version histories of your domain objects.

And for these technologies, I collected links & training:

- Facebook’s **React** is the most popular framework for building web applications.
- Google’s **Flutter** is the most popular cross-platform UI toolkit for building native mobile & desktop applications and web applications. I’ve used it in production, so I included a collection of useful libraries.

If any of this is helpful to you, then head over to my new “Getting Started” guides!

[Getting Started guides](https://betterprojectsfaster.com/guide/getting-started)

***

## About
Karsten Silz is the author of this newsletter. He is a full-stack web & mobile developer with 22 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), and [GitHub](https://github.com/ksilz). Karsten is also an [author at InfoQ](https://www.infoq.com/profile/Karsten-Silz).