jQuery is a well-written JavaScript library that simplifies many front-end tasks. In addition to being among the most deployed libraries, it's also becoming the beginners' choice in the realm of web design.
We looked at the reasons behind jQuery's growing popularity and discovered a disturbing trend: a web designer can "become" a full-fledged web developer thanks to the combined force of jQuery and Wordpress. The widening gap between designers and programmers will eventually drain the supply of all-around web developers. In a world where web-based applications are ubiquitous, the absence of proper builders is devastating.
To a novice web coder, or a typical graphic designer-turned web developer, the versatility of jQuery is tempting. jQuery's motto "Write Less, Do More" somehow becomes "Learn Less, Do More". The choice of jQuery over plain JavaScript is commonly justified by the claim that the browser differences are too difficult to harness without the assistance of a library.
Realistically speaking, browsers don't have to behave exactly the same for some JavaScript code to behave consistently. However, if you need to rewrite web content or dynamically attach events to a static element via JavaScript, you need a more compliant DOM. jQuery gives you that. In addition to handling browser differences, jQuery is also great at dealing with different ways of writing HTML code.
To a graphic designer who cannot, or does not want to alter HTML code directly, jQuery is a god send. Moreover, the front-end developer focuses on the appearance while the back-end programmer produces the HTML content. Appearance-content separation is not just good practice; it's also a popular excuse for designers to avoid working with HTML code.
The issue with the designers' version of appearance-content separation is that the designers are not just isolating the content. They are also mixing interactive behaviors with the appearance. Point in case, the "class" attribute is often used for both visual styling and a matching pattern to hook jQuery events.
Here's another way to look at jQuery's advantage over plain JavaScript. Picture the web site in construction as an advertising banner with neon lights. The web content is the printed graphics; JavaScript is the neon tubes; jQuery is the neon installation kit that can powerfully alter the content of the banner after fact so that the tubes can be correctly wired up.
Wordpress powered web sites are exactly those mass-produced ad banners. On one hand, Wordpress dynamically generates HTML code that an average designer has no control over. Meanwhile it extends the designers' service offering from simple web skinning to "building" websites that are complete with a content management system. Wordpress offers the perfect scenario of "no control and no need to control", and jQuery compliments this perfectly.
It should be recognized, however, that a cat is always a cat regardless of the tiger makeup you put on it. Time and time again, Wordpress has been stretched into non-blog websites. But there's a limit. Not every web site or web application can be realized by a Wordpress template. A web designer may eventually have to learn to write back-end code. As he gains more control over the generated HTML code, he'll develop less dependency on the compatibility support from jQuery.
Unfortunately this will never happen. To a graphic designer, using jQuery and Wordpress is already enough coding. It's a lot easier to team up with a back-end programmer, who primarily deals with server-side scripts and data plumbing. The back-end programmer is unlikely educated with what kind of HTML arrangement makes the front-end coder's job easier. After all, the designer uses jQuery to handle nearly all possible content. Designers' jQuery dependency is reinforced by back-end coder's HTML ignorance. To make matters worse, back-end programmers have their own arsenal of frameworks that shield them from working with raw HTML directly.
What we get here is a gap between designers and programmers. The mere notion of front- and back-end developer acknowledges this divide. This widening gap is depleting the software industry with all-around web developers. As designers provide near blanket coverage for the "basic website" market, hard-core coders are driven away to more "noble" grounds, ones that may not even be web related.
We keep hearing from today's entrepreneurs and wannapreneurs that they simply cannot find quality programmers for their web projects. The typical start-up setup, which consists of at least a graphic designer, a front-end coder, a back-end programmer and a project manager, tends to consume a lot longer than necessary to deliver a convincing prototype. A long development cycle undermines investors' confidence, especially considering that many teams need to acquire additional talent in order to complete a product.
If jQuery's biggest user base, namely web designers, has not buried innovation itself, it is surely on its way to kill the ability to implement innovative ideas.