43

UPDATE - A comprehensive comparison, updated as of February 2015, can be found here:

Alternatives to Ext JS


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).

Community
  • 1
  • 1
Mamut
  • 1,040
  • 2
  • 12
  • 23
  • Note that I think this question was asked previously, but I can't find the link now and I'm going to recommend to other users that we keep this version open, since it has a much clearer presentation of the issue. – Joel Coehoorn Oct 20 '08 at 15:05
  • 1
    Also, to the OP: this should probably be a community wiki question. – Joel Coehoorn Oct 20 '08 at 15:06
  • FWIW, I wanted to point out that my experience with ExtJS has been nothing but negative. Documentation had too many holes, and when you do things that are not really close to the examples, it is frustrating. It also doesn't play nice when you are using another JS library (legacy code) also. – Pistos Oct 20 '08 at 15:23
  • The question was about an alternative to Ext.js, [1][1] [1]: http://stackoverflow.com/questions/200284/what-are-alternatives-to-extjs – Mamut Oct 20 '08 at 19:31
  • This question has been asked multiple times. I agree it's nicely presented, but for the love of dog, can't we just have this info in 1 place??? – Andrew Hedges Oct 20 '08 at 19:44
  • It would be interesting to see what people think now, almost 3 years after the original posting, my opinion is that jQuery and jQuery UI are the most widely known (whether they are the best is another matter). – jamiebarrow Aug 22 '11 at 15:17
  • Indeed. I don't know if it would be wise to start another post like this one :) – Mamut Aug 26 '11 at 12:11

8 Answers8

41

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:

  1. I want to pimp up my page with some really "cool" features. Go for JavaScript library.

    • jQuery
    • ZenoUI
    • old: Prototype, Mootools
  2. 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.

    • DHTMLX
    • Dojo
    • YUI
    • Qooxdoo
    • jQuery UI
    • Bindows - generates the exact look of Windows
    • Spry (raw, suffers severely of memory leaks)
  3. 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.

For a more detailed comparison, see the alternatives to ExtJS.

Community
  • 1
  • 1
Sergey Ilinsky
  • 31,255
  • 9
  • 54
  • 56
  • I am pretty much purist, so please do not feel offended if this high-level split does not reflect your vision. – Sergey Ilinsky Oct 20 '08 at 15:24
  • Excellent point! I have mostly used MooTools (and really like it) and thought it to be on the 2nd category. Now I am even more likely to take a look on others, likely JQuery, which has been in the spotlights lately.. – schonarth Oct 20 '08 at 18:56
  • Excellent, I'll put a link to your comment in the question! – Mamut Oct 20 '08 at 19:35
4

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.

muhuk
  • 15,777
  • 9
  • 59
  • 98
3

A lot of people on StackOverflow use jQuery, so answers will likely be biased in that direction. Additionally, jQuery will ship with ASP.Net MVC, making it the natural choice for developers using the Microsoft platform.

Joel Coehoorn
  • 399,467
  • 113
  • 570
  • 794
  • 6
    The reason a lot of people on SO use jQuery is that... a lot of people use jQuery! – Andrew Hedges Oct 20 '08 at 19:47
  • That's right. It's called 'developer traction', and it is important. It speaks to whether or not the product will continue to get support in the long term and whether or not you'll be able to find help for that product via Google or places like StackOverflow. – Joel Coehoorn Oct 20 '08 at 20:58
3

The YUI code is well organized, well commented and easy to read. As with most of these projects, one tends to feel that the engineers working on them have too much time on their hands.

In a big project, simple, readable code that is flat and easy to adapt is much more powerful than gee whizbang widgets. I can figure out the candy for myself as needed. Debugging JS is hard enough without having to wade through reams of clever code.

Ishmael
  • 30,970
  • 4
  • 37
  • 49
  • I agree, and suggest you to check *BBC Glow*. Other libraries praise for bells and whistles. Glow annoncement is about cross browser support. They wrote a clear statement about their goals, and there is also a browsers' support table: http://www.bbc.co.uk/guidelines/futuremedia/technical/browser_support.shtml – Massimo Nov 26 '11 at 23:23
2

I think it's safe to say that jQuery has become the most popular javascript framework of late (check out the 4th slide of this State of jQuery '08 presentation).

My company uses mootools, which I like, seems very similiar to prototype and jQuery (which I haven't used), the UI elements are pretty neat as well.

matt b
  • 138,234
  • 66
  • 282
  • 345
2

Dojo pros are IMO the following: 1. Provides a simple DOM query functionality, like jQuery, ex:

dojo.query(".disableAble").style("backgroundColor","gray");

  1. Have really smart loader, which can pull in all classes at once, incrementally or at your own choosing. Also correlates with the build system where you pick your menu and compress, inline, et.c.

  2. In my opinion the most important thing; A full client-side hierarchical widget system that is super-easy to extend, with support for DTL client side templates. Forces you to modularize your code and utilizes Dojo's own build and load system for custom widgets as well.

  3. Almost all things that people write for Dojo become part of the 'official' build, under the dojox (experimental) folder. Many other toolkits have a lot of variants of the same widget making it hard for users to choose the right one.

Cheers, PS http://unclescript.blogspot.com

1

Dojo CON, IMHO is the appalling state of the documentation. Most is out-of-date, will often tell you features don't work which have since been corrected, of fail to alert you that features don't work.

I'm having to use it on a real-world project, learning as I fly, and it truly is a nightmare.

Rob G
  • 11
  • 1
0

Rialto (Rich Internet Application Toolkit) is ajax-based cross browser javascript widgets library. Because it is technology agnostic it can be encapsulated in JSP, JSF, .Net, Python or PHP graphic components. The purpose of Rialto is to ease the access to rich internet application development to corporate developers. Ideally a Rialto developer have neither need to write or understand DHTML, Ajax or DOM code.

The target of Rialto is corporate web applications and not internet web sites.

prinzdezibel
  • 11,029
  • 17
  • 55
  • 62