If you have anything to do with web development, you probably have heard the term ‘jQuery’ over a million times already. Believe it or not, jQuery has risen to popularity in a short span of time and today it stands as one of the most well-loved and popular entities when it comes to developing for the internet.
In this article, we shall be taking a look at jQuery in detail — its origins, advantages, disadvantages, and anything else that matters.
Origins of jQuery
jQuery was first released in January 2006 at BarCamp NYC by John Resig. Support for AJAX was added the very next month, and jQuery moved to the completely open source MIT license later in May that year. Following that, September 2006 witnessed the release of XML version of the API and the Visual jQuery Magazine.
Twelve months later, in September 2007, a new user interface library greeted jQuery. Things had already started to gain momentum, and exactly a year later, in September 2008 (Wow! September surely seems to be the preferred month for jQuery folks), Microsoft and Nokia announced their support for jQuery. Microsoft has tried to adopt jQuery for use within Visual Studio (so as to integrate it with its ASP.NET AJAX Framework), whereas Nokia has integrated jQuery in the web run-time widget development platform.
2009 was the year that saw jQuery gain wide acceptance and build an outreach platform. The first-ever jQuery podcast and an online summit were accomplished in November, whereas December greeted jQuery with the .net Magazine’s Award for Best Open Source Application. Later, in 2010, a mobile project was announced for jQuery. The next two years saw many new event APIs and re-writing of certain selector engines, and the rest is history!
The foremost advantage of jQuery is that it is not rocket science, in comparison to its alternatives. You can easily add plugins on top of the base library, and this in turn saves a lot of time and efforts (and head aches). In fact, one of the primary reasons why Resig and his team considered the creation of jQuery was to save time — when it comes to development for the web, time matters a lot, and jQuery caters to the shortage of time by being a flexible and nimble solution.
Furthermore, jQuery comes with the MIT License, which ensures that the project enjoys fast and steady growth as there are no legal or licensing hassles to worry about. This in turn has led to the growth of a loyal and broad community, thereby leading to jQuery’s popularity. Bug fixes, patches, updates, support — have no fear, you are in safe hands with the jQuery community!
It is common knowledge that jQuery interacts well with AJAX (else, why would Microsoft bother with it in the first place?). This gives jQuery a distinct advantage over the other complicated alternatives such as the likes of Flash and bare CSS.
In short, to sum it up:
- jQuery is flexible and speedy for development.
- It comes with MIT License and is open source.
- The project is supported by a wonderful community.
- IT HAS PLUGINS!
- Bugs are killed…..er…. fixed pretty quick.
- IT LOVES AJAX!
- In other words: jQuery makes programming a piece of cake (well, sort of).
Unarguably, the biggest drawback with jQuery is its multiple versioning. Even if you run the latest update (and fix the known bugs), you will have to choose either to host your library yourself (and continually update), or, alternatively, load the library from Google. The latter seems plausible, but it can risk incompatibility with your code as and when newer versions are released.
With Microsoft on its side, jQuery surely seems to be winning the battle, especially because the AJAX control toolkit is too bulky for most people. However, if you have chosen jQuery to save time and/or make up for your lesser level of programming knowledge, getting jQuery to play fair with AJAX will give you nightmares. For instance, even minor things such as the differences between GET and POST HTTP can make you need aspirin.
A super-active community provides steady development for jQuery. However, if you yourself are not active enough to match pace with the community, you will definitely miss out on some parts or the other of the rapid process of jQuery development.
jQuery’s biggest attribute is jQuery Spaghetti. Basically, jQuery is a library that aims to help you with DOM and CSS selectors (it does that pretty well, mind you). However, problem arises when people start treating jQuery as a framework for client-side interaction. The outcome? A mammoth .js file, full of callbacks, generic names and of course design changes.
Again, to sum it up:
- You just have to get the version correct, and pray that you keep getting it correct.
- jQuery is easy to accomplish, but not always easy to implement as compared to, say, CSS.
- Even though it is swift, the end product may not always be fast-paced.
- If improperly used as a framework, things can get complicated beyond measure.
jQuery Mobile — Oh, The Goodies!
Before we wind up this article, let’s take a look at jQuery Mobile as well.
Basically, jQuery Mobile is a web framework which is optimized for touch devices. Naturally, such optimization means that it can work with a great deal of devices, ranging from smartphones to tablets. The latest stable build 1.1.1 was released in July this year.
So, does it have any advantages of its own? Of course it does!
- jQuery Mobile is compatible with most major mobile platforms, such as iOS, BlackBerry, Windows Mobile, Symbian and Android.
- Since it is based on jQuery (obviously!), it does not have a difficult learning curve for new developers.
- It supports custom themes.
- It is extremely lightweight and quick (in development mode, the size goes somewhere around 70 KB).
- Let’s mention it again: it is touch-optimized.
- It loves responsive designs, HTML5 and AJAX.
Sounds like the Duke Nukem of mobile web frameworks, right? Indeed, jQuery Mobile has got its own share of awesomeness. However, it isn’t without some minor drawbacks either:
- First up, if you directly import the jQuery Mobile library (alongside its CSS file), it will generate new calls to the server (and possibly slow down the overall functioning of your app).
- The styling of jQuery Mobile has a good deal of rounded corners gradients — what if your design doesn’t have any?
Regarding future plans, by early 2013, jQuery intends to drop support for older versions of IE in order to reduce file size and accomplish performance improvement.
Where is it headed, then? Well, advantages and disadvantages apart, the future surely looks bright for jQuery. It does not have to face an army of haters like Flash, and despite having humble beginnings, today it commands the respect of all and sundry.
Do you use jQuery in your projects? How has your experience been? Feel free to share your thoughts with us in the comments below!
Sufyan bin Uzayr writes for various magazine and blogs, and is the author of "Sufism: A Brief History". He blogs about technology, Linux and open source, mobile, web design and development, typography, and Content Management Systems at Code Carbon. You can learn more about him, follow him on Twitter or friend him on Facebook and Google+.