Are jQuery Users Fools?

Are jQuery Users Fools?

We should get this out into the open. There seems to be a commonly held belief that jQuery users are ignorant, and, more often than not, designers. Where did this come from, and is it true?


Roots

The JavaScript community wasn’t nearly as vibrant and passionate as it is today.

Let’s take a trip down memory lane; we’ll rewind the clock several years – pre jQuery days. The JavaScript world was a very different scene back then. The community wasn’t nearly as vibrant and passionate as it is today. Sure, back then, there were a few libraries, like Prototype; but they never managed to grab the regular user spotlight the way that jQuery soon would. At that time, JavaScript was a widely hated language. Sometimes, it’s easy to forget that there were times when developers refused to take the necessary time to …ya know… learn JavaScript! Instead, they’d simply copy and paste their way, hoping to keep from getting that nasty JavaScript stain on their pants.

The DOM

What you mean is, “I hate the DOM API.”

What these copy and paste addicts (I was one of them) didn’t realize is that, when you say, “I hate JavaScript,” what you really mean (whether you realize it or not) is, “I hate the DOM API.” No one can be blamed for feeling that way. Especially back in those days, when even IE5 support was in effect, things could get a bit nasty. Browser implementations of the DOM were the culprit; not the JavaScript language. This is due to the fact that there really wasn’t any DOM specification. As a result, browsers sort of winged it as best as they could! We have innerHTML not because of a specification, but because the Internet Explorer team decided to just throw it in there (at which point the other browser vendors reverse engineered it, and implemented it into their own browsers). But the JavaScript language, as a whole, is solid.

In fact, many folks, including myself, would go as far to say that, as a language, JavaScript is really quite beautiful.

jQuery

Around that time, jQuery entered the atmosphere, and began taking the development community by storm. While other libraries like Prototype still retained a certain level of complexity and confusion for newcomers, jQuery was ridiculously easy to grasp, thanks to the fact that everything is accessible, via the jQuery object (something that it’s, ironically, often criticized for).

Need to apply a class? Easy; doing so is tailor made for designers. jQuery allows you to use the CSS selectors you already know to query the DOM.

$('#container').addClass('ahh-yeah');

Fun Fact: Technically, though jQuery popularized the idea of a CSS selector engine, it was largely based on work by Dean Edwards.

And then, at some point, the timeline skewed into this alternate reality…

It literally couldn’t be simpler. By abstracting away complex code and browser quirks, developers could get back to doing what was important: creating websites and applications.

While jQuery’s community grew in leaps and bounds, the library, itself, also continued to mature and take shape. The world was peachy.

And then, at some point, the timeline skewed into this alternate reality (okay, not as Doc Brown as that), where, suddenly, if you labeled yourself as a proud jQuery user, certain members of the JavaScript community would consequently feel the need to stereotype you as an ignorant “designer” (regardless of whether you were or not) – certainly not a “JavaScript Developer.” How did this happen? JavaScript developers don’t use jQuery?


The Burden of Popularity

Everyone has an opinion about the spotlight.

It’s only natural that, once you reach a certain – for lack of better words – popularity, you open yourself to incredible amounts of scrutiny. Everyone has an opinion about the spotlight, it seems. For example, you’ve no doubt heard endless criticism of Catholicism. “They worship statues.” Is that the only religious body with questionable history? Surely not; but it’s the largest. The United States is one of the most powerful countries in the world. Naturally, everyone has an opinion. “Americans are ignorant and fat.” Ignore the good, and spotlight the bad.

jQuery is the most popular JavaScript library, by a landslide. Again, everyone has an opinion. I’ve read countless criticisms – everything from what it doesn’t do, to the structure of the code base. However, perhaps the biggest criticism of jQuery comes from a simple truth: its users, as an average, are less experienced with vanilla JavaScript, when compared to, say, Mootools. While some consider this to be a downside, I honestly view it as a strength – in an odd way.

The fact that jQuery has many less-experienced users is not its downfall; it’s a testament to its appeal.


jQuery Users Don’t Know JavaScript!

This is the argument you’ll hear more than any other. Again, a testament to jQuery, many people learn jQuery before vanilla JavaScript. There have been countless debates on whether this is a good thing or not. In fact, these sorts of discussions extend to all abstractions.

  • Should designers use CSS preprocessors and frameworks, like Sass and Compass, respectively, before learning the ins and outs of CSS?
  • Is it okay for a Ruby developer to use CoffeeScript without first learning JavaScript?
  • Should you use Modernizr before learning how to write a single feature test?
  • Is it okay to use CodeIgniter if you’ve only just learned PHP?

Personally, I feel that those who demand that newcomers first learn JavaScript before moving on to jQuery are missing one thing: JavaScript and the DOM are scary! If you throw the ES5 specification at them, they’re going to have a heart attack, unless they have a real interest in becoming a JavaScript developer. Many people simply need to add a few effects to their websites. We can’t always master everything. Are they bad people for choosing their priorities? Of course not.

JavaScript and the DOM are scary!

Compare this to simple Math. When you first learned how to add 2 + 2, did you do it the official way? I sure didn’t; I used my fingers. I bet you did too. Though it’s a huge simplification of the issue, is jQuery not the same way? It provides new JavaScript users with a simple and exciting entry point. Do you honestly expect them to learn about closures and objects and global variables before they even learn how to do something fun? Come, come, now.

The strict, “Learn it the right way, or you’re a fool” viewpoint is naive, and doesn’t take into account the various learning styles that we all have.

I view jQuery as bait. Hold it over the user’s head, get them really excited by it, and then, when they feel ready, they almost always move on to learning more vanilla JavaScript.

jQuery Users Write Poor Code

Once again, this is a massive generalization. Some of the biggest and most influential companies in the world use jQuery. But yes, there are lots of beginners who are still in the process of learning. Oh well; it happens. Poor code exists in every language. I’ve written a good bit of it myself, I’m proud to say! The best we can do is, rather than scorn them publicly, offer advice and tips when we can. We’re all learning. Do we really need to attack some, because they have different priorities and skill-sets?

With popularity, comes the potential for bad advice.

jQuery managed to generate this incredibly passionate community – from the hardcore JavaScript developers down to the designers who were amazed by how easy it was to get the job done. This passion subsequently lead to countless jQuery tutorials by community members – both good and bad. While still learning jQuery (something I’m still doing), I can guarantee that I offered some terrible advice at one point or another. It’s not too dissimilar to the PHP community. With popularity, comes the potential for bad advice.


The Ruby Community

This sort of pointless teaching almost hurts the community.

In the Ruby community, there’s an interesting dynamic. Tutorials are, to generalize things, written by the veterans. In other words, if you’re going to write a Ruby on Rails article or book, you should fully expect extreme scrutiny. If you don’t have a massive level of experience, don’t you dare write about it. In some ways, this is a strength. As a student, you can more easily rest assured that what you’re learning is correct. On the other hand, PHP tutorials are all over the place. Writers sometimes focus on the insignificant, and ignore the important. You’ll often find best practice PHP tutorials, which describe whether or not it’s faster to use single quotes or double quotes. Of course, this sort of pointless teaching almost hurts the community.

What Do You Prefer?

It’s an interesting thing, I must say. What do you prefer? A smaller, passionate base, or an incredibly popular one, consisting of all skill levels? There’s certainly pros and cons to each.

It’s undeniable that many of us feel a need to be trail blazers. Remember when parents began signing up for Facebook? Critics widely declared that the end of Facebook was near. Once you sacrifice exclusivity for wide appeal, people instinctively begin searching for the next thing. But that didn’t happen. The same is true for jQuery. Sure, some users have moved on to more comprehensive frameworks, like Dojo. But that’s to be expected, and should be a badge of honor for jQuery. For many, the learning cycle goes like this:

  • Learn jQuery; get excited.
  • Realize that you have no clue what this refers to in different situations. Learn JavaScript, and incrementally improve your old jQuery code.
  • (Optional) Advance your skills to the point where you need a more comprehensive framework for building large applications. Begin reviewing additional tools, such as Dojo.

Is that so bad?


Real Deadlines

It’s not like we’re coding in binary here, folks.

There will always be the advocates who suggest that you shouldn’t use a library – period. Given the current state of JavaScript and the DOM, though, I honestly feel that this is bad advice – particularly for newcomers. They shouldn’t be expected to wrestle with frustrating browsers inconsistencies so early in the learning process. And, many times, abstractions are a very good thing! It’s not like we’re coding in binary here, folks. When you use jQuery, or any other popular library, you’re benefiting from countless tests, bug fixes, and the best minds in the industry.

Now, certainly, you’re not required to use somebody else’s framework. Create your own library, if you have the ability; that works too! The goal is to:

  • Normalize browser quirks
  • Write less code
  • Benefit from as many minds as possible
  • Meet real deadlines, and get the job done

jQuery is not “a designer’s library,” but it appeals to designers. It’s not as class-based as other libraries, but this makes the entry point for newcomers far more painless. So what we end up with is a library that helped reignite the JavaScript community. It’s simple enough to appeal to first-timers, and powerful enough to be used by the largest companies in the world. Why exactly is it being criticized again?

Tags: jQuery
Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • http://extrasmal.nl Xander

    I think that jQuery opens the world of javascript and that you should step into this world when you are ready to write cleaner code.
    Jquery users should try and create their own code instead of using plugins. A banner rotator could be written within 10 lines of code. ( okay i admit, super nerds do better check: http://js1k.com ).

    So step into javascript using jquery, try some plugins and then recreate these plugins using custom code.
    Then see if it is possible to write the same in javascript, without jquery and see how fast your site could actually load.

    kisses to the community

  • Wouter J

    Everyone shouts jQuery. A beginner is asking a question, the first answer is jQuery. And jQuery is perfect, it makes JS easy to understand for beginners, but it is at least not a holy Framework. It is just a framework that makes animations.

    The negative of jQuery is that they make there own language of it. A jQuery developer don’t know something about JS. It only know the jQuery syntax.

    I think, learning Raw JS is much and much better then learning jQuery. If we are going to use jQuery, within a few years almost nobody knows what happend exactly. They only know jQuery(elem).slideDown(). Almost nobody knows that in real there is an setInterval (or a better way with setTimeout) who increase the elem high every … seconds.

    Why learning only jQuery? Learning jQuery is a good way to begin, but after learning jQuery go on and learn JS and read the jQuery source code.

    • http://www.isaacvanname.com Isaac Van Name

      I completely disagree, and your classification of jQuery as “just a framework that makes animations” shows that you are ill-equipped to discuss this topic.

      I was one of those die-hard Javascript-only developers for years, and I agree that knowing vanilla JS is a huge asset. Eventually, though, I got tired of accounting for the differences in cross-browser Javascript behavior. THAT was what made me start using jQuery, since it provides many utility functions for just those situations.

      Do I just use jQuery now, to the exclusion of vanilla JS? Of course not. I actually write plenty of structured non-jQuery code, and I use jQuery as I need it. At the end of the day, jQuery is a library, not a language. It’s meant to be used as needed.

      The barrier to entry for jQuery is much lower than vanilla JS and, to be honest, it’s not a crime against humanity to have newcomers writing terrible jQuery. They’re either looking for a quick fix or looking to get better at developing in JS. Either way, they’ll reach their goal, and their bad code will not affect you.

      The ones seeking to improve will improve over time; none of us started out writing beautiful code, even when using vanilla JS first. That’s the problem with most communities now: newcomers are punished for not being polished.

    • warhead321

      >>A jQuery developer don’t know something about JS

      I take it you mean that in much the way you don’t know English for jack My dog has better grasp of the mother tongue than you do.

      Consider….

  • Vic

    No they are not.

  • Ali

    I HATE JAVASCRIPT! But I want to master JQuery, am I a fool? NO! Because JavaScript is too difficult for me. I am not a computer science guy but a normal computer student who wants to learn JQuery at ease without JavaScript! Who agree with me that we can learn JQuery without touching JavaScript?

    • Nonya

      Uh…jQuery _is_ JavaScript. If you’re using jQuery, then you’re using JavaScript.

    • Nonya

      Uh…jQuery _is_ JavaScript. If you’re using jQuery, then you’re using JavaScript.

    • http://jazzyflight.blogspot.com Jasmine

      If that “difficulty” of Javascript that you mentioned doesn’t give you a big chubby to go and learn it, you won’t be a good developer. Please don’t waste your education on something you don’t have an aptitude for. Developers LOVE problems and adversity – if you don’t, then it won’t matter how educated you are, you will never have a passion for this stuff and will never be good at it. You might make a decent manager – consider getting an MBA.

      A developer would never say “I don’t want to learn that because it’s too hard”

  • http://jayvincent.co.uk Jay Vincent

    If there was comprehensive documentation with best practise examples for native JS, I would make more of an effort to ween myself off jquery dependency.

  • http://patrickpopowicz.com Patrick Popowicz

    Does it even matter if people who do or don’t use jQuery are fools? The whole point of using a framework is to streamline the development process and not reinvent the wheel. If I need a sliding div, I’ll use it, because it’s there and does what I need.

    • http://www.cinsoft.net David Mark

      @Patrick

      “Does it even matter if people who do or don’t use jQuery are fools?”

      If your Web developers is a fool, you’ve got a fool for a Web developer. :)

      “The whole point of using a framework is to streamline the development process and not reinvent the wheel.”

      What wheel? And what if the previous stabs at “wheels” were square?

      “If I need a sliding div, I’ll use it, because it’s there and does what I need.”

      Sort of like climbing a mountain. And do you really know what your *client* needs?

  • Bryce Pelletier

    I have to say that as a former electrician, turned developer (yeah it’s how I feed my family now). jQuery makes is easy to get the job done while investigating and learning the Vanilla. True, not everyone is interested in learning the why, how and what about the languages they use, but true developers are. You are only Cheating Yourself when you aren’t using frameworks and libraries just because of the piss poor code others write or some other lame excuse, even more so when you already know the language under it all. As a guy that was forced to choose another career path 3.5 years ago, I love, appreciate and cherish the small and large communities that share both raw languages and libraries/frameworks. Without these communities I wouldn’t have made it this far, but seriously why not use the tools?

    • John Mulligan

      @Bryce… I Have a similar story, and I agree!!

  • Goryo

    i like the advice…

  • Kleb

    With great power comes great responsibility.

  • http://www.cinsoft.net David Mark

    “We should get this out into the open. There seems to be a commonly held belief that jQuery users are ignorant, and, more often than not, designers. Where did this come from, and is it true?”

    Hi there… and yes *most* jQuery users are designers with no need to learn programming (let alone cross-browser scripting). That’s fine for them as they only need to make mock-ups, not production Websites.

    “Roots”

    Hi there, again. :)

    “The JavaScript community wasn’t nearly as vibrant and passionate as it is today.”

    When, where?

    “Let’s take a trip down memory lane; we’ll rewind the clock several years – pre jQuery days.”

    That’s a pretty short trip.

    (Read the rest of the comment here: https://gist.github.com/1401353)

    • http://www.jeffrey-way.com Jeffrey Way
      Author

      I guess, thank you for responding to every sentence.

      • Kris

        lol @ Jeffrey’s response.

      • http://www.cinsoft.net David Mark

        Welcome, but please stop guessing. ;)

        One typo: missing class name argument. Sorry for any confusion.

    • http://www.jeffrey-way.com Jeffrey Way
      Author

      David – I appreciate the comment, but it’s so long to the point that it’s burying everyone else’s opinions. I linked to a Gist that contains your full comment. Hope you don’t mind.

      • http://www.cinsoft.net David Mark

        No worries. I find many jquery bloggers so loathe to criticism that they censor anything critical, much to the detriment of readers. So good show! :)

      • http://www.cinsoft.net David Mark

        Oops, one worry: Github mangled the presentation. It’s unreadable at 1024×768 anyway (and please don’t tell me to get a new monitor). :)

      • http://envexlabs.com Matt Vickers

        Judging by your browser size and site url, you’re living in 1999.

        I await a word by word response on this comment.

      • http://www.cinsoft.net David Mark

        @Matt

        “Judging by your browser size and site url, you’re living in 1999.”

        My browser size? What size were browsers back in 1999? Tell a Web designer their shit doesn’t work and they insult your browser, monitor, etc. Why are you all up in my browser?

        They can’t seem to come to grips with the fact that it’s their fault. Aw, why aren’t you at 3000×2000? And why aren’t you using the exact same browser/configuration that I tested? I guess I “got what I deserved” (Web developers seem to hate their users).

        And what’s wrong with my URL? If you meant that you glanced at the “My Library” stuff and came to the conclusion that it was somehow old-fashioned… Well, you’ve got a considerable distance to go.

      • http://www.jeffrey-way.com Jeffrey Way
        Author

        @David – If your comment had been full of praise, I still would have moved it to GitHub. I appreciate the criticism.

    • http://www.casabona.org Joe Casabona

      While I didn’t take the time to read your entire comment, I do want to say that as a developer, I love jQuery because like any good framework, it helps me developer faster and it’s plugable so I can add to it. It has also helped me learn javascript by using it.

      A lot of your comments come from your own observations (like “most jQuery users are designers”) and javascript is a lot more popular today than it was a few years ago. JS is replacing what used to be functions solely of Flash and jQuery helped that.

      Also, the way you responded to the post, in my opinion, was in the most obnoxious way possible. There is a difference between someone you disagree with and someone who is ignorant.

      • http://www.cinsoft.net David Mark

        “While I didn’t take the time to read your entire comment,”

        A dubious start…

        “I do want to say that as a developer, I love jQuery because like any good framework, it helps me developer faster and it’s plugable so I can add to it.”

        It helps you develop what faster than what? And all native objects are “plugable” in JS. All methods can chain too? Just add “return this”. ;)

        “It has also helped me learn javascript by using it.”

        That’s as maybe, but I think you need to consider that perhaps you made a long trip for no reason.

        “A lot of your comments come from your own observations (like “most jQuery users are designers”)”

        Who else? And yes, most jQuery users work for advertising agencies. I deal with them every day.

        “and javascript is a lot more popular today than it was a few years ago. JS is replacing what used to be functions solely of Flash and jQuery helped that.”

        So you are using the “lesser of two evils” argument? Which one sucks less?

        “Also, the way you responded to the post, in my opinion, was in the most obnoxious way possible. There is a difference between someone you disagree with and someone who is ignorant.”

        When in doubt, change the topic to the messenger. Some things never change. :(

    • Ryan

      Nicely worded! I generally agree with the majority of your post, specifically those “think twice about your decision” comments. To be fair though it would have helped your case a bit to be more concise. Being able to say that without being redundant is a real cool skill to have.

  • http://chadwik.us Chad Hietala

    I think the largest problem and greatest accomplishment is it’s tight coupling to the DOM. It’s great because it’s easy to manipulate elements on the page but at the same time can create slow spaghetti code real quick. Writing the de-facto

    $(document).read(function(){
    //BAM BAM
    });

    is all well and good for small things but doing a ton of “stuff” inside of here without thinking about design patterns is where jQuery falls apart from a maintainability standpoint. You could argue that this happens with every language, but since jQuery is so easy to implement, I believe it’s prone to this more than any other framework or language.

    I think is a little too far to call jQuery user fools,. I would fall somewhere in between “uninformed” and “javascript dabblers”. The vast majority know enough to get by, but don’t know enough to build a solid application on top of it.

    • M Le

      Agree
      There are alot of thing that jQuery cannot do for you, I still have to study JS to get the job done. I think jQuery is useful for interactivity, and quick development.

  • Miles Johnson

    Yes.

  • http://twitter.com/stevenschobert Steven Schobert

    Really great article. I can definitely say jQuery is what opened to door to web development for me. I picked it up to simply add some dynamic CSS to simple websites. But before long (mostly because of curiosity), I ended up learning vanilla JavaScript… then PHP, then Ruby, then Python etc.

    I could see why many vets would frown upon the jQuery ‘newbies’, but because of it’s simplicity it’s a great stepping stone into more complex methods.

  • http://wpconsult.net Paul

    real programmers code with Assembler

    • http://kustomdesigner.com mike

      No, real programmers work for NSA and code in a secret language I can’t tell you about or I would have to kill you ;P

      • http://www.cinsoft.net dmark@cinsoft.net

        The language is not the issue. Any way you slice it, you are going to be writing JS.

  • Adam

    This article took the defensive position of a very well worn debate. The debate, however, has been framed wrong, in my opinion.

    jQuery makes manipulating the DOM so easy, anybody who uses it for that (and some simple AJAX work) aren’t fools.

    jQuery users who know jQuery and THINK they are Javascript developers, however, are fools, which is where I believe the real community divide occurs.

    Saying jQuery developers are foolish Javascript developers is like saying grade 3 math students are foolish accountants.

    (In the above statement, by jQuery developers I mean those who wouldn’t be able to manipulate the DOM without the jQuery library)

  • http://jonathancutrell.com Jonathan

    A few comments here…
    1. This post definitely needed to be written to start (or, rather, continue) this conversation.

    2. The worlds of designing and front-end development are colliding more now than ever; many people are entering the jQuery world because they have to to set themselves apart as designers to get a job. This is the unfortunate truth.

    3. We shouldn’t confuse knowing how to write JavaScript with understanding best practices of the syntax. For instance, I don’t need to know how to write every browser’s different implementation of AJAX request structure, but I should at least read about it to know that there are different ones. I shouldn’t necessarily have to remember the code behind every abstraction that jQuery provides, but I should understand that they exist.

    4. We need to understand that best practices are not always natural practices. Caching variables outside of a for loop is efficient in JavaScript, but that is something that must be learned; this isn’t a jQuery vs. JavaScript debate, it is a computer science practice debate. It’s not jQuery’s fault that it is incredibly friendly to users; John and the team don’t have the responsibility of making the library hard to use for non-computer science background designers; they make it easy to use and provide abstraction for proven “best practices” for every browser, period. It is your responsibility to learn about efficiency, and that has nothing to do with whether or not you know “vanilla JavaScript”. (You can write good jQuery, and you can write bad jQuery).

    5. Lastly… the only point I disagree with in this article is the point about hating the DOM API vs hating JavaScript as a language. We all know Douglas Crockford and his description of the “good parts”; conversely, there are definitely bad parts to the language. It is okay to hate JavaScript, because it (like every other language) has its limitations, quirks, etcetera. Scoping, the way it deals with floats/numbers, typing, etc. are all drawbacks, mostly because the language behaves in a way that we wouldn’t consider to be natural. But for those of you who have tried jumping into ruby, there are a lot of things Ruby and the community inherently allows/promotes that aren’t natural, either (all those clever one-liners can be pretty cryptic).

  • http://udgwebdev.wordpress.com Caio Ribeiro Pereira

    The best web developers code with HTML, CSS and Javascript make a web page run on all browsers even for IE6, Netscape and Mosiac Too rsrs

    JQuery is a good framework which help so much us!

    But if you don’t know the Essential of Javascript, try code for Node.js and you will learn how powerful it is!

    See some of my posts about Node.js:

    http://udgwebdev.wordpress.com/2011/10/11/nodejs-criando-um-mini-chat/

    http://udgwebdev.wordpress.com/2011/09/19/nodejs-javascript-para-servidor/

    http://udgwebdev.wordpress.com/2011/11/16/um-pouco-de-node-js-e-mongodb-na-pratica/

    I know it in portuguese, but I from Brazil!! rs

  • http://ahermosilla.com Andres Hermosilla

    I learned jQuery first and then moved on to plain JS. I’m glad I learned jQuery first because it made me think of ways to implement flexible, modular, and maintainable JS (via plugins). All the programmers I know that started with plain JS don’t write very efficient JS. I think there is a certain benefit to starting with a framework, as it shows non-experts how things should be.

  • mark

    Its a ‘class’ thing, JS developers are annoyed that they have spent all that time learning JS and someone with no experience can come along and write a few lines and achieve the same thing with a very small learning curve. This angers them. They believe everyone who writes a line of code to achieve something needs to know EVERYTHING else about the code even if they will never use it, this saddens me. As a community they should welcome new comers and give them a helping hand not slate them for having a go.

    “The best we can do is, rather than scorn them publicly”

    Now this is my biggest gripe with the web design/development community everyone is very quick to criticize but never offer anything themselves. I have mostly done front end development but have started to take my PHP more seriesouly now learning OOP and MVC standards. But I find people often criticize peoples code saying its ‘crap’ ‘poor’ ‘better way to do it’ without offering any kind of constructive criticism.

    I’m a visual person and like to watch video tutorials on the likes of youtube and the envato tuts marketplace. Time after time I see people posting comments saying its poor coding or use a different code base, when I check their profiles they have no videos offering guidance in return. When I post a comment back asking why is it poor? Whets a better way to do it? I often get no reply or when I do its rude saying what do I know? Saying I’m ignorant ect which is no help to anyone.

    It’s got to a point on help forums now where I’m scared to post my code because of ridicule and no one adding anything constructive. So I’m now at a point where I feel trapped from any progression, I can’t ask for help/tips because they will simply say my code is crap, but if I don’t post my code how will I know its any good?

    I understand why older/experienced developers won’t want to help newer people into the industry for fear of competition but surely as an experienced developer you would want your chosen code to thrive and in general improve across the board constantly pushing standards?

    I don’t know maybe it’s only me whose finding the community to react this way?

    • http://www.cinsoft.net David Markj

      “Its a ‘class’ thing, JS developers are annoyed that they have spent all that time learning JS and someone with no experience can come along and write a few lines and achieve the same thing with a very small learning curve.”

      Uh , not even close. Do you think that if a person with “no experience” can write a few lines with whatever library, what in hell would stop an experienced developer from writing the same three lines (with the bonus of perhaps understanding what they just did). Learning curve is quite steep. Look how long it is taking the jQuery *authors* to figure out DOM scripting. ;)

      “This angers them.”

      Backwards. Criticizing their Gods angers the neophytes to no end. I’ve never heard so much hateful bullshit as when I point out a problem in jQuery. Clearly there’s is some (justifiable) insecurity among jQuery users.

      “They believe everyone who writes a line of code to achieve something needs to know EVERYTHING else about the code even if they will never use it, this saddens me.”

      Buck up; who believes that? :)

      “As a community they should welcome new comers and give them a helping hand not slate them for having a go.”

      Did somebody do that to you?

      ““The best we can do is, rather than scorn them publicly”
      Now this is my biggest gripe with the web design/development community everyone is very quick to criticize but never offer anything themselves.”

      LOL. If only those clods at jQuery had taken more of my offerings. Your life would be a hell of a lot easier right now. That’s for sure.

      And yes, they love that spin. Stop criticizing us, why don’t you write something exactly like it, but better!

      “I have mostly done front end development but have started to take my PHP more seriesouly now learning OOP and MVC standards. But I find people often criticize peoples code saying its ‘crap’ ‘poor’ ‘better way to do it’ without offering any kind of constructive criticism.”

      Do you find that often? Maybe you are the problem?

      “I understand why older/experienced developers won’t want to help newer people into the industry for fear of competition…”

      Snip that. I had a feeling this was your theme. Nobody is afraid of you. I submit that you are afraid of Javascript for whatever reason and really want to live in a world where jQuery is accepted by more than just neophytes. And I think the jQuery authors would love to join you there.

      Say, we’ve got these three arks… :)

      • mark

        “Do you find that often? Maybe you are the problem?”
        And this is exactly my point, I make a post about how I have found the community (in general there are still some great people who are willing to help out new comers) and I just get jumped on and told I’m wrong, you have proved my point nicely. No its not just me simply look around on most of the larger web developer forums or take a look at comments in the net tuts marketplace to see my point.

        “I submit that you are afraid of JavaScript for whatever reason”
        I have been writing JavaScript before jquery was even dreamt about thank you very much, I said I’m ‘new/just starting to look more in depth’ at more back-end/server side technologies such as PHP. Just because I know JavaScript doesn’t mean I wouldn’t/don’t still use jquery.

      • Joey

        Hey man chill out no need to go trashing other libraries because MyLibrary ain’t doing its thing! (Perhaps need to squeeze out a couple of sub-optimal routines and work on the regexp abuse!)

        Embrace the $!

        Peace!

  • Michael A. Hess

    In my opinion the problem stems from resumes. I have seen too many resumes where someone lists that they know and can code in Javascript, and JQuery. Then when interviewed it comes out that they cut and pasted a tag and placed the correct class names on an object in their HTML. This is the extent of their JQuery and Javascript experience yet they claim that they are Javascript programmers on their resume. This is the bad taste that is placed in peoples mouths with regard to JQuery. People claim to be experienced Javascript coders when they in fact have not code one line of Javascript.

  • Dave

    That’s no big secret. [raises hand] I’m a JQuery fool. Of course I am when I don’t use it every day. Just as a programmer is usually a CSS fool, a CSS person is usually a Python fool, engineers tend to make nasty looking design requests, and so on.

    I don’t get enough requests to stay fluent. So my code could be pretty funky. At least I check my book for good ideas, though. :)

  • Ron

    I wouldn’t go as far as call jQuery users fools, but just because jquery is so easy to pick up for someone new to the language, it tends to attract those that don’t want (or have failed in the past) to learn javascript. I don’t see this as a huge problem, that only starts when they go on to develop larger web apps, based on a sparse knowledge of javascript.

    jQuery has its uses and someone knowledgeable of javascript and jQuery can definitely produce a great web app with it. But in the end, many jQuery users never get past the “download a plugin” phase.

  • Tyler F

    I learnt Javascript, and hated it, but it something you HAD to work with. Now with jQuery I can write an application much quicker, without any issues with individual browsers, there are many great plugin which are often quite easy to use and produce great results. I still use a lot of JS within jQuery however, string functions I often use for example. I don’t think jQuery is worth using on a smaller website, but for large sites, that have a lot of interaction, animations and elements, then jQuery just makes sense.

  • Mike

    I love both client side and server side languages. I have come to fully respect the power that both posses. The amount of control over the browser and the server that a web programmer has, in my opinion, is unrivaled within software development. With that said, I program for both web and the desktop; you could even call me a designer. When it comes to frameworks and libraries, I for one reason or another, have never been a huge fan, but that doesn’t mean I don’t use them. If your’re on a tight deadline, why not use a framework(Why re-invent the wheel?). Are you looking to sooth that nagging headache from looking at that computer screen for far to long? Load the jQuery remedy, that should shorten the development time by half.

    I believe in fully understanding what you are programming, but that does not mean taking a shortcut is cheating. If one feels that using a framework has more benefits than developing from scratch, then more power to them. If one wants to learn jQuery before full fledged java script, then more power to them!

    -Mike

  • http://www.bryandhughes.com Bryan

    What a strange place we’re in that ‘designer’ is a bad word.

    • http://www.jeffrey-way.com Jeffrey Way
      Author

      It’s not. It’s just a way to say that the person doesn’t work with code for a living.

  • Felix Guerrero

    Learning JS before JQuery is the best you can do it. I’m still learning JS and I’m learning more of JQuery or any JS Framework than before.

  • http://www.cyberstream.us Eli Mitchell

    Web applications can bloat and events can bubble severely with jQuery if you don’t use it right, but I don’t think that is reason to ban it.

    I really don’t care if what kind of people use jQuery. Every language has “fools” that attempt to use it. So what?! jQuery allows you to create web applications with a high-quality, cross-browser front-end with ease. I think that in itself is enough of a reason to use it.

    I have written large applications in pure Javascript – my Opera extension, PageScrubber, being the most significant with over 1k lines of code. Although it was a great learning experience, it gave me an immense appreciation for jQuery’s simplicity.

  • http://Scruffoyrand.com Ryan Auld

    Picking on jQuery users for not knowing Javascript, it’s like picking on a WordPress developer because he didn’t make the CMS.

  • Hendra

    A nice post for debate, Jeffrey. I myself am a foolish jQuery developer all the way, but of course I know basic Javascript, but do I need to know Javascript ninja tricks to do things that jQuery can do in a whim? I don’t think so. Nerds and Javascript fans may go all the way, but I’m (and most of us I’m sure) living in a world where clients don’t care. I’ve seen lots of sites built with only basic PHP, CSS and Javascript, and do the clients care enough to not let the sites see the day? Most likely no.

    In the end, no matter how you write your jQuery, it’s basically translated to Javascript in the end right? Cos it’s just a Javascript library. So why condemn people who write a single jQuery line that require you tens to hundreds of Javascript line just because you know Javascript and they (perhaps) don’t? It has the same output, doesn’t it? Yeah, you may write better/more efficient/cleaner/miliseconds faster code than jQuery equivalent, so what? Let it be your strength that you can write better/more efficient/cleaner/miliseconds faster code, and let jQuery be known for its (generally) faster deliverance time. Let the clients decide which one they want to hire. Though I’m sure we’ve got a clear winner there.

    I think jQuery vs Javascript (Dojo to some extent) is quite similar to CodeIgniter vs PHP (Symfony/Zend/etc). CI has been condemned for being a really bad framework (though most of the time, I don’t know what they’re talking about). Haters say it’s no good for enterprise projects etc, but honestly, do all web programmers write enterprise-scale projects all the time? There’s one for everything.

  • http://www.bentedder.com Ben

    I’m a web designer. Yes, I wish I knew the ins and outs of javascript. I really do. It irritates me to no end when I don’t know something completely. But I also wish I knew the ins and outs of the exact science of how a grilled cheese sandwich interacts with your taste buds to taste so delicious.

    The fact is that it is impossible to know everything. It’s impossible to know everything even in your own field. So you pick your battles. For me, it is the question of, do I take the time to become 100% fluent in javascript, php, mysql, html(5), css(3), as well as the frameworks like jQuery, or do I get to work and make money?

    If I had the time, energy, and determination to sit down and be fluent in all of those lanuages, then I would do it in a heartbeat. The reality is that I know enough of everything to get by. I create production websites that work. Of course they aren’t always 100% perfect. What is?! Even something perfect today would be out of date or need an upgrade in the next month.

    So I continue to chip away at what I don’t know and slowly build my knowledge. In the meantime I write sloppy jquery, I convince myself I know enough php to create wordpress themes, and I’m proficient enough in html and css to create what I need to create.

    It’s the same with my Chinese. I’m not fluent by any stretch. You can ALWAYS improve. Until the end of my life I could study and not be completely fluent. But I can order food, find the bathroom, talk about traffic, crack a joke or two…what more do you need for right now?

  • http://pacy.co Abhishek Kaushik

    whoever says Jquery is an animation framework surely doesn’t knows just anything (or know very little) about jquery.

    Jquery makes us do javascript in a very easy way, and most important, with cross-browser support.

  • cir

    I think this discussion leads nowhere.
    If you’re a good jQuery developer you must know Javascript, whether you learned it before or after.

  • http://www.www.com codeignitero

    It doesn´t matter the language. Anybody can write code that a computer can understand, the real deal is to write code that a human can understand.

  • Christian Sciberras

    After reading this whole article, I’m more or less thinking out loud, WHAT THE F.

    True, there are some people out there that think they can learn jQuery without learning Javascript.
    It’s also true that some people out there think jQuery can do things plain Javascript can’t do.

    But really, ALL JQUERY USERS are clueless fools?

    Oh and the epic Ruby people are born as experts. Yeah, right.

    Then again, I shouldn’t have expected anything else than the usual elitist attitude in an article with such a title.

    And I was thinking I might get some food for thought. :(

  • http://www.scholarchip.com Bob

    Here is my 2 cents. jQuery normalizes the browser. I did some javascript manipulation of the DOM and it was extremely painful. I am an experienced software developer and a mid level javascript programmer. Every browser treated everything differently! I have looked at javascript code for various sites and the amount of checking for browser quirks is 90% of the code (ok i exaggerate, but close)! jQuery relieves one of all that. You can stick to making the browser do something wonderful and not have to tear your hair out everytime you try it out on a different browser (version!). I still do a lot of javascript code but it does not have to do with the browser type!

    So there you have it.

  • dave

    Here, here

    Well said, well put, faultless argument. I love jquery, i can code javascript. i have been a developer for 15 years.

    jquery lets me and my team do in 5 mins, something that could take weeks to accomplish
    and then take months for my juniors to understand.

    Jquery says “Write Less, Do More” and i live true to that in every language.

    The developers that want to do things the long way, the harder way etc just because they can,
    are probably the type of people that would build a server from scrap metal and silicone just because that’s what there made of, and why get one off the shelf when you can create your own.

    barghhhh to the long way of doing things, because its NERDY to do so, do things fast, simple, working and then you make money and have time to spend it :-)

  • http://myonlineband.com John

    Languages and frameworks are tools. Good developers learn how to use them to become more productive. Bottom line with JQuery is that it makes you more effective.

  • Jamie Nordmeyer

    I’m a jQuery user. I absolutely love the library. I’m also an expert Javascript programmer, having used it from its inception. While I feel that everyone SHOULD learn Javascript if they’re using jQuery, I don’t feel that they HAVE to learn it beyond the basics. If the tool gets the job done, then it gets the job done. If you HAVE to learn Javascript in order to use jQuery, does that also mean that you HAVE to learn the C Win32 API before you program C#? Does it mean that you HAVE to know assembly language before you code in C++? Abstractions are there for a reason; they make getting the assigned task done easier to do in a shorter timeline. Yes, I believe it definitely helps to know how a framework works, to know what jQuery is doing under the covers, or to know what C# is masking from you in the Win32 API; it helps you understand how to performance code, for example, knowing that you can approach a problem in more than 1 way using a framework, but it’ll perform better if you use one technique over another. But I think it’s a mis-step to say that you HAVE to know what’s going on under the hood. Does every C# programmer HAVE to know that calling “new Form();” is actually calling the Win32 CreateWindow function?

    • Truth

      So you were there at the start? When JS were just starting out, playing small pubs in front of 5 people? Whoop-de-fucking-doo, shit cunt.

  • thoiness

    The fool is the programmer that spends all their time in JavaScript because they want to keep their code “holier than thou” while neglecting their true mission: Producing functional code that completes the task assigned to them.

    If JQuery alleviates the former so more time is spent in the latter, than the fool is the one that doesn’t use it.

    • Chinese

      I completely agree. Good point, well made. Affirmative.

  • Nick Daniels

    I will disagree on one point. I actually do hate JavaScript. it has several constructs which are architected poorly. I.E for (x in y), a sort of half ass enumeration. I switched to coffeescript long ago not because I hate the dom, but because JavaScript in a very unexpressive language. If you look at well written JavaScript it makes very little literal sense. Because to write good JavaScript you have to do things in a very non intuitive way. I’d rather let the coffeescript compiler do that and I’ll write easy to read well working code in coffeescript. Just my 2 cents.

  • Ümit Akkaya

    If someone need to do something as fast as he can he is using jQuery.

    I did things with and without jQuery and actually i dont realy like a codes that completely depends on jQuery but when there isn’t much time, using jQuery for fast solutions is not looking too bad and we cannot blame them for using jQuery.

    • Truth

      “A codes”? Fuck off.

  • http://www.kieru.com Rob

    Here is why I love jQuery. A JavaScript novice can achieve amazing results with jQuery either via the documentation, numerous jQuery-related tutorials, or innumerable jQuery plugins. He or she can do this relatively painlessly and relatively quickly as compared to their having to work with ‘raw’ JavaScript.

    A JavaScript expert can work with jQuery just as well. He or she can extend the existing jQuery API and make it do amazing things. They can develop the plugins that help to make jQuery the sort of framework that people look at and go “Wow. I want that effect in my next design”.

    I don’t understand this need to naysay the use of tools. I personally do not rely on any sort of code editor like Coda or Dreamweaver. I will never recommend these tools to any colleague because I feel that a simple syntax highlighting editor with line numbers is more that sufficient. But it’s not like I sit here demeaning those who find these tools useful.

  • http://www.cretanvillas.com Tom Mein

    This discussion reminds me of youngsters who love band XYZ until the moment that they are discovered, become mainstream and suddenly the band XYZ are “crap”

  • Allen Tong

    I almost feel like your post aims to troll us :) Actually, I felt like JQuery always been a designer’s language since it takes away much of the difficulty of JS and helps people get straight to the goal that they’ve imagined and drawn straight from the sketchboard. And I felt Prototype is much better of a framework for people who just think more logically rather than design-like, but regardless they are both great frameworks to use.

    I’m in the middle since I always felt that there was a medium between the programmers and the designers. I feel as if these frameworks allowed a creation of new job the “Front-end Developers”. Nevertheless, great post, Jeffrey. Someone had to do it.

    • http://www.jeffrey-way.com Jeffrey Way
      Author

      Troll?

      • Allen Tong

        Just a random joke. Don’t worry about it. This post stirred some mixed feelings. =]

      • Troll

        Troll a goll goll.

  • http://www.payrollpdq.com charlie

    I really like your article and it’s 100% correct and well done. JS, CSS, HTML5 and JQuery are all the next big hit for web development, regardless of criticism. Yes, there will be a bunch of bad code but I’ve seen quite a bit of “entangled” code written in C#.

    My first program, at the U. of Maryland in Oct. 1970 was 250 punch cards long. When I received it back from the data center there were over 600 “errors”. I asked the guy who handed me the printout “how can you have a program that is 250 lines long create 600 errors?” he looked at me with some intensity and then made a face like I was a moron. I immediately grabbed him by his T-shirt and started to pull him across the counter top but he quickly escaped by slipping out and I ended up with an empty shirt that I balled up and through back at him. My intent was to use him as a human paper shredder to dispose of a few sheets of computer paper. When I pointed at him and told him I would be back he made that same face again (college is such a great place). As I was walking away, smiling at my own stupidity, I decided that I was going to make sure the next datacenter submission would be perfect. Although it took several more submissions (at a now extremely obnoxious datacenter) I obtained my goal and later became a tutor for other classmates.

    The point being: there have been obnoxious geeks since the inception of computer programming but they have never been the ones who lead the way to the next level of success. They simply live in their own “perfect worlds” and scorn at the “morons” who move everything forward, using their tangled, moronic coding styles, to satisfy the needs of our global marketplace! (and make millions of users very happy while doing so).

    Don’t listen to the nay-sayers, stand your ground (verbally), move forward and refactor often!!! :-) I’m looking forward to writing some awful code that will make some users very happy! Eventually I will learn to write MVC based JS using elegant prose! “So, how about them apples!” :-)

    Cheers
    (BTW: the obnoxious geek and I later became tolerant of each other and would laugh about the event over a coke and potato chips! :-)

    • andyrwebman

      You say “JS, CSS, HTML5 and JQuery are all the next big hit for web development”.

      I feel sad that people regard jQuery as anything other than a handy library to get around some difficult cross browser compatability issues – i.e. they regard it as something ace, fantastic, exactly how they would design it from the ground up.

      If we are able to add something new like HTML5, why can’t we create a new standard for a proper cross browser OO language, with syntax like C# or VB.NET and proper class inheritance etc? jQuery is useful, but it is a distraction from the proper job that should be done..

  • http://www.lukegerhardt.com/ Luke G.

    @Jeffrey

    I really enjoyed reading this post! I feel like you made an excellent defense of the use of jQuery. I’ve experimented with JavaScript quite a bit in past projects, and I’ve dealt with jQuery only once in passing, but you’ve convinced me to take a deeper look at this versatile tool!

    @Ben

    “The fact is that it is impossible to know everything.”
    “Even something perfect today would be out of date or need an upgrade in the next month.”

    Exactly. Our knowledge can never be complete as we are essentially chasing an ever-moving target. So, we eventually reach points where we have to defer to the use of things beyond our current scope of understanding (such as development tools made and well-tested by others). That’s not a failure on our part…it’s humbly acknowledging our lack of omniscience. In my opinion that is a strength.

  • Michael Hayden

    Calling someone ignorant in and of itself is very disrespectful and is unacceptable behavior. It creates division and can in extreme situations create a dangerous environment for collaborative development.

    The main issue with JQuery is that it doesn’t force the average Javascript developer to understand OOP development fundamentals. So an average JQuery programmer might not be able to leverage those skills to program in other languages that use Classes, inheritance, encapsilation, etc.

    Inherting people’s JQuery programming is usually made dificult by the lack of organization in folder/file structure and the code itself.

    • andyrwebman

      The other sad thing is that several decades into the web we don’t have a language with decent OO syntax and easy class declaration like C# or Vb.net. Classes in Javascript are really a cobbled together afterthought.

      • muuse

        Classes are just syntactic sugar over the basic OO model. You should take a look at CoffeeScript, it makes it much easier to write clear, concise code.

  • David

    I learned JavaScript first and only in one week by reading the JavaScript Bible (back in 1999). The thing about JavaScript is that alone, you are limited with what you can do; you also need to learn CSS. Yes, you can do an awful lot in JavaScript, but the thing that many programmers want to use it for is for a richer client experience, and that’s where CSS comes in. Then you go into AJAX and if the return data is XML, now you need to know XML and probably XPath.

    I certainly think it’s a mistake to learn a framework before the language. I would not understand what the framework is doing if I first didn’t understand the language.

    Personally, I’m an ExtJS guy. It gives me all I need in one framework: UI widgets, validation, AJAX, event handling, etc. I know jQuery has a bunch of plug-ins, but I prefer the comprehensive nature of ExtJS.

  • http://www.Sklinar.co.uk Stu Sklinar

    Its all about the right tools for the job!

    For instance jquery provides a lot of cross browser code!

    Or if targetting a specific browser (for instance we wrote an ipad app with a native wrapper…)maybe try to not use it so much, use document.getElementsBySelector() (think thats it..) instead sure a bit more legwork, but better performance, again it’s all about the right tools…..

    But as for new users, they should use it, its a framework. we all use ruby,php,C# etc… isn’t this argument the same as saying why don’t we all write websites in assembly?!

  • Too Many Stacks

    jquery = javascript. The End. Now get back to work.

    • Chinese

      Disagreed.