Last week, Bootstrap launched their latest version (v5 alpha) and one of the new features was that they no longer depend on jQuery, that got me thinking, do we actually need JQuery in 2020?
jQuery is one of the most popular libraries in the world, so popular that it’s used by 75.9% of all the websites. In this article we’ll talk about how it became so widely used, and if it’s still worth learning in 2020.
Why is jQuery so popular?
JQuery was created in 2006, back when Internet Explorer was the most used browser and the web was totally different place than it is now. It solved a lot of problems for front-end developers back then; it provided a simple and clear API to build websites with ease. For example:
- DOM manipulation: Using CSS selectors and some functions you can traverse and manipulate the DOM so easily compared to the vanilla Javascript approach.
- Animations: JQuery provides some easy to use out-of-the-box functions for animating DOM elements, without needing to get messy with CSS.
- AJAX: Making AJAX requests without jQuery was a hassle, but with JQuery you can do it in a couple of lines.
- Cross-browser compatibility: JQuery provides an API that can work on most browsers, something that's very hard to achieve if you're using javascript, this saved developers a lot of problems.
Is it still worth learning in 2020?
The short answer is no, here's why:
Better alternatives:
Javascript has matured so much during these last years, it supports a lot of new APIs and its community has built so many great libraries to fill any void jQuery might leave. "You might not need JQuery" is a website that states alternatives for (almost) every JQuery feature, for example, let's say you want to add a class to a certain element:
// Solution in jQuery
$(el).addClass("className");
// What you need to do in pure JS:
el.classList.add("className");
So as you can see, jQuery is more replaceable than we used to believe, especially with the emergence of front-end frameworks like React and Vue.
PS: Mixing two frameworks like React and JQuery is a very bad idea.
Size matters
Amazon famously found that every 100ms of delay in the load time of amazon.com cost them 1% in sales.
So loading an 80KB JQuery is a big problem, a problem we can avoid if we can find lighter alternatives.
Conclusion:
To summarize, I think the web right now is passed JQuery, we have better, and lighter tools at our disposal. But as a web developer, it's sometimes still required to use JQuery because as I've mentioned before, it's widely used, so you might run into situations where you have to use it, in such a case, you can just refer to their documentation and you won't have a problem because you'll be so well versed in javascript by that point.
Latest comments (40)
If your site requires indexing by search engines SPA is not a solution.
Old style multiple pages website featured by jQuery will do much better.
If size matters for you so badly, you should avoid React in the first place.
And jQuery only 27kb gzipped.
Summary: Author is an .... (put your nicer word here)
Hi. I don't understand the 'jquery file size is too big' argument. It's only 80k and may already be cached. Pretty much every site will have some images on and just a couple of them are likely to be bigger than 80k. The front page of amazon might have 100 images on it. Is this just an old argument that is not really relevant anymore?
jQuery is still useful when you develop web app using Django for simplicity.
Because React + Django would add more complexity and remove advantages from built in Django features in Django Templating.
It's my personal opinion.
That's true for most templating frameworks ( Blade for laravel for example ), but currently, you can ditch jQuery for vanilla JS.
Idk why I find JQuery's syntax clean and compact than the Vanilla JS.
In a strange way Jquery can sometimes reduce code as well... for extremely large projects that is.
$('#nav').addClass('hide'); vs document.querySelector('#nav').classList.add('hide')
It is almost half the size... I mean it would take a lot of code IIRC its 90kb, but if you have a huge single page project in the long run you could end up saving.
Jquery covers a lot of things and a lot of backward compatibilities. If they went through it and removed all the backwards compatibility bs they could probably shop it down to 40kb easily.
For example I wrote my own mini jquery clone. It only has a few things, but they are what I used jquery for the most.
example: .html() .addClass() .toggledClass() .addClass() and a few others, but its 1.6kb and it handles all the matches as well. $('#items li').
I've also seen a pretty big project where they just dedicated a shorthand for 'document.querySelectorAll()'. which was '__()'.
The literal code was var __ = (s) => {return document.querySelector(s)}
I guess I rarely use libraries if I don't have to. If it is something small there is no point and if it is really big then you are probably using something else (view, react or whatever).
I can't imagine living without jQuery, but I use it for content scripts in browser extensions. I see no reason to use it for web development (and never did). In content scripts I use it mainly to undo the (nefarious) work of others; to reverse engineer deliberately convoluted class name schemata, for example.
jQuery is only relevant if you are working on an old legacy codebase. New projects should be using modern javascript frameworks. It's interesting though because I recently had a recruiter show me a job specification that had WordPress, PHP and jQuery. So I suppose if you are still using that technical stack it might be relevant but not to me 😅
The odd thing about JQuery, is that in 2020 it's still used more than Angular and React. However, as the article mentioned, it's days are numbered. Just think, in the next epidemic they'll be looking for JQuery people instead of COBOL programmers.
You might not need to. The image you pointed is not that relevant any more.
IE9 market share is 0.6% IE11 is 1.3% you're speaking about dead browsers whose use is mostly recorded by developers testing and still supporting those.
Therefore we can calmly finally call it a decade and build for modern browsers. And since NodeList has the prototype forEach...
Or use
function
instead of the=>
Arrow Function syntax to support IE11Yeeees. Thanks for highlighting. That thesaurus is clunky.
Depends upon the case use. If I am using some jquery plugins then jquery is needed. Mostly in my personal projects I tend to use it as a last resort.
Thank you! I really appreciate the feedback.
You made some very good points about loading time, and jQuery is definitely not worth it.
I've made alot of money for having the legacy skills like jquery or even dojo. There alot of clients, mostly banks running on that stack..
Good point, but you can make a lot of money working for clients using the newest stacks. And why not even both?
Sure.. I love the newest stuff more
Exactly, but due to its former popularity, it will always be used for maintenance.
Nice article! I love jQuery but I see it the same way. :)
I wrote an article on my blog about how to move from jQuery to pure JavaScript and about other advantages like speed performance for SEO, a practical example and a list of 1:1 translations.
If you're interested, check it out: webdeasy.de/en/jquery-to-javascript/