I’ve been cruising the reddit listings recently and without much searching I found a staggering amount of "jQuery is outdated", "jQuery isn’t relevant", "I think jQuery is dying out", "…forget about jQuery. It isn’t good for anything anymore", "jQuery hasn’t been relevant for years in my opinion, it’s best to avoid a "career" that requires it"!

Now, I think it’s fair to say: poppycock. But poppycock aside, the question remains: is jQuery still in 2017 (and as we join 2018) relevant and more importantly, is it worth a newcomer learning the library today?

[I’ve published 38 videos for new developers, designers, UX, UI, product owners and anyone who needs to conquer the command line today.](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)

The short answer: yes[](#the-short-answer-yes)

Yes, of course it’s worth learning jQuery. The internet is littered with tutorials and knowledge across your peers is vast - that’s to say: help is in abundance.

Moreover: jQuery is prolific in today’s web and there’s an extremely high chance that you’ll use it in your career. Sure, you might work for bleeding edge start up from Sillygone Valley that only uses Ember version pre-release 20 (not a thing…yet), but that’s not the only job you’ll have in your career.

Proof in the wild[](#proof-in-the-wild)

How about we look at some real world web sites, and potential employees and clients and see if they use jQuery, and importantly, how many of them.

I’ve been playing with [BigQuery](https://bigquery.cloud.google.com) and querying [HTTP Archive’s](http://httparchive.org/) dataset (you’ll need to sign up to access the tool).

The HTTP Archive crawls the top 10,000 web sites from the [Alexa top 1,000,000](http://www.alexa.com/topsites) web sites and exposes all that data in a BigQuery table (or as a [downloadable mysql database](http://httparchive.org/downloads.php)). This year, the HTTP Archive started testing and collecting JavaScript libraries under httparchive:scratchspace (though it’s not an exact science for all libraries, it’s reliable for jQuery based queries).

I’ve queried the HTTP Archive and includes the top 20 results in the charts below.

JavaScript library distribution[](#javascript-library-distribution)

The chart below is a query from July 2017 aggregating the count of the library name over a total of 474,058 unique URLs collected. The chart shows that jQuery accounts for a massive 83% of libraries found on the web sites.

Reading through the next libraries, jQuery UI requires jQuery, as does Bootstrap and FlexSlider. Modernizr isn’t a "do thing" library, nor are many of the libraries until we hit Angular.JS.

![JavaScript library distribution](/images/library-distribution.png)

jQuery versions[](#jquery-versions)

Are web sites staying up to date with their version of jQuery? The version of the library is included in the the httparchive:scratchspace, so I’ve just looked at the aggregate totals of particular versions:

![Top jQuery versions](/images/top-jquery-versions.png)

[BigQuery saved SQL statement: jQuery by version from latest dataset](https://bigquery.cloud.google.com/savedquery/6055551911:b281945347d44c9397e93db71dd33108)

jQuery\@3 accounts for about 6.4% of all the data points. I don’t think this is because "jQuery is dying out", but more than jQuery solved a serious problem with browser compatibility and make effects and ajax easy. In today’s modern browsers there’s CSS transitions and a consistent implementation of XMLHttpRequest or even the fetch API.

More specifically, I’d conclude that those web sites with much higher traffic from "older" browsers (i.e. questionable interoperability) are using jQuery to simplify their JavaScript.

jQuery over time[](#jquery-over-time)

Finally (and this query appears often): how year on year usage changes. I’ve included Angular.JS for contrast. The table looks like the delta between 2016 and 2017 is showing the first drop in usage (by 2%):

![jQuery use year on year](/images/jquery-year-on-year.png)

So, although this is a small change, I strongly suspect this will stabilise in the next 5 years, rather than rapidly shrink.

Wrapping up[](#wrapping-up)

I’ve seen this kind of dominance in the web before with IE4 and then IE6. And that browser was (and is) hated on pretty hard - and to be fair, IE6 was fairly riddled with issues. jQuery isn’t the same. jQuery is [actively maintained](https://github.com/jquery/jquery/commits/master) and shipped as the default JavaScript library for a lot of large projects (WordPress being one of them).

There’s also the startup cost that jQuery affords. It’s extremely cheap for a new developer to copy and paste some code that uses jQuery, and to add the jQuery library to immediately see a result. The same isn’t entirely true with "modern" code using import or export default or destructuring, etc. It always work in the browser the individual is using and there’s potential for a rabbit hole of tooling (though of course, I’d recommend they start with something like Create React App first, but this post is about jQuery, not CRA).

You certainly don’t need jQuery today. Nor do you need to learn jQuery. However, jQuery is far from dead, dying, outdated or irrelevant. It serves many developers from many different walks of life.

So, is jQuery still relevant? At the end of 2017: yes.

Comments

Lock Thread

Login

Add Comment[M ↓   Markdown]()

[Upvotes]()[Newest]()[Oldest]()

![](/images/no-user.svg)

Phil

0 points

5 years ago

I think jQuery is very relevant for older code bases that use it already or for quick and dirty prototypes. ES2015 and higher and does most of what jQuery does and makes jQuery irrelevant. I feel jQuery was a bridge to help deal with browser incompatibilities and what great in is heyday. We have gotten past this for the most part and need to move off the "bridge." Programming is not like history where we linger on things that do not give us physical value now.

![](/images/no-user.svg)

Robert Fischer

0 points

6 years ago

In your "jQuery over time", can you get the total number of websites that use any library?

Also, how are you accounting for people who package up libraries? For instance, I use jQuery (b/c Bootstrap), but it’s packaged into my "vendor" bundle via Webpack.

![](/images/no-user.svg)

Alex Bohachov

0 points

6 years ago

I have to say I totally agree on bleeding-edge startups vs real world. It is a bad advice for new developers to "avoid jQuery", because it is very very likely they’ll still start with some WordPress/CMS jobs, not in Silicon Valley. And jQuery is so very alive in WordPress world (\~70% of websites), so…​ There’s not much to "learn", on the other hand, so I don’t see a problem. :)

![](/images/no-user.svg)

Maximillian Heth

0 points

6 years ago

I have to thank jQuery (well, John Resig and the jQuery community at large, really) for helping me get my hands dirty with JS when I first got into it. At the time, I wasn’t really actively working in web dev, but jQuery made it stupid-easy to plug in some nice animations, fades, and an occasional hack or two to wow my clients.

Nowadays, now that I’ve been really digging into ES6 and learning JS from the ground up, I don’t really see the need to keep using it since cross-browser bugs aren’t as big of an issue as they used to be (and it’s always a plus to not have to bloat your project with unnecessary code when you can just code in vanilla JS), but I won’t turn my nose up at it if someone brings it up in a conversation.

I mean, for what it’s worth, jQuery does an awesome job at abstracting away lots of complexities in JS, but so does ES6. If you like it or need it, use it, but as with anything in programming, don’t use it as a crutch, know how it works under the hood, and be ready to move forward with the rest of the web once it’s no longer relevant or necessary for web development.

Also, if you’re really set on installing jQuery just so you can use the $ selector, here are a couple of vanilla JS hacks you might consider:

In jQuery, the $ selector is basically a function, so you can easily turn that into a function in vanilla JS like so:

const $ = (x) ⇒ document.querySelector(x); // Thus, $('.class') or $('#id'). Done and done!

const = (x) => document.querySelectorAll(x); // To select multiple elements via a nodelist. Ex: ('.multiple-elements')

And if you’d prefer to use getElementById:

const $id = (x) ⇒ document.getElementById(x); // Ex: $('id')

Not too hard, right? =)

![](/images/no-user.svg)

Ethan Stewart

0 points

6 years ago

I’m sorry, but unless you’re needing browser support beyond the most recent couple versions of the evergreens, or maintaining legacy code that for whatever reason can’t have jQuery removed, I just don’t see a good reason to ever bloat a page or app with jQuery. AFAIK everything it does is simple to do with vanilla JS as well, albeit at the occasional cost of more characters. I’m not saying there are zero reasons to ever use it anywhere, and it certainly played an important role in helping push the native DOM APIs forward, but at this point using jQuery should be the exception rather than the rule, and only after careful consideration that there is no avoiding it for whatever reason.

![](/images/no-user.svg)

JJ Dubray

0 points

6 years ago

You can give JQuery a new life with the SAM Pattern http://sam.js.org\ Why throw away so much good work?

![](/images/no-user.svg)

Colton Colcleasure

0 points

6 years ago

jQuery is irrelevant in progressive development of web-based software.

In 2017 we use tools that help us write good code, not tools that just help us write code more easily.

There is nothing that jQuery can do that I can’t with pure JS, albeit more keystrokes. And I don’t care about writing software the easy way, I want to do it the right way. "Don’t make me think" is jQuery’s theme song, and modern web software requires thought.

![](/images/no-user.svg)

Ted Lee

0 points

6 years ago

Do you have the same stance on underscore or lo-dash? Both of those libraries don’t do anything that you couldn’t do without them, except save you hours from writing functions that seem silly to write yourself since someone has already provided a tool to save you time.

JQuery isn’t going anywhere. I work mainly in React these days, and still find JQuery helpful in some cases (as I do with underscore/lo-dash).

JQuery is still a good helper library in many cases, and if you are avoiding it for the sheer principle of it, power to you. But most developers see the benefit of sacrificing a few KB of bandwidth for a helper that saves hours of dev time. If you don’t see that benefit, great. But there’s no need to get high and mighty about it.

![](/images/no-user.svg)

Rizky Syazuli

0 points

6 years ago

Sorry, but imho, the people that made jQuery (and the ecosystem around it), did put years of "thoughts" & "right-ways" into the code. Your own thoughts are better used on the architectural & planning aspects of your project. When it comes to the little executional details, i will gladly use libraries like jQuery to do it for me.

![](/images/no-user.svg)

Stephen

0 points

6 years ago

jQuery is still totally relevant.

  1. jQuery is used at large companies with lots of distributed teams, especially offshore teams, which have slightly "older" skillsets. (I work at one.) jQuery provides a baseline set of experiences and normalizes all the older browser inconsistencies. I see the "jQuery is not needed" comment a lot from people at startups or individual contractors who have the "luxury" of using modern frameworks. The rest of us are just trying to get work done.

  2. As long as you meet the business requirements, shockingly large numbers of businesses (small to enterprise) do not care what is under the hood, and sometimes they don’t care about "maintainability" or "performance." jQuery still allows projects to get something out the door quickly.

  3. jQuery itself does not cause bad code, but if you have good architectural understanding of isolating global variables and write your code in an object-oriented manner with classic patterns (module pattern, etc.), you can somewhat tame complex projects using jQuery.

![](/images/no-user.svg)

Dipak Rai

0 points

6 years ago

Agreed. Thumb’s up! True.

![](/images/no-user.svg)

Lazar Ljubenovic

0 points

6 years ago

The reason why people hate on jQuery and want it gone is not "(React/Angular/Vue) is better than jQuery" (you can’t compare them), it’s because "vanilla is good enough". I’m seeing countless projects that use jQuery for the sole purpose of being lazy to type document.querySelector all the time.

![](/images/no-user.svg)

Joe Hoeller

0 points

6 years ago

Personally, I think John Resig made a great library for building marketing sites. I am in the application and artifical intelligence space. But if I had to build a marketing site, jQuery wouldn’t be off the table.

![](/images/no-user.svg)

luke知る

0 points

6 years ago

Totally agree.

![](/images/no-user.svg)

Joe Hoeller

0 points

6 years ago

Or you can just have a util function like:

(function(){

const $ = function(selector){\ return document.querySelector(selector);\ }\ function callback(){\ var x = $('#text').childNodes\[0].data += "I scrolled!";\ debugger\ }\ $('.class').addEventListener("wheel", callback, false);

})();

  • Also note I used .childNodes\[0].data which is far more secure than innerHTML. From a security standpoint, dont ever use innerHTML.

![](/images/no-user.svg)

Luke Pettway

0 points

5 years ago

I never even considered that! Thanks for the tip.

![](/images/no-user.svg)

brianN2

0 points

6 years ago

A valid sentiment in the article - The nice thing about JQuery is you can just use what you want, no commitment to anything more than you need - Its a library not a religious order unlike some frameworks!

Learn what you need and enjoy the time saving!

![](/images/no-user.svg)

imlinus

0 points

6 years ago

It’s quite hard to go away from our beloved $().\ Anyhow. These days I mostly only use the .on function.\ [https://gist.github.com/pau…​;](https://gist.github.com/paulirish/12fb951a8b893a454b32)

![](/images/no-user.svg)

olivvv

0 points

6 years ago

I agree to the central point of this article. Also I would be curious to see these stats only for the sites that include moment.js. Since moment has no real competitor afaik, I would see it has an uninformal indicator of "serious" or "big" website.

![](/images/no-user.svg)

Fabien BERNARD

0 points

6 years ago

You have https://date-fns.org/ that is really nice also ;) (for moment competitor)

![](/images/no-user.svg)

Rick Viscomi

0 points

6 years ago

Hey Remy! I love seeing HTTP Archive used to answer questions like these, thanks for writing this up. A few observations, as a maintainer and active user of it:

  • I think the docs with the 10,000 figure are outdated. HTTP Archive currently covers 500,000 of the top Alexa 1M (even better! :))

  • Be careful when looking at the biweekly data and extrapolating annual trends. For example, the "Top 20 jQuery versions used in 2017" analysis only looks at data from the July 1 crawl.

  • Your YoY comparison with Angular is based on network requests that include the library name in the URL. I’d argue that there’s a lot of bias and unreliability in that approach mainly because of JS bundling. Angular users are probably going to be more likely to bundle their JS and omit the library name from the URL.

  • I wrote a very similar analysis about jQuery in May. Check it out at [https://discuss.httparchive…​;](https://discuss.httparchive.org/t/javascript-library-detection/955) and we can compare notes.

I’d love to collaborate on something like this in the future!

![](/images/no-user.svg)

Ollie Williams

0 points

6 years ago

I still see a loads of jobs advertised requiring jquery, so yes it is still relevant. I wrote an article arguing that it is no longer that useful. [https://css-tricks.com/now-…​;](https://css-tricks.com/now-ever-might-not-need-jquery/)\ As soon as IE 11 dies, there is no need for it anymore. Browsers will only get better when it comes to native javascript features.

If you’re doing an app, use a framework.

If you’re doing a simple website, use javascript all by itself.

![](/images/no-user.svg)

Doron Orenstein

0 points

6 years ago

jQuery is great for web SITES, frameworks are great for web APPS imo.

jQuery is also good for (among other things):

  • making tweaks to sites where you don’t have control over the entire codebase and need to do some DOM manipulation

  • modifying the DOM for A/B testing

![](/images/no-user.svg)

DGiG

0 points

6 years ago

Yes, there’s just some tools in there I can’t do without. And even Angular 1 used "jQuery Lite".

![](/images/no-user.svg)

Luke Pettway

0 points

6 years ago

Don’t remind me about Angular 1 with jQlite, oh the horrors!

![](/images/no-user.svg)

Joe Hoeller

0 points

5 years ago

Actually Angular 1 is the best implementation of Ng\* series there is. Every subsequent version was utterly bastardized from a CS & mathematical standpoint.

![](/images/no-user.svg)

Luke Pettway

0 points

5 years ago

There were things I liked about Angular 1 but jQlite was a poor choice and lead to a lot of hacky solutions for simple DOM manipulations. Prior to Angular 1.5 it wasn’t a very solid framework. The switch to a more logical component structure was very welcome especially because you could ditch $scope and $vm.

![](/images/no-user.svg)

Eric Carlisle

0 points

6 years ago

For me, absolutely! Yes, it generally doesn’t scale well. For growing sites, perhaps jQuery should be replaced by a library, framework, architecture better suited for larger web applications. For a smaller site (using paired with a smaller budget), jQuery is still a logical choice. It still:

  1. Is approachable. It can be learned quickly by those lacking a programming background.

  2. Not overkill. Good for simpler needs like a homepage carousel, slideshow, etc…​

  3. Has an amazing set of plugins, components, helpers that work just fine.

  4. Is browser compliant. JS has come a long way, but still needs polyfills, hacks, etc…​\ etc…​\ Is jQuery my #1 goto for new projects. No. That doesn’t mean that it’s not still (very) relevant and I don’t end up using it in some cases.

![](/images/no-user.svg)

Giovambattista Fazioli

0 points

6 years ago

no for me…​ I mean, I love jQuery, but it time to change…​ we are able to replace a lot of jQuery stuff with standard Javascript, especially if you are working with ReactJS or others …​

![](/images/no-user.svg)

sunqj

0 points

6 years ago

react isn’t standard javascript…​

![](/images/no-user.svg)

Jeremy Blanchard

0 points

6 years ago

I still use it, and will continue using it. Sparingly, yes, but I still use it nonetheless.

![](/images/no-user.svg)

Joe Hoeller

0 points

6 years ago

Yea it’s the quickest way to make marketing sites work in all the crap browsers like IE and desktop Safari.

![](/images/no-user.svg)

Nicola Peluchetti

0 points

6 years ago

Jquery ( with a little help from stackoverlow [https://stackoverflow.com/h…​;](https://stackoverflow.com/help/badges/79/jquery?userid=397861) ) found my first remote job so I will always love it! I think that it still has a fantastic API, and for smaller projects is still number 1.\ In larger project, I prefer the declarative approach of react which makes it clear what is triggered when something is clicked/changed.

![](/images/no-user.svg)

Glenn Byron

0 points

6 years ago

I see why the hipsters are saying it, but it is going to be hard to get rid of. it is still a dependent of several packages and frameworks. I’m under a deadline and I know it’s loaded it is easier for me to use it sometimes then have to look up the long hand way of doing it. I’ve started incorperateing Vue.js (great stuff) into an existing .net MVC project that uses Bootstrap. jQuery is getting loaded anyway. It is sometimes quicker and easier to actually use JQuery right in the middle of some Vue.js. I know this could be deeply offensive to some, but a deadline is a deadline. I think I’m going to be using it less and less, but to call it irrevalent is a big leap.

![](/images/no-user.svg)

Mic Sumner

0 points

6 years ago

jQuery definitely isn’t irrelevant! Where budget is a concern, it does a great job. It’s still part of WordPress powering well a great number of websites on the internet today. It’s a great library, but as WordPress does go more into JavaScript which it will (and now that Google crawls JavaScript)…​ this will mean jQuery could be more relevant than ever before!

[Commento](https://commento.io)