It may seem like a bold suggestion that we as web developers can choose the wrong tools for the job because we tend to be swayed by appeals to popularity or authority, but simple statistics imply just that. For example, React (https://reactjs.org/) is a JavaScript framework that emphasizes componentization and simplified state management. It enjoys strong advocacy from a vocal and dedicated userbase within the developer community.
Despite React’s apparent popularity, however, The HTTP Archive observed in 2020 that React only accounted for 4% of all libraries in use across the 7.56 million origins it analyzed (https://almanac.httparchive.org/en/2020/javascript#libraries).
For context, The State of JS 2020 Survey (https://2020.stateofjs.com/en-US/), which surveyed roughly 23,765 respondents, offers the following statistics:
- 70.8% of respondents identified as white.
- 91.1% identified as male, whereas 5.8% identified as female and 0.9% identified as non-binary/third gender.
- 97.6% assessed their proficiency in JavaScript at either an intermediate (22.7%), advanced (22.3%), or expert level (52.6%). Just 2.3% self-reported their proficiency at a beginner level.
- 72.5% of respondents reported an 87.5% satisfaction rate with React.
The juxtaposition of The HTTP Archive’s analysis and The State of JS 2020 Survey results suggest that a disproportionately small—yet exceedingly vocal minority—of white male developers advocate strongly for React, and by extension, a development experience that favors thick client/thin server architectures which are given to poor performance in adverse conditions. Such conditions are less likely to be experienced by white male developers themselves, therefore reaffirming and reflecting their own biases in their work.
How many of those results were from Africa? Very few. Same applies to other regions like especially Asia. The sample size was too small and unevenly distributed.
My point is react might seem very popular depending on the reality you live in and the people you follow on Twitter, etc.