jQuery was relevant as a shim for browser compatibility 10 years ago - and even then only for AJAX. Modern browser's DOM API is far more powerful than what pathetic methods jQuery offers. And what jQuery does offer is often broken, deprecated or just shit code. Want to animate something the way the web animated things in the 90's? Use jQuery. Want to use native animation methods that are orders of magnitude more efficient, more featureful and MUCH easier to use? Use the fucking DOM API that comes with the god damn browser that jQuery is hiding from you. document.querySelector is a thing now! Need to do advanced event handling by manipulating the bubble/capture phase? jQuery can't do that. Are their binding selectors like fucking special or something? No, they just never did that and fuck you if you think you need to change the phase that your event fires at. And don't even get me started on the AJAX bullcrap - undocumented "features", suddenly deprecated properties without any documentation or reason why they changed, properties that make no sense: dataType for content-type? type for method? You do know that HTTP existed and had names for these things before you came along, right? Oh but you added "method" also, so "type" and "method" are the same but "content-type" is "dataType" - SERIOUSLY?! WHAT THE FUCK!? This is what all code would look like if the nazis had won the war. And the author! Riseg writes a book, called something like "advanced javascript techniques" and puts fucking syntax errors in it!! Not to mention it reads like "ah duh, I don't know what JS is, ah duh" Then the second book "secrets of the JS ninja" is actually a really good book, it has his name on it, but it also has someone else's name on it this time. So my guess is it went like this "John, you suck, but your shit is popular, can we have this other guy write a book and put your name on it and give you some money?"
And that's just how jQuery has done me wrong. The real reason I hate it is how it continuously cripples programmers by teaching them idiotic programming patterns that should never have existed in the first place. You don't write a 2000 line application with CHAINING CONSTANTLY. Ever hear of a variable?! Do you think it might be better to use them instead of constantly abusing the queryselector? Do you think CPU cycles are free!? "OH HEY! IT CACHES THO!" Yeah, I'll bet it does it better than the native selector /s - oh wait! It probably executes 1 lines of code "if (document.querySelector) { return document.querySelector(e); }" Woooohhhhh JQUERY MAGIC!!!
I think jQuery should be remembered as the lib that broke the internet. jQuery is the first lib that became so popular that the RFC process was aborted and now Risig makes up some idiotic shit on his own and we call it "standard" because of the logical fallacy "appeal to popularity". Just because a lot of people like it does not make it correct. Actually, given the average skill of web programmers I would say popularity should work against it.
I'm going to spend the next several years of my life trying to undo the damage jQuery has done to the systems that I work with. And the damage is mostly human damage - that is, programmers that can no longer program web because of the things jQuery taught them. And god help the next candidate that comes in for an interview that writes "Languages Known: Java, JavaScript, C#, jQuery". JQUERY ISN'T A FUCKING LANGUAGE! Everything jQuery can do DOM API can do better, easier, with less code and everyone that can read JS can understand it. Learn DOM API - throw jQuery in the trash where it belongs.