DEV Community

Karsten Silz
Karsten Silz

Posted on • Originally published at bpfnl.substack.com

How to Build Java Applications Today: #57

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! Or read it on dev.to or Medium. 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


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


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


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" 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 LinkedInTwitter, and GitHub. Karsten is also an author at InfoQ.

Top comments (0)