Java Full-Stack Index: Popularity
Summary
- Picking a popular technology makes our developer life easier: Easier to learn, easier to build, debug & deploy, easier to hire, and easier to convince teammates & bosses.
- Popularity can make a difference in two situations: When multiple technologies score the same, you could go for the most popular one. And when a technology is very unpopular, we may not use it.
- I look at technology popularity as a funnel from interest to learning, application, and finally to skill.
- Quantity decreases in the funnel - we’re interested in many technologies, but few end up on our resumes.
- Time increases in the funnel - it takes many months, often years, for technology to move from “interest” to “skill”.
- We’re interested in the trend of the ratio between competing technologies.
- We use Google searches to measure interest, Udemy course buyers to measure learning, Stack Overflow questions to measure learning & application, and mentions in Indeed job ads to measure skills.
Table Of Contents
Why Popularity?
As Java developers, our goal is to build enterprise applications on PCs and mobile devices - forms, data grids, reports. Many technologies can help us there. So how do we pick technologies?
Picking a popular technology makes our developer life easier in four ways:
- It’s easier to learn because more courses, articles, books, and videos are available.
- It makes it easier to build, deploy and debug because we have more tools with better support.
- It makes it easier to hire developers because more of them know the technology.
- It’s easier to convince your teammates and boss to go for technology X when everybody says “X is winning”.
Now popularity is just one criterion when picking technologies. But it can make a difference in two situations:
- When multiple technologies score the same, you could go for the most popular one. For instance, MySQL and Postgres both can power our Java applications. But MySQL is still more popular, so we can pick MySQL because of that.
- When a technology is very unpopular, we may not use it. For instance, the back-end framework Helidon is very unpopular, has no tag at Stack Overflow, and is mentioned in about 100 job ads worldwide - vs. nearly 52,000 mentions for Spring Boot. How would we convince our teammates and boss to use Helidon?!
How To Measure Popularity?
Technology Adoption Funnel
So popularity helps pick technologies. How do we measure popularity, though?
I propose to look at technology popularity as a funnel:
We move through this funnel from top to bottom:
- 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.
Now there’s a reason why I showed this as a funnel: The quantity decreases from top to bottom. We are interested in many technologies, but only a few end up on our resume. Something also increases from top to bottom: time. Many months or even years have passed, from when we first look at a technology to when we put it in our resume.
To sum up:
- We look at technology adoption as a funnel from interest to learning, application, and finally to skill.
- Quantity decreases in the funnel - we’re interested in many technologies at the top of the funnel, but few end up on our resumes at the bottom of the funnel.
- Time increases in the funnel - it takes many months, often years, for technology to pass from the top of the funnel to the bottom of it.
Now you may say: “Wait a minute! Funnel, top to bottom, quantity, time - haven’t I heard that before?!”
Yes, you have! It’s called a purchase funnel (or sales or marketing funnel). Here’s one that follows the so-called AIDA model:
Technology Adoption Funnel Data Sources
So we’ve got a technology adoption funnel with four stages. Great! So how do we know how many developers are in each stage? I propose to use four different, freely available, global data sources to measure that:
- Interest: Google search trends tell us how often people search for a technology - and how this interest developed over time.
- Learn: With 44 million students and more than 183,000 courses (as of June 2021), Udemy is one of the biggest online training suppliers. And they say how many people bought courses for a particular technology!
- Learn & apply: Developers ask questions at Stack Overflow. And Stack Overflow Trends tells us how many.
- Skill: We don’t look at resumes, but at who that resume is for: Organizations hiring developers. We query the self-proclaimed #1 job site in the world - Indeed. They are active in 63 countries representing 92% of the worldwide GDP.
Now you may say: “There are more ways to learn than just Udemy courses. A lot of people learn on YouTube. Some may even read books! And there’s also more job sites than Indeed!”
That is correct - but those numbers don’t matter to us.
- We’re not interested in capturing the exact number of how many developers learn Kotlin right now or how many have Spring Boot in their resumes. We do care about the ratio between competing technologies - how many learn Kotlin vs. how many learn Scala, or how many have MySQL in their resume vs. how many have MongoDB there.
- And we don’t care about the ratio between competing technologies right now, but about its trend: It takes years to master a technology, so we want to pick something that’s needed in the future. Extrapolating existing trends a year or two into the future helps us bet on a winning horse.
That’s why the 44 million students at Udemy are a representative sample size for how many developers learn a technology. But how do I know that, say, Scala developers don’t prefer to learn from books (they’d be underrepresented on Udemy)? Or that Kotlin developers don’t prefer to learn visually (they’d be overrepresented on Udemy)?
I don’t, really. But then nobody does. So I think from all the bad options of measuring popularity out there, the ones I picked are among the least bad. And I’m happy to replace them if you’ve got better options!
To sum up:
- We’re interested in the trend of the ratio between competing technologies.
- We use Google searches to measure interest, Udemy course buyers to measure learning, Stack Overflow questions to measure learning & application, and mentions in Indeed job ads to measure skills.
Indeed Job Ad Caveats
The “mentions in Indeed job ads” require its own section. So here we go:
- The Indeed search is a full-text search in both the header and the body for the technology name, such as “Kotlin”. The result must also include at least one of multiple ways to say “developer” in most countries. The links are in the Excel file for the respective month.
- A job with the title Java Developer could still have Kotlin in the body. Such a job advertisement is counted both as a result for Java and Kotlin.
- Searching for React also shows results for React Native. I subtracted half of the numbers of React Native from the React results. Why half? Because I looked at the job ads, and about half of the ones that mentioned React Native also mentioned React.
- The word “react” often appears in job advertisements. In countries where I didn’t have the translations for the various forms of “developer” (such as China or Russia), I manually adjusted the number of jobs found down.
- Flutter Entertainment is the world’s largest online betting company. Although I’m looking for developer positions, this may inflate the number of jobs found for Flutter a bit.
- Vue has multiple meanings in French and Spanish. So in French-speaking countries, like France, Canada, Spain, Luxembourg, and Switzerland, I searched for Vue.js instead. This may deflate the number of jobs found for Vue a bit.
- Sometimes technologies are misspelled. For instance, “Spring Boot” is written in one word. That’s why I search for both variants.
New technologies, like Google’s cross-platform UI toolkit Flutter, are at a particular disadvantage on Indeed. Often, you find the following in job ads there: “Experience with a cross-platform framework like Xamarin or React Native required”. Now Flutter is a cross-platform framework. But if you just have “Flutter” in your resume, you still may not get the job:
- First of all, most big companies today use Applicant Tracking Systems (ATS). These systems scan your resume automatically for keywords. So if “Flutter” isn’t an approved keyword, you’re out.
- The next stage is the agency or HR department. They typically have no clue about programming. And how could they? They hire people in all sorts of professions. So if they don’t know about “Flutter”, you’re out again. It’s not all sunshine and roses, you know!
- Hopefully, the developers at the end of the process do know Flutter.