Should You be Using jQuery 3?
Back in April, jQuery 3.0 was released with all the pomp and ceremony of a British monarch on the 4th of July (happy Independence Day to all our American readers). There have been a flurry of minor releases since then, with the current version being 3.4.1.
We’ve had a few weeks to poke around, and check out the new features, and more importantly the now deprecated features. What we found was a modern library that defied a few of our expectations.
It’s Not Bloated
There are quite a few myths built up around jQuery, not least that it is bloated and slow. There’s some sense to this, containing as it does code that you probably won’t need. However this is true of all libraries, frameworks, and 3rd party scripts; unless you’re using something so niche that there is nothing superfluous wrapped up in the code, then there will always be a few bytes here and there that aren’t required.
But let’s keep this in proportion: the raw, minified, production version of jQuery is 88kb, if you opt for the slim version without Ajax and the effects, then it’s just 71kb.
If you’re working to a strict size quota it’s relatively simple to squeeze 71kb out of a few images. Better yet, drop a jpg and you’ll probably have room to spare.
It’s (Probably) Not Cached
One of the greatest benefits of jQuery circa 2014, was that it was all but ubiquitous. Almost every site took advantage of this by linking directly to the jQuery CDN meaning that more often than not it was cached in the user’s browser – you could, in effect, use it for zero size cost.
The problem is compounded by the release for version 3, because although plenty of legacy sites are still loading jQuery from the CDN, by their nature they aren’t linking to the current version. The jQuery team have gone to great lengths to help you upgrade but project cycles and code adoption means that jQuery 3.n is probably at least several years away from comprehensive coverage.
I detest this view. I understand the logic; if you learn the underlying logic of the language, you’ll understand what’s happening behind the scenes and have a nuanced understanding of your code. People who perpetuate that view have forgotten what it feels like to be trawling Stack Overflow at three in the morning struggling to understand why document.getElementsByClassName needs a  on the end.
Yes, you do need to understand language basics, like variables, loops, conditionals, operators, and so forth; you’ll need to know those with or without jQuery. View jQuery as a set of training wheels, it does the hard stuff for you, so the easy stuff has a chance to become second nature.
There’s No Longer a Rich Ecosystem
There was a time when jQuery developers were queuing up to deliver time-saving, feature-pushing, bolt-ons. That’s no longer the case.
The web has moved on, and the gun-for-hire developers are chasing more lucrative markets, like Shopify, or WordPress. Legacy jQuery plugins (should) still work, and in the case of version 2.n plugins – thanks to the jQuery team’s commitment to backwards compatibility – will (probably) not break using 3.n. (Do make sure to test with the development version of jQuery and check your console, if you’re going down this route.)
There will undoubtedly be some kind of market for jQuery 3.n plugins, and those developers who deem it financially worthwhile to update their code will do so. So for plugins, the release of jQuery 3.0 may actually prompt a long-overdue cull.
Should You be Using jQuery 3?
For many of us, jQuery is a tool we used years ago, and have since moved on. There are better tools for handling Ajax; jQuery still doesn’t play nice with SVG, making its use for DOM manipulation increasingly limited; there are copycat libraries that mimic the best aspects of jQuery, like the selectors, without packaging up everything else.
Featured image partly via Unsplash.