views:

147

answers:

7

I noticed most questions related to client-side script on SO are JQuery related and that got me thinking. I'm wondering what the ease of these libraries is doing to actual KNOWLEDGE of JavaScript and the DOM.

So much is done for you that my fear is there is a growing number of web developers that actually know very little about JavaScript besides how to include the JQuery library and use the plug-ins they download. It's the "fast food" approach to software development and, based on nothing more than anecdotal evidence, I think a lot of web "developers" would be in the dark when it comes to client script if they were suddenly unable to use the JQeury library.

My Question: Are these libraries helping or hurting REAL knowledge of client-side scripting?

+3  A: 

jQuery have hurt my knowledge of DOM: I forget this ** DOM as a nightmare.

jQuery will never hurt my knowledge of JavaScript. You can't forget JavaScript after Crockford's texts

valya
I agree that I won't forget JavaScript even if I stick with jQuery - but that's because I learned JavaScript first, and then frameworks on top of it. The thing I worry about is people who jump straight into jQuery without fully understanding the language without it.
philfreo
At some point you still need to know at least a little JavaScript to use jQuery.
Darrell Brogdon
jquery doesn't replace all the javascript, only dom. I still have a room for prototypes, anonymous recursion, etc.
valya
+6  A: 

This is common question in programming.

Libraries and high levels of abstractions, in general, make things that were once difficult, much simpler. This tends to make the number of people who understand low-level internals smaller, but also increases the overall productivity of the industry.

Reed Copsey
I agree why bang your head inventing the wheel when someone else already did, i rather provide value to my customer
almog.ori
+11  A: 

In my opinion jQuery is to DOM as the .NET Framework is to the Win32 API, or GTK+ is to X11 programming. It's another layer on top of the "raw" API. It makes things a lot easier to work with, at the "cost" of abstracting the lower level details. Usually this is OK, but sometimes these details are important. It can help at times to be familiar with the underlying API (I think moreso in the jQuery/DOM case than .NET/Win32), but I wouldn't worry overmuch if someone has to hit a reference site or two before coding a pure DOM solution.

It's also important to recognize the difference between "JavaScript" and "the DOM". The DOM is not part of the JavaScript language; it is merely an API exposed by to the JavaScript engines in the major browsers. So while using jQuery might hinder one's knowledge of the DOM, it won't hurt their knowledge of the JavaScript language itself.

Annabelle
A: 

Why do you care about the "real" knowledge? The end result is all that matters.

If a developer can make a website that loads really fast with a great interface and layout, then he or she is a successful developer. How (s)he did it is irrelevant.

Andreas Bonini
The problem is the leaky abstractions though... http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Skilldrick
I disagree. Not knowing why or how what you did works doesn't necessarily make you a successful developer, it may just make you a lucky hack. Would you trust a mechanic who jiggled a few wires and claimed your car was fixed because it started?
Chuck
Chuck, you are being extreme. Abstraction is the name of the game in Software. It leads to high productivity and focus on problem at hand. Remember, if abstractions are being created it only means there is a section of the fraternity dedicated to the cause, hence it is not as erratic as you are potraying. If I go by your philosophy (of being extreme), we should be coding an OS for a web application as well. As for jQuery, I've seen these guys perpetually working towards optimizing performance and attending to the feature requests.
Kabeer
+1  A: 

I started by learning Javascript as a child - HTML + Javascript was the easiest thing to deploy without having to actually know much about how computers worked. Since then, I feel that I know more about Javascript than I ever would have to.

However, there are very few projects now for which I use Javascript without jQuery. In fact, before I knew about jQuery, I made my own libraries. They weren't great, but they worked, and saved me loads of time and repeated code.

I guess my point is that the Javascript pros would have produced great libraries for themselves, no matter how many n00bs ended up grabbing onto them. Even if we're hurting beginners' knowledge of Javascript (an assertion which I'm not even going to make), jQuery is still definitely a good thing. What it does to beginners is a question of the learning process we offer beginners, rather than the tool itself.

Matchu
+1  A: 

I think that jQuery and its peers are probably greatly increasing general knowledge of Javascript. When I discovered jQuery I went from disliking Javascript and using it as little as possible to thinking it was a wonderful and beautiful language. Indeed, it might now be my favourite language in which to program, and I've learned an awful lot by reading the source code of the jQuery library. I can't believe that my experience is in any way unusual.

Rich
A: 

jquery is the Kareoke of scripting- not only can everyone sing, everyone sings great!

Democracy.

Professionally, you have to know enough about it to maintain it for clients, even if you prefer your own or some other library.

kennebec