Click to see

Home Tutorials JavaScript Links
Keep an Open Eye ThePhotoFinishes Takethe5th PixofCanada Bookraft
©Imagenation 2001-2009 - If you found this page or site useful, please let others know


Sidebar 1
Too Many JS Frameworks

Our survey of AJAX frameworks lists only 11 of what is really nearly 100 various JavaScript and AJAX frameworks. Now there is one main benefit to all these JavaScript frameworks and libraries - the rate of innovation for AJAX + JavaScript is very high. The downside is twofold.

First, the question of choice of which AJAX/JS framework to use is non trivial. Given that in 5 years time many of the frameworks will have merged, waned or vanished is no small concern. The second issue is what to do when cross framework integration is required. let me assure readers this is no small problem. Fortunately, EXT.js having grown up as an extension for YUI library first (and later the prototype and jQuery frameworks ) has the advantage that it has compatibility and now built in adapters to work with these popular frameworks from the get go. So do plan to consider integration when deciding on the AJAX framework you want to work with.

EXT is a framework with remarkable integration

EXT is a JavaScript framework that has profited from its YUI (Yahoo User Interface library) origins in the past two years as it delivers remarkably strong integration across its many JavaScript UI components. But EXT.js is not

just UI oriented as it has strong support for database connections, Web Service, AJAX integration plus support for Adobe AIR. But as you can see from the screenshot above EXT.js does cover the full range of Web widgets. If you go to the demo page here you will see that EXT.js provides a number of variations on each of its widgets for greater flexibility when using the EXT.js framework.

Even better, EXT.js has several integration features. First, the various EXT.js widgets work well among themselves and rarely have namespace conflicts or clash. This is no small matters as unfortunately the same cannot be said for some versions of other frameworks. The second integration feature is one that some Web developers will really appreciate - EXT.js provides adapters for working with such popular JavaScript frameworks as jQuery, prototype, Scriptaculous and YUI.

Third integration feature is on the backend where EXT.js extensions and/or tools are provided for working with such Web resources as:

Adobe AIR - built in adapters for AIR in EXT.js core library
Cold Fusion - has ColdFire, CFJSON and other links
Delphi/Pascal - has EXTPascal wrapper
Java - there is EXT.GWT and other resources
Lotus Notes - EXT.nd and other interfaces
.NET - 3 libraries for interfacing
PHP, Perl, and Python - JSON and other interfaces to Django(Python)
Ruby on Rails - JSON + XML support plus plugin

In sum the direct integration to other backend Web resources goes well beyond EXT.js's built in support for JSON and other data connections. And in general, for a new framework, EXT.js sports top notch integration capabilities.

The Demos

EXT.js has a Getting Started FAQ, tutorial wiki , another public support wiki - all to help users get up to speed pretty quickly. Third party tools such as Dreamweaver, Aptana Studio, Komodo, and Spket provide tools with coding hints and other coding support for EXT.js. But again, let me recommend that users tryout EXT.js's excellent demo pages directly online - they provide
The screenshot above shows a Windows XP like desktop created in less than 500 lines of code in addition to the core EXT JavaScript libraries. This desktop framework is very responsive and a good starting point for developing a Web 2.0 application. The desktop has icons, app window docking bar, a Start menu with flyout menus just as in Windows XP.So the learning curve for your application is small.The demo version comes with Accordion, Tab , Grid, and basic Windows. And it is simple to add drag and drop forms and tree components. This demo formed the inspiration for our latest update to theOpenSourcery interface - see our adoption of the Desktop here. It adds some nifty bells and whistles and has been used as a proof of the speed and robustness of the EXT.js framework. And so far, EXT.js has passed most of our tests with flying colors.

So lets consider in detail why Web 2 developers might want to use EXT.js. The following is the criteria by which each of the JavaScript Frameworks will be assessed.

EXT JavaScript Framework
licensing open source dual licensing
browser support FireFox 1.5+, Google Chrome 1+, IE6+, Opera 9+, Safari 3+
documentation good demo set of sample apps; complete API documents
IDE 3rd party with Intellisense, templates and code completion
extensions 3rd party contributions, no plugin API
local store JSON, XML, database
remote store XMLHttpRequest, Web Service request, REST
GUI Components

Accordion
Combo+Radio - 2 versions
Drag and Drop - 2 versions
Forms - 2 version
Grid - 9 versions
Hints+Quick tips
Layout Managers+Panels - 5 versions
Localization - dynamic, static
Menus+toolbars - 2 versions
Progress bar
Slider
Spotlight
Status bar - 2 versions
Tabs - 2 versions
Themes and templates
Trees - 3 versions
Windows - 3 versions

Support 4 levels: $299/year to $4999/year


As you can see from the table (and if you have tried the demos), EXT.js has some attractive features. Sufficiently intersect enough so I wrote a trial version for the new theOpenSourcery entry page in about 2 weeks as a test of competence. I found the GUI features to be complete and relatively easy to use. There is no visual layout+debugger IDE like in the case of Tibco's general Interface. So users have to test often because the use of advanced JavaScript such as functions as variables, Object arrays, and so forth makes EXT.js routines brittle - one misplaced comma, bracket or brace often causes the whole page to lock up or fail.

But EXT.js supplies a number of tips on debugging and has great demos, API documentation and other help. Perhaps the biggest help is the robustness of the routines themselves - they generally deliver their functionality no matter where nested or embedded in your JavaScripts.

Summary

EXT.js is a relatively new AJAX JavaScript framework that appears to be gaining favor based on:
1)completeness of its GUI and backend features;
2)the range of integrations with other frameworks and backend server tools;
3)the robustness of its routines for reliability and speed of operation.
The downsides to EXT.js is the relative brittleness of the routines(especially if users misplace a comma or bracket - use JSlint), lack of direct charting and graphics support, a still primitive theme or templating system. Also users will have to develop with EXT.js own debugger or Firefox's Firebug to get beyond some of the otherwise fine editors for EXT.js in Aptana, Komodo, Spket. In sum, try EXT.js - I did and I like it so far - but I have a portal and feed reader I want to do ...