Java Full-Stack Index: Popularity
- 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, 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.
Table Of Contents
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 57,000 mentions for Spring Boot. How would we convince our skeptical teammates and boss to use Helidon?
How To Measure Popularity?
So popularity helps pick technologies. How do we measure popularity, though?
For popularity among us developers, I use three sources:
- First, developers are interested in a technology. Google search trends tell us how often people search for a technology - and how this interest developed over time.
- Then developers learn it. 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!
- Next, developers apply it in one or more projects. Developers ask questions at Stack Overflow. And Stack Overflow Trends tells us how many.
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 questions Spring Boot has on Stack Overflow today. We do care about the ratio between competing technologies: How many learn Kotlin vs. how many learn Scala? How many employers search for MySQL vs. how many look for MongoDB?
- And we don’t care about the ratio between competing technologies right now, but about its trend: It takes years to master a technology or many months to put a project into production. So we want to pick something that’s needed in the future.
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 Scala developers don’t prefer to learn from books (they’d be underrepresented on Udemy)? Or that Kotlin developers don’t like 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!
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.
- Technologies are often misspelled in job ads. So I search for “Spring Boot” and “SpringBoot”, and for “MySQL and “My SQL”.
- 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. I manually adjusted the number of jobs found down in countries where I didn’t have the translations for the various forms of “developer” (such as China or Russia).
- 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.
Like Google’s cross-platform UI toolkit Flutter, new technologies 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.