Fast forward to today. It's almost like a developers' paradise in comparison. Chrome and Firefox pushed for automatic updates and standardization of the open web. Microsoft learned from its mistakes and is trying with all of its might to shove IE under the rug and push forward with Edge. IE6 lost its grasp on the world and IE8 has finally as well. A lot can change in 9 years - and indeed it has. Developer tools are packaged into every browser, CSS3 introduced a whole new approach for animations and transitions, and ECMAScript 5 spec is pretty much universal with 6 now starting to come in. All of this begs the question - in today's browser market, does it make sense to still hold onto these savior libraries of the past?
The Pains of Abstraction
var items = $(".css-selector")
is the way to get all of the items with a class of css-selector in jQuery. Since IE8, this has been available:
var items = document.querySelectorAll(".css-selector")
and it ends up running faster in processing. And if you only need to worry about modern browsers this approach will run even faster.
var items = document.getElementsByClassName("css-selector")
Speed isn't the only reason to start moving away from abstraction, though. Another reason is knowledge and growth of the developer community. If you check stackoverflow or most forums, when a user has a question the most often immediate answer is "use jQuery". This doesn't teach a new developer how to build anything on their own without a library. It also continues the idea of "magic" happening inside and normal developers couldn't possibly write alternatives. The more developers let go of the safety blanket of jQuery and the like, the more likely they will develop their own custom needs for a site and may even end up not needing the bloat of a full library. If it is a fairly basic site, you could even debate on whether you would need a separate http request for a script item at all.
Animations and Offloading Work
SVG libraries are gaining traction as well as modern APIs like canvas. These don't tie into jQuery and you will need to know vanilla JS to better understand them. These more modern approaches to imagery and drawing also offload the work. More and more APIs for HTML5 have been drafted and implemented across browsers (though the support is a bit less friendly at times and caniuse.com will continue be your friend). However, if you go with a progressively enhancement approach, a lot of the fancy features of animation and API support could be focused on just those browsers that support them.
So are Abstraction Libraries dead?
The examples of writing in vanilla JS often seem simple enough, but it does get more complicated as you get deeper, so it always seems nice putting back the safety blankets. If jQuery is a faster approach and will get the work done well and performance isn't as much of a factor, then continue to use libraries like that. However, as developers we can't lose sight that the "magic" of these libraries is vanilla JS and you can wield it just the same. I'm not the only voice mentioning this. With more voices, we can make sure more of us avoid the safety blanket and potentially create the next library that will help the community.