Recently, many “You Might Not Need …” thoughts have been popping up on blogs, social media and in talks. A lot of good points have been made by people from both sides, but I feel they miss the real point.
Back when You Might Not Need jQuery was published, I was a fan. At the time, ES5 was released and the Web API received some upgrades, making DOM selection and manipulation a lot easier, which is exactly the reason why the argument was published. The point wasn’t to criticise jQuery, it was to make developers aware that they might not need jQuery.
A bit cliché, but as always: it depends. If you want DOM manipulation with thorough browser support, like IE6, I would definitely recommend jQuery. Not using jQuery would mean I would have to consider bugs and browser-specific behaviour I am simply not aware of. If you build an app where DOM manipulation occurs frequently, feel free to use React. If you’re only updating a counter of number of users, I would recommend vanilla XHR. Context is everything. I feel most of these discussions are held where different sides have different contexts in mind. None of the solutions in our industry fits all.
The “You Might Not Need …” projects makes us aware what our options are, allowing us to make the right choice in the right context. What users do we deal with? What is their connectivity? What devices and which browsers do they use? Which browsers do we want to support? How scalable should this project be? What is the client’s budget? Will any of this change over time? All these questions and many more can make all the difference in your choices. No one can rightfully criticise you without fully understanding the context. This is both true in web development as in life.