Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There are over 100,000 questions on Stack Overflow tagged as questions relating to JQuery troubleshooting/usage. Compare this to the 124,000 questions on stack overflow that are tagged for JavaScript issues. We are very close to almost half of all JavaScript related questions on Stack Overflow being attributed to JQuery (plus or minus any margin for the few other JS frameworks that get questions on SO).

What I'm getting at is, jQuery is not a language and it is not the be all and end all of frameworks that must be applied to every scenario in which JavaScript is present, yet it is quickly catching (and I predict will soon eclipse) JavaScript as a source of discussion/inquiry on sites like Stack Overflow.

Is jQuery killing the JavaScript star? Is there no longer a firm grasp by the next generation of web developers regarding the power, simplicity and use of JavaScript as a means for DOM manipulation? Is this just the natural evolution of things and the viewpoint I'm presenting typical of the coder's ego (i.e., is this how assembly programmers view the .NET/Java/Web crowd?) or is this really the beginning of the end of the true JavaScript developer?

share|improve this question

closed as not constructive by Jarrod Roberson, Mark Trapp Aug 16 '11 at 5:40

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

6  
Hi Brian. This question sounds pretty argumentative and invites discussion. These kinds of questions are discouraged on Stack Exchange. Are there any edits you can make to make it less discussion-oriented? Thanks. –  Anna Lear Aug 15 '11 at 17:04
2  
@Anna Lear - My appologies - I interpreted the FAQ on StackOverflow as direction to post the question here: •Expert programmers interested in professional discussions on software development, ask on Programmers. -- I certainly don't want to contribute to useless chatter and will understand if the question is removed. I thought this was the forum for a more theoretical debate. –  Brian Aug 15 '11 at 17:17
3  
I'd also love to know why my question is argumentative and invites discussion (therefore, inappropriate), yet "do you think that cin and cout have the arrows the wrong way around?" is okay? programmers.stackexchange.com/questions/101234/…. It appears to me that this would indeed be a forum for intellectual debate on software development, not just finite Q&A. - just sayin... –  Brian Aug 15 '11 at 17:22
2  
I think our FAQ captures/communicates the spirit pretty well. –  Anna Lear Aug 15 '11 at 17:26
3  
The suggestion, very strongly implicit in the question, that the current generation uses JQuery because they're not as good at JavaScript as the previous one, is the obvious thing to point to in answer to your question as to why this is argumentative. (FWIW I remember the pre-JQuery days, and DOM manipulation was anything but simple if you wanted it to work cross-browser). –  Peter Taylor Aug 15 '11 at 18:48
show 8 more comments

4 Answers

up vote 1 down vote accepted

You could certainly make that argument that jQuery killed javascript discussion, and this trend graph would support it: http://www.google.com/trends?q=jquery%2C+javascript

Its pretty easy to observe this on your message board of choice as well. Anytime a "how do you do xxx in javascript?" question gets asked, you can almost bet that the answers are going to be in the format of "use jQuery and just do yyy".

I'd say its more accurate to say that now its more common to discuss javascript in terms of higher level frameworks (whether this is something like a jQuery/prototype or knockout/backbone or node.js or ...)

share|improve this answer
3  
The just use jQuery and do yyy answers incur an automatic downvote from me for non-jQuery tagged SO questions. –  Michael Aug 15 '11 at 20:56
    
@kekekela - perhaps the most ingenius backing to either side of the argument. I'd have resigned the counterpoint immediately had the trend lines been reversed. At least I know from the replies that there are a multitude of talented and intelligent people supplementing their code with jQuery, not basing their every online on it. –  Brian Aug 15 '11 at 22:41
3  
@StuperUser Remember that the few lines of code saved are a convenience to you the developer, while the 90kb is a penalty to your end users. Of course jQuery's place is with a lot of DOM manipulation or events as you say, but $(foo) becomes the default SO answer to simple tasks like how do I get all the <img> on a page. The penalty to end users is undue. –  Michael Aug 16 '11 at 12:58
1  
@Michael, I agree. Each time a few lines of code are saved across an entire application, they have to be maintained, developers skilled enough to use JS properly will have to be employed/trained, it can add up to a lot of time/money across the lifecycle. With high download speeds and browser caching, a lot more than 90kb can be saved. I understand you know when to use it and when not to, let's just hope more users qualify their answers rather than default to $('selector') and expecting upvotes. –  StuperUser Aug 16 '11 at 13:27
1  
@StuperUser +1 So pleased when an Internet disagreement, when explained, turns into agreement rather than argument. –  Michael Aug 16 '11 at 13:35
show 2 more comments
  1. No, jQuery does not kill JavaScript, rather it unfolds the language.
  2. There's Nodejs, that uses Javascript as cli or for server-side scripting.

About jQuery. I was programming with DOM APIs since 2001 and can assure you that a simple and well-tested DOM API like jQuery lets you work more on the real problem rather than on the API.

I also manipulated DOM in raw Javascript in 2005, and most of the time I spent making it work cross-browser.

Before jQuery, lots of us were spending time on fixing the browser differences and bugs, independently and with little code sharing. We repeated the same work and the same mistakes over and over. jQuery relieved us of this duty. Nowadays, with plenty of jQuery plugins, I work mostly on my problem field, but also can do much more complicated manipulations of the document. Only liberated from DOM headaches I could learn the real power of closures and the JS event loop (must see for any js programmer!)

Most Javascript programmers use jQuery to manipulate the DOM, hence most questions regard this area and jQuery.

There are alternatives to jQuery:

  • Prototype, it has many entry points (which is confusing), and contains time bombs (It adds some methods to the built-in objects, but only those that aren't in the objects yet. When browser developers implement them in the near future, the objects will change behavior and many sites will stop working. The developers will have to urgently fix their websites.)
  • RightJS (can't say anything, but seems to have a nice API)

Node.js is a rapidly developing environment, and in a couple of years it may become mainstream server language. My impressions of it is that yet there lack a lot of features that could make the language look more elegant. Right now it takes a lot of effort to organize your code. Can't say if it's fixable with a framework like jQuery or only with a new language version, but be sure this will be addressed by someone, there's enough momentum around Node.js and JS in general.

share|improve this answer
    
thanks for your answer. I would have to submit though that you touched on part of what I view as one of the many myths of JQuery. There are over 5000 questions on StackOverflow for "JQuery firefox" and 5000+ more for "JQuery chrome". Over 3k for "JQuery IE". While I agree with your overall perspective here, I think part of what makes me wonder if JQuery corupts the talent pool is shere volume of folks amazed to find that something doesn't work on one browser that does on another - and they have no idea how to start troubleshooting it. +1 for your answer though. –  Brian Aug 15 '11 at 17:47
    
I had issues with some plugins not working with some browsers or just as expected (like livequery that doesn't understand chains of filters). I loaded the full version of jQuery and debugged it. –  culebrón Aug 15 '11 at 17:53
    
@Brian - I would argue that that's more to do with the fact that many of the people asking those questions don't realize what it actually takes to get anything working cross-browser. You'll also find a large number of HTML or CSS stuff that are also about some piece not working cross browser. Many of those questioners didn't even know the browsers had developer tools for troubleshooting a given browser-based issue. –  Shauna Aug 15 '11 at 19:28
add comment

I'd view it as being closer to the standard library in C++ than to the .Net/Assembly analogy. Or even better, .Net and C#. There is nothing in the C# spec that states that you have to use .Net, but it's tied rather closely together. But anyway, as to your question, most web developers don't care about JavaScript.

In fact, I'd argue that the DOM manipulation part of JavaScript is fairly terrible (especially considering various browsers made it a pain to get stuff to work everywhere). I don't think you could have put something else in there and received a better result, but for years it was a point of frustration (once again usually due to browser makers). Most people would just hack something together prior to jQuery and call it a day (and would proclaim themselves "experts" much of the time). jQuery simply takes the parts that no one liked and puts a nicer face on it. Since that's the main use of JS for now (DOM manipulation), you'll see jQuery pop up more and more (or some other framework like Prototype, etc.). Just so you're aware I don't think the average web developer was a great JS developer prior to jQuery. I think with or without it people aren't going to learn the language (not to a point where they actually know the language anyway).

That being said, JavaScript is doing well as a language. Node.js is a good example of it picking up use as an actual language. I've even looked into using it as an embedded scripting language in some of my apps (lost out to LUA, but only because LUA took less time to set up).

share|improve this answer
add comment

Jquery abstracts away the most annoying and boring tasks of developing a javascript for a web site. Traversing the DOM is repeatable task that requires a lot manual labor with very little benefits from doing it the hard way. The only cases where I don't use jQuery nowadays are the mobile versions of the sites - you just cannot afford one more request and 100k there. Same is with ajax loading.

Also jQuery makes quasi functional programming seem like fun. It introduces the concept of function as a first class object really intuitively to developers. Throw some eye candy effects and some very good plugins - its quite impressive little tool that is perfectly suitable for the task.

Standard javascript - > Jquery for me felt like in migrating from C++ and mfc to winforms and C#.

share|improve this answer
    
For the record, I like this answer best. It is honest and it gives me hope that jQuery is being used appropriately by some in the world - as an extension, and not a free one (+1 for accounting for the js download on mobile). I'm marking kekekela as correct though based on citing statistics - even though 3% of all statistics are made up anyways. –  Brian Aug 15 '11 at 22:40
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.