Tuesday, February 1, 2011

Javascript frameworks explosion

I can't believe how many and how fast JS frameworks are appearing. At the beginning of December I was aware of JQuery, Scriptaculous/Prototype, Dojo, Ext and YUI for mainstream web devel. JQTouch looked the go for iPhone. Sproutcore and Cappucino looked a bit esoteric and seemed to be aimed at full-blown applications in a browser window.

I became aware of the Unify framework in November and was intending to look at it closely during my extended leave over Dec. and Jan. I was also interested in uki.js as an alternative to JQuery.

But it seemed that almost every week in that period I found yet another framework being touted as the best thing since sliced bread.

First I found Coffeescript which is actually an alternative, simplified syntax for Javascript together with a compiler which outputs pure JS. Makes JS really easy to write.

Then as a result of a question on Posterous a whole swag of alternatives were mentioned:
  • Backbone.js (which in turn uses underscore.js) + jQuery or zepto
  • JavaScriptMVC
  • Knockout.js
  • Angular.js
Each of these warrants a decent looksee. Knockout seems to have a lot of fans. Angular seems incredibly simple to me.

Of course there's a few mobile frameworks that need consideration:
  • SenchaTouch (JQTouch rebadged)
  • JQueryMobile
  • Zepto.js
  • xui.js
  • ChocolateChip Mobile
I also saw mention of DHTMLX but have no comment at this stage.

So there appears to be a spectrum of frameworks. At one end are the "app in a web page" frameworks like SproutCore and Cappucino which seem to require large downloads at commencement but then respond almost exactly like a stand-alone app. (A big footprint is not automatically required. uki.js's Mail and Wave demos are very small packages.) In the middle are "a few pages" apps which seems to be the place for Backbone, Knockout and Angular. And then there is the minimalist and/or mobile device end where the framework simply ignores all the baggage web apps have to carry such as IE6 compatibility and takes full advantage of the mobile device browser's handling of HTML5 and CSS3.

The mobile device end of the spectrum is where to aim I think. Eventually all browsers will support HTML5 correctly (maybe even MS will get it right; maybe...). In the meantime there is a huge and ready market for mobile device web apps.

But how does one keep up with this deluge of frameworks? How does one decide which, if any, are a) good quality; b) easy to use; and c) will be around long enough to get some ROI for the effort expended in learning to use the framework? In my years as a developer I've seen so many IT technologies come and go and, perhaps most annoyingly, the best technically is rarely the winner.


Jiang said...

Wow what a great post! Very insightful - just what i needed. I debating whether to use angular (found it in a Google TechTalk video) or some other framework. I wonder why no one has commented yet. Thanks for providing with such helpful information!

Blogger said...

There's a chance you're eligible to receive a Apple iPhone 7.