UPDATE - A comprehensive comparison, updated as of February 2015, can be found here:
2008 question:
There are a number of great and not so-great Javascript GUI frameworks out there. I've looked at some (only superficially). And I can't make my mind about any of them
Scroll to the end of this question to see what others say
Ext.js The obvious choice by many since it's one of the most known frameworks.
Advantages: Looks awesome, large community, lots of extensions/plugins, GPL'ed
Disadvanatges: Inability to use third-party extensions with commercial license (and some of those extensions have killer features)
Backbase Relatively less known. A curious mix of XML and Javascript that is reminiscent of XUL. However, it's already cross-browser
Advantages: Looks good, very extensible, allows easy incorporation of some really neat stuff
Disadvantages: Pricing is steep and CPU-bound (though free to use on up to 2 CPUs), forums are slow to respond (though commercial support is supposedly fast)
qooxdoo Also very popular.
Advantages: Please, fill in
Disadvantages: Code is slighly messy (based on hearsay)
YUI Fill in description
Advantages: Well organized code
Disadvantages: Many widgets still in beta
Dojo Fill in description
Advantages: Incremental loading of classes
Disadvantages: MIght feel bloated
jQuery UI
Advantages: Widgets not dependent on each other
Disadvantages: In an early stage of development, very few widgets
Possible tendency towards wider acception: jQuery to be shipped with ASP.NET MVC
What say you? What do you use and why? What would you rather use and why? In any kind of project
To be updated with your input...
See this excellent comment from Sergey Ilinsky which explains very nicely which framework you should choose when you want to just pimp up your page, build an application with a rich frontend (with several choices, no less)
An interesting comment in another thread compares jQuery, Dojo, Prototype, Mootools, Sproutcore and Cappuccino (the question was removed).
But it isn't supported uniformly across all browsers. With typed arrays, JS code can access and modify raw binary data. Along with modern browsers, this feature is only supported by IE10 and above. Did you know, how to test your website on the latest IE versions?
On the web browser menu click on the "Edit" and select "Preferences". In the "Preferences" window select the "Security" tab. In the "Security" tab section "Web content" mark the "Enable JavaScript" checkbox. Click on the "Reload the current page" button of the web browser to refresh the page.
These days, most cross-browser JavaScript problems are seen: When poor-quality browser-sniffing code, feature-detection code, and vendor prefix usage block browsers from running code they could otherwise use just fine. When developers make use of new/nascent JavaScript features, modern Web APIs, etc.)
When considering a JavaScript library/framework for usage you should first define on your goals. I used to separate all JavaScript libraries/frameworks into three categories by their purpose and architecture:
I want to pimp up my page with some really "cool" features. Go for JavaScript library.
I want to build an application with a rich front-end. I like defining UI with JavaScript and I do not mind much using custom APIs of these libraries for coding my application logic. Go for JavaScript post-library/pre-framework.
I want to build an application with a rich front-end. I like defining UI in XML and I would like to code my application logic against standard APIs and make use of other developer-facing standard-based technologies. Go for JavaScript framework.
On the contrary I find qooxdoo syntax and code organization very clear. It is much like swing or gtk. I have tried Dojo as well, without much success. My no.1 choice for RIAs is qooxdoo. It is rich, coder-friendly, free and well documented.
My choice for any other (browser based) JavaScript work is jQuery. Although other libraries (prototype, mochikit etc) are all useful, jQuery is the hype now. Having an active (and big) community counts.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With