When I talk to CTOs, I often recommend React.js, which might come across as biased since I work for a company that uses it on a daily basis. However, I made a conscious decision to work in an environment that emphasizes React.js and have been actively encouraging its further adoption within the company. I firmly believe in technology and wouldn't work in an environment that doesn't align with my beliefs, which are outlined below. React.js is undoubtedly the most widespread, popular, and sought-after frontend technology within the software development community. This alone should be reason enough to make it your go-to framework for frontend development. However, let's delve deeper and explore other reasons supporting this assertion.
When embarking on a new project or updating an existing application, one of the most crucial decisions to make is the choice of frontend technology. This decision is critical because it has long-term implications for your product and work. In my experience, I have seen several products struggle because of poor past technology choices. Selecting the appropriate frontend technology is a daunting task since it affects not only what the technology does and how it functions but also who can operate with it and what other tools can enhance and augment it.
The React.js community is massive and its popularity is evident from various statistics. For instance, a search on LinkedIn reveals that over one million people worldwide have mentioned React.js in their profile, indicating some level of experience or interest in the technology. This is significantly more than any other frontend framework.
The widespread popularity of React.js has two important implications. Firstly, it is relatively easier to find developers with React.js experience than with expertise in any other framework. Secondly, due to the high demand for React.js talent, there is significant competition among employers to hire them.
At first glance, it may seem like these two facts offset each other when it comes to hiring. Although there are more candidates, there are also more job openings, which should balance the job market. However, the concept of liquidity comes into play, much like in the stock market or altcoin market. The more developers with specific skills that are available, the more likely they are to seek out new opportunities, making it easier to hire. When considering the long-term perspective, the size and liquidity of the React.js community play a crucial role for both you and your HR team.
It's important to remember that today's statistics may not reflect tomorrow's. It's also essential to consider the dynamic nature of people changing their expectations and enhancing their skills. One significant realization I've had over the past few years is that no one wants to switch from React.js or Vue.js to Angular. However, switching in the opposite direction is relatively common.
For example, a skilled Angular developer with a good understanding of project work, methodologies, and business needs may decide to make a career move and explore a new framework. They could take a React.js course, work on some TypeScript projects in their free time, and be ready for a new challenge in a React.js team within a few months.
This scenario almost never occurs in the opposite direction. As a result, if you start a project in Angular today, you are more likely to lose your developers to React projects than vice versa.
Every once in a while, we witness a hype around a particular technology. I remember the sudden rise of Vue.js around 5 years ago. Many developers were attracted to it, mainly because of its ease of use. I talked to several Angular developers and backend engineers who were interested in trying it out. CTOs also wanted to experiment and started their projects in Vue.js. It was an exciting time with good energy, and it was an opportunity for junior developers to become proficient in a particular framework quickly.
However, as of early 2023, the hype has largely dissipated. Although the technology is still in use, being developed and improved, it hasn't caught up with React.js by any means. I can see some companies now stuck with Vue.js. Although it is easy to use and gets the job done, the talent pool for Vue.js projects is relatively limited.
(It's also important to note that Vue.js is not very scalable. If your app is likely to grow, you may find it cumbersome to use this framework.)
If you plan to turn your web app into a mobile app, React is an ideal option. You can use your existing React team to build a cross-platform app in React Native. This approach saves you from having to allocate additional resources and performing the same work twice for iOS and Android. It also maintains the cohesion of your team and makes it easier for developers to switch contexts, ultimately reducing the costs of maintenance.
In my opinion, an experienced React.js web developer can build a mobile app relatively quickly, even if they lack prior mobile development experience.
Choosing the right frontend technology is critical for any project's success, and I recommend React.js due to its widespread popularity, large community, and ease of finding talent. The size and liquidity of the React.js community play a crucial role in both hiring and long-term maintenance. While hyped technologies may be attractive, it is essential to consider their scalability and talent pool before choosing them. React.js is also an ideal option for developing mobile apps, as an existing React team can easily build a cross-platform app in React Native, reducing costs and increasing team cohesion.