jQuery FTW

In August 2006, I began working at ColdSpark, Inc. as a Senior Web Engineer. One of my immediate charges was to choose a new UI framework and supporting set of JavaScript libraries to build a new management and monitoring console for the SparkEngine product suite. After careful investigation of the options available (including an empirical analysis of benefits) I chose jQuery, which had just announced their 1.0 release but seemed a more promising option than the alternatives. Boy, was I right.

As I reflect on over 7 years of JavaScript development with jQuery, I’ve come to count on it for a number of reasons:

  • Writing jQuery selectors has become second nature.
  • Upgrading jQuery has been relatively painless, even through the 2.0 release.
  • The quantity and quality of third party plugins is second to none.

On the topic of plugins, here are some of my favorites:

  • Select2 makes multiple select form controls easier to use. I had initially implemented Chosen but moved to Select2 when it came to implement the programmatic addition of options. A solid drop-in replacement for Chosen.
  • HTML5 Shiv is the defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer, as well as default HTML5 styling in Internet Explorer 6 – 9, Safari 4.x (and iPhone 3.x), and Firefox 3.x. Drop it in and get on with modern web development.
  • jQuery.validity is a full-featured client-side form validation library that is easily extensible. The only drawback I can think of is a less-than-perfect integration with Twitter Bootstrap.
  • Mousetrap is great for adding keyboard bindings for power users to your web app. I love the keyboard shortcuts in JIRA

Here’s some other plugins that I ended up using on recent projects, but had a more love/hate relationship:

  • Datatables is useful for adding incremental improvements to HTML tables. It comes with a dizzying array of options and additional plugins to enhance functionality. Properly fetching server-based data requires a large number of query parameters that we didn’t have the energy to integrate into our API, so we rendered the HTML table ourselves and used Datatables to decorate it. On the severe minus side, we were constantly plagued by rendering problems in IE that required far too much attention from our development and QA teams.
  • Bootstrap Confirmation is nice for showing docked confirmation dialogues. On the plus side, it’s typical of many jQuery plugins – solves a simple problem elegantly with a good set of examples and documentation. On the other hand, I’m not 100% convinced it’s the right way to go from a usability standpoint, JSHint throws a lot of warnings, and the plugin author doesn’t tag releases.
  • jqPlot is a charting library for jQuery. A good set of base functionality, but is not under active development.
  • jQuery Notice is a Growl-like plugin for displaying notifications. Too bad it’s no longer actively maintained.
  • I started with the Bootstrap Application Wizard but ended up making significant modifications for maintainability.

Overall, I’ve been very pleased with jQuery and the community that has grown around it. Here’s to many more.

Leave a Reply