Insights On Web Frameworks From 3Y Stack overflow Surveys
Tags: javascript, node, react, angular
Published: 2021-08-10 10:41:59

Stackoverflow surveys play a big role to understand trends and also impact the decision making for new projects. So I though of analyzing and finding small insights, specifically on frontend and backend web frameworks from the survey results since **2019 to 2021**. I kept developers and freshers in mind and have added few points that could help in understanding the trends and opportunities.

All the figures displayed below are in %.

## Frontend
### Popularity
Popularity tells us the number of available projects and developers. Hence, the higher %, the easy it is to find a job/developer.

| Framework     | 2019 | 2020 | 2021 |
| ------------- | ---- | ---- | ---- |
| React         | 32.3 | 36.8 | 41.4 |
| Angular       | 32.4 | 26.5 | 26.2 |
| Vue           | 15.5 | 17.8 | 20.1 |
| Svelte        |      |      | 02.6 |

### Loved
This tells us the satisfaction level of developers, and if they would like to continue using it. Hence, the higher %, the happy the developers are.

| Framework     | 2019 | 2020 | 2021 |
| ------------- | ---- | ---- | ---- |
| React         | 74.5 | 68.9 | 69.3 |
| Angular       | 57.6 | 54.0 | 55.8 |
| Vue           | 73.6 | 66.0 | 64.4 |
| Svelte        |      |      | 71.4 |

### Conclusion
- If you are **fresher**, consider starting with React as it has lot of opportunities and also you will be enjoying working with it. There are few caveats though:
  - Few project have implemented typescript, while others are in vanilla JavaScript
  - Few projects might use React, while others Preact while some others use Next.js
  - Components could be created using class approach, or functional approach, and for state management one could use context, or mobX or just the cool new hooks.
  - Your project might be using `className` while others might use styled components
  - **So there is new learning curve aligned with each new project you would be working with**. With experience you will get better hang of it.

- If you are **already working in React**, that's awesome, keep exploring and mentoring others. Get hands on experience on some backend framework. Nearly 70% devs enjoy working with it.

- If you are **already working with Angular**, the satisfaction %, although lower than most, is still consistent since 3years, around 55-ish.
  - There is still a lot of projects on Angular, and it is recommended framework for many enterprises, because it follows the standard OOPS approach.
  - Being a framework, you will find almost every package in Angular itself with enterprise grade security, to handle the core functionality of your app. So whatever you learn once, most of it will carry forward to all other projects. Onboarding new developers might be comparatively easy because the implementation is pretty consistent.
  - There is one big caveat in angular as well, that is Angular apps are comparatively slower, due to heavy build size. However this can be easily improved by 3X using lazy loading, appShell, service worker and SSR. *(will cover this in detail in upcoming articles)*
  - Consider [Nestjs](https://nestjs.com/) for backend with [fastify adapter](https://docs.nestjs.com/techniques/performance), which is very fast, easily scalable, gaining huge popularity and easy to learn for Angular devs. Also consider exploring React if interested.

- If you are **already working in Vue**, it has less job opportunities comparatively but experiencing a rapid growth of 2% each year. So you might consider polishing your skills or exploring React parallelly. 
  - However, the % of developers loving this is also on a constant decline, which is pretty weird, because I heard it is one of the most simple yet effective framework to challenge React.

---
## Backend
### Popularity
Popularity tells us the number of available projects and developers. Hence, the higher %, the easy it is to find a job/developer.

| Framework   | 2019 | 2020 | 2021 |
| ----------- | ---- | ---- | ---- |
| Express     | 19.5 | 20.9 | 23.6 |
| .Net Core   |      | 20.3 | 20.3 |
| Spring      | 17.2 | 17.4 | 16.5 |
| Django      | 12.3 | 13.2 | 13.0 |
| RubyOnRails | 08.4 | 07.2 | 07.9 |
| Laravel     | 10.4 | 11.1 | 10.9 |
| Flask       | 11.7 | 13.6 | 13.8 |

### Loved
This tells us the satisfaction level of developers, and if they would like to continue using it. Hence, the higher %, the happy your developers are.

| Framework   | 2019 | 2020 | 2021 |
| ----------- | ---- | ---- | ---- |
| Express     | 68.3 | 61.9 | 62.0 |
| .Net Core   |      | 70.7 | 71.5 |
| Spring      | 65.6 | 57.7 | 59.8 |
| Django      | 62.1 | 55.3 | 55.3 |
| RubyOnRails | 57.1 | 49.3 | 57.5 |
| Laravel     | 60.1 | 51.4 | 53.8 |
| Flask       | 61.1 | 54.4 | 51.0 |

### Conclusion
- `Express, .Net Core, Spring and Django` backend frameworks have lot of bright opportunities.
- If you are fresher, consider express as your starting point for getting into full stack role as there are lot of new opportunities and tutorials available to get started. It enjoy nearly 60% satisfaction level like java framework spring.
- `.Net core` is undergoing massive transformation and it is now also cross platform and maximum developers are happy working with it.

Hope it helps to analyze the trend and available opportunities in Web Development. Share any feedback or other insights you have got. Adios.

---
> *The points expressed are purely based on data points from survey results and my personal understanding and in no-way a negative criticism to any technology or developer community.*
*Resources: [stackoverflow](https://insights.stackoverflow.com/survey/2021)*

###### PS: I am looking for new opportunities in Angular. If you have any openings, I am just a message away. (krj2033@gmail.com) ([linkedin](https://www.linkedin.com/in/raj-sekhar-3b437782))