I recommend JVM languages, databases, back-end frameworks, and front-end frameworks. My recommendations are based on popularity, industry analysis, and my 22 years of Java experience. For popularity, I analyze job ads from 63 countries, online training students, Stack Overflow questions, and Google searches.
I collected the data for this index November 24-26, 2021.
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.
If you already use React, Angular, or Vue.js in your project, then keep using them. Otherwise, evaluate a migration. In many (most?) cases, such a migration doesn’t make business sense.
If you start a new project or do migrate, then start with React first, Angular otherwise, and finally Vue.js.
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 a migration. In many (most?) cases, such a migration doesn’t make business sense.
If you start a new project or do migrate and have used React before, then start with React Native first and use Flutter otherwise.
If you start a new project or do migrate and have not used React, then start with Flutter first and use React Native otherwise.