Comparison of JavaScript frameworks
From Wikipedia, the free encyclopedia Jump to: navigation, search
|  Please help improve this incomplete table by expanding it. Further information might be found on the talk page. (March 2008)

: DHTMLX: Dojo: Echo3: Ext JS: Google Web Toolkit: jQuery: midori: MochiKit: MooTools: Prototype & script. aculo.us1. [1]: Pyjamas: qooxdoo: Rialto Toolkit: Rico: SmartClient & SmartGWT: SweetDEV RIA: YUI: ZK:

Version compared  |  2.6
22 Jul 2010  |  1.5.0
15 Jul 2010  |  3.0.beta8
6 Aug 2009  |  3.1.1
17 Dec 2009  |  1.7.1
Jul 2009  |  1.4.4
11 Nov 2010  |  2010.05
10 May 2010  |  1.4.2
17 Nov 2008  |  1.2.4
19 Oct 2009  |  1.6.1/1.8.3
14 Nov 2009  |  0.5
Mar 2009  |  1.3
8 Dec 2010  |  1.0
30 May 2008  |  2.0
|  SmartClient: 8.0 (beta)
Jul 2010
SmartGWT: 2.3
Aug 2010  |  3.1
9 Jun 2008  |  3.0
29 Sep 2009  |  5.0 RC
29 Sep 2009

Size  |  Variable  |  Variable.
Base size:
28 kB (minified & gzipped),
65 kB (minified),
123 kB (uncompressed)2. [2]  |    |  84–502 kB  |  Variable  |  24 KiB (minified & gzipped),
72 KiB (minified),
155 KiB (uncompressed)  |  9 kB (minified & gzipped),
50 kB (uncompressed)  |  32–200 kB  |  Variable;
7.3–65 KiB (YUI Compressor),3. [3]
101 KiB (uncompressed)4. [4]  |  46–278 kB  |  Variable  |  Variable, starting at 6 kB (gzipped)  |  520 kB  |    |  100–500 kb (gzipped).  |  550 kB  |  Variable; library core is 31 kB  |  Variable

License  |  GPL & Commercial  |  BSD & AFL  |  MPL, LGPL or GPL  |  Depends Commercial & GPL 3.0  |  Apache  |  MIT & GPL  |  MIT  |  MIT & AFL  |  MIT  |  MIT  |  Apache 2 & GPL  |  LGPL & EPL  |  Apache  |  Apache  |  LGPL & Commercial  |  Apache 2  |  BSD  |  LGPL & GPL

Demo  |  Samples Explorer
Demo Apps
|  Feature Explorer  |  Client-Side JavaScript Demo  |  Samples & Demos  |  GWT Examples  |  UI demo  |  midori Documentation  |  Effects Demos  |  Demos  |  Effects Demos and Example Game  |  pyjs.org examples  |  qooxdoo demo  |  Demos  |  Demos  |  SmartClient Showcase
SmartGWT Showcase
SmartGWT EE Showcase  |  Getting Started  |  300 examples, including adv. app example  |  ZkDemo

Features:

: DHTMLX: Dojo: Echo3: Ext JS: Google Web Toolkit: jQuery: midori: MochiKit: MooTools: Prototype & script. aculo.us1. [1]: Pyjamas: qooxdoo: Rialto Toolkit: Rico: SmartClient and SmartGWT: SweetDEV RIA: YUI: ZK:

Feature detection5. [5]: No  |  No6. [6]  |  No  |  No  |  No7. [7]8. [8]  |  Yes9. [9]  |  No10. [10]  |  No11. [11]  |  No12. [12]  |  No13. [13]  |    |  Partial  |  No14. [14]  |  No  |  Partial 15. [15]  |    |  No16. [16]  |  No17. [17]

DOM unextended18. [18]: Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  No  |  No  |  Yes  |  Yes  |  Yes  |  No  |  Yes  |  Yes  |  Yes  |  Yes

XMLHTTPRequest
data retrieval: Yes  |  Yes19. [19]  |    |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes20. [20]  |  Yes  |  Yes  |  Yes  |  No  |  Yes21. [21]  |  Yes  |  Yes  |  Yes  |

JSON data retrieval: Yes  |  Yes22. [22]  |    |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes23. [23]  |  Yes  |  Yes24. [24]  |  Yes  |  No  |  Yes  |  Yes  |  Yes  |  Yes  |

Server push data retrieval:   |  Yes25. [25]  |    |    |  No  |  Yes26. [26]  |    |    |    |    |    |    |    |    |  Yes27. [27]  |    |    |  Yes28. [28]

Other data retrieval: Yes: XML, CSV  |  Yes: XML, HTML, CSV, ATOM29. [29]  |    |  Yes: XML  |  Yes: RPC  |  Yes: XML, HTML  |    |    |  Yes: XML, HTML  |    |    |    |    |    |  Yes: XML, WSDL, RSS, and Java-based SQL, Hibernate, POJO adapters  |    |    |

Drag and drop: Yes  |  Yes30. [30]  |  Yes  |  Yes  |  With plugin31. [31]  |  Yes  |  Yes  |  Yes  |  Yes32. [32]  |  Yes  |  Depends  |  Yes  |  Yes  |  Yes  |  Yes  |  Depends 33. [33]  |  Yes  |  Yes

Simple visual effects: No  |  Yes34. [34]  |    |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes35. [35]  |  Yes  |  Yes  |  Yes  |  No  |  Yes  |  Yes  |  No  |  Yes  |  Yes

Animation /
advanced visual effects: No  |  Yes36. [36]  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes37. [37]  |  Yes38. [38]  |  Yes  |    |  Yes  |  No  |  Yes  |  Yes  |  No  |  Yes  |  Yes

Event handling: Yes  |  Yes39. [39]  |    |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes40. [40]  |  Yes  |  Yes41. [41]  |  Yes  |  Yes  |  Yes  |  Yes  |  Depends42. [42]  |  Yes  |  Yes

Back button support /
history management: No  |  Yes43. [43]  |    |  Yes44. [44]  |  Yes  |  With plugins45. [45]  |  Yes  |    |  With plugin46. [46]  |  Yes  |  Yes47. [47]  |  Yes  |  No  |  Yes  |  Yes  |  No48. [48]  |  Yes  |  Yes

Input form widgets & validation: Yes49. [49]  |  Yes50. [50]  |  Yes  |  Yes  |  Yes, Validation requires plugin51. [51]  |  With plugins52. [52]  |  Yes  |    |  Yes  |  Yes  |  Yes47. [47]  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes

: DHTMLX: Dojo: Echo3: ExtJS: Google Web Toolkit: jQuery: midori: MochiKit: MooTools: Prototype & script. aculo.us1. [1]: Pyjamas: qooxdoo: Rialto Toolkit: Rico: SmartClient and SmartGWT: SweetDEV RIA: YUI: ZK:

Grid: Yes53. [53]  |  Yes54. [54]  |  Yes  |  Yes  |  Yes  |  With plugins55. [55]  |  No  |    |  With plugin56. [56]  |    |  Yes  |  Yes  |  Yes  |  Yes57. [57]  |  Yes  |  Yes  |  Yes58. [58]  |  Yes

Hierarchical Tree: Yes59. [59]  |  Yes60. [60]  |    |  Yes61. [61]  |  Yes  |  With plugins62. [62]  |  No  |    |  With plugins63. [63]  |    |  Yes64. [64]  |  Yes65. [65]  |  Yes  |    |  Yes  |  Yes  |  Yes66. [66]  |  Yes

Rich text editor: Yes67. [67]  |  Yes68. [68]  |  Yes69. [69]  |  Yes70. [70]  |  Yes  |  With plugins71. [71]  |  No  |    |  Yes72. [72]  |    |  Yes  |  Yes  |  No  |  No  |  Yes  |  No  |  Yes  |  Yes

Autocompletion tools: Yes73. [73]  |  Yes74. [74]  |    |  Yes  |  Yes  |  With plugins75. [75]  |  Yes  |    |  With plugin76. [76]  |  Yes  |  Yes  |    |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes

HTML generation tools: No  |  Yes77. [77]  |    |  Yes  |  Yes  |  Yes  |  No  |    |  Yes 78. [78]  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  Yes  |  No  |    |  Yes

Widgets themeable / skinnable: Yes79. [79]  |  Yes80. [80]  |    |  Yes81. [81]  |  Yes 82. [82]  |  Yes83. [83]  |    |    |  Yes  |    |  Yes  |  Yes84. [84]  |    |    |  Yes  |    |  Yes85. [85]  |  Yes

GUI resizable panels and modal dialogs: Yes86. [86]  |  Yes  |    |  Yes  |  Yes  |  With plugins  |    |    |  Yes87. [87]  |    |    |  Yes  |    |    |  Yes  |    |  Yes  |

GUI page layout: Yes88. [88]  |  Yes  |    |  Yes  |  Yes  |  With plugin89. [89]  |    |    |  Yes87. [87]  |    |    |  Yes  |    |    |  Yes  |    |    |

Canvas support:   |  Yes90. [90]  |    |    |    |    |    |    |  Yes91. [91]  |    |  Yes  |  Yes  |    |    |  Yes  |    |    |

Mobile/tablet support (touch events): Yes92. [92]  |  Yes93. [93]  |  No  |    |    |  With plugin94. [94]  |    |    |  With plugin95. [95]  |    |    |  Yes  |    |    |  Yes  |    |  partial96. [96]  |

Accessibility /
graceful degradation 97. [97]: No  |  Yes98. [98]  |    |  No99. [99]  |  Yes 100. [100]  |  Yes  |    |    |    |    |    |  No101. [101]  |    |    |  Degradation: No
Accessibility: Yes  |  No  |  Yes102. [102]  |  Yes

ARIA compliant:   |  Yes103. [103]  |    |    |    |  Yes104. [104]  |    |    |    |    |    |  No  |    |    |  Yes  |  No  |  Yes  |  Yes

Developer tools, Visual design: for DHTMLX Touch105. [105]  |  Yes106. [106]  |  In development107. [107]  |  Yes108. [108]  |  Yes  |  Yes109. [109]110. [110]  |    |    |  Yes111. [111]112. [112]  |    |  No  |  Yes113. [113]  |    |    |  Yes  |  No  |  Yes114. [114]  |  Yes

Offline storage 115. [115]: No  |  No116. [116]  |    |  Via Google Gears or Adobe Air  |  Via Google Gears117. [117]  |  No  |  No  |    |    |    |  Via Pyjamas-Desktop118. [118]  |  Via Google Gears  |  No  |    |  Yes  |  No  |    |  Yes

Cross-browser 2d Vector Graphics119. [119]:   |  Yes120. [120]  |    |    |    |    |    |    |  Yes121. [121]  |    |  Yes  |    |    |    |  Yes  |    |    |

Charting & Dashboard 122. [122]: Yes123. [123]  |  Yes124. [124]  |    |  Yes125. [125]  |    |  With plugin126. [126]  |    |    |    |    |    |    |    |    |  Yes  |    |  Yes127. [127]  |

: DHTMLX: Dojo: Echo3: ExtJS: Google Web Toolkit: jQuery: midori: MochiKit: MooTools: Prototype & script. aculo.us1. [1]: Pyjamas: qooxdoo: Rialto Toolkit: Rico: SmartClient and SmartGWT: SweetDEV RIA: YUI: ZK:

Browser Support:

Internet Explorer: 6+  |  6+  |  6+  |  6+  |  6+  |  6+ 128. [128]  |  6+  |  6  |  6+  |  6+  |  6+  |  6+  |  6+  |  5.5+  |  6+  |  6+  |  6+  |  6+

Mozilla Firefox: 1+  |  3+ 129. [129]  |  1.5+  |  1.5+  |  1+  |  2+ 130. [130]  |  1.5+  |  1.0.7, 1.5b2  |  1.5+  |  1.5+  |  1+  |  2+  |  1.5+  |  1+  |  1+  |    |  3+ 131. [131]  |  2.0+

Safari: 2.0+  |  4 132. [132]  |  3+  |  3+  |  3+  |  3+ 133. [133]  |  2+  |  2.0.2  |  2+  |  2.0.4+  |  2+  |  3+  |    |  2.0.3 134. [134]  |  3+  |  3+  |  4.0  |  3+

Opera: 9+  |  10 135. [135]  |  9+  |  9+  |  9+  |  9+ 136. [136]  |  9+  |  8.5  |  9+  |  9.25+  |  9+  |  9+  |  9+  |    |  9+  |  9.21+, possibly earlier as well  |  10.0+  |  9+

Chrome: 1+  |  3 137. [137]  |  1+  |  3+ 138. [138]  |    |  1+ 139. [139]  |    |    |  1+  |  1+ (starting with 1.6.1RC3)  |    |  2+  |    |    |  1+  |    |    |  2+

List of JavaScript libraries

1. ^ [a] [b] [c] [d] script.aculo.us is an add-on to Prototype.

2. ^ Dojo Base

3. ^ [1]

4. ^ [2]

5. ^ Feature detection is preferred by many to browser sniffing to support future browsers: Browser Detecting (and what to do Instead), Feature Detection: State of the Art Browser Scripting, Browser Feature Detection

6. ^ Integrate of Feature Detection Code

7. ^ GWT implementations for every browser

8. ^ Google Docs (built on GWT) stops working on a Firefox rebranding because of not doing proper Feature Detection

9. ^ jQuery 1.3

10. ^ http://www.midorijs.com/midori.js midori.js

11. ^ http://www.mochikit.com/MochiKit/Style.js MochiKit/Style.js

12. ^ http://mootools.net/download/get/mootools-1.2.3-core-nc.js mootools-1.2.3-core-nc.js

13. ^ Feature detection all the way

14. ^ https://svn.improve.fr/rialto/Rialto-coreV1/rialtoEngine/javascript/rialto.js

15. ^ Author disagrees that feature detection alone is sufficient

16. ^ http://yui.yahooapis.com/3.0.0/build/yui/yui.js yui.js

17. ^ http://zssdemo.zkoss.org/zkau/web/js/zk/zk.js.dsp zk.js

18. ^ kangax (5 April 2010). "What’s wrong with extending the DOM". http://perfectionkills.com/whats-wrong-with-extending-the-dom/. Retrieved 6 April 2010.

19. ^ AJAX and Dojo

20. ^ MooTools Request

21. ^ Inner HTML demo

22. ^ http://docs.dojocampus.org/dojo/data

23. ^ MooTools JSON

24. ^ Pyjamas JSON-RPC Example

25. ^ http://cometd.org/

26. ^ http://cometd.org/documentation/cometd-javascript

27. ^ Real-time Messaging Module

28. ^ http://docs.zkoss.org/wiki/Server_Push_with_a_Stock_Chart_Example#Long_polling

29. ^ http://docs.dojocampus.org/dojox/data

30. ^ http://docs.dojocampus.org/dojo/dnd

31. ^ http://code.google.com/p/gwt-dnd/

32. ^ MooTools Drag.Move Plugin

33. ^ For nodes in treeview only

34. ^ http://docs.dojocampus.org/dojo/fx/

35. ^ MooTools Fx.Tween (Simple CSS Transitions)

36. ^ http://docs.dojocampus.org/dojox/fx/

37. ^ Mochikit.Visual

38. ^ MooTools Fx.Morph (Advanced CSS Transitions)

39. ^ http://docs.dojocampus.org/quickstart/events

40. ^ http://docs.mootools.net/Native/Event#Event MooTools Events

41. ^ Pyjamas demo of onclick event handling

42. ^ No event management between components on client side, server side only for some basic event

43. ^ http://docs.dojocampus.org/dojo/back

44. ^ http://www.sencha.com/products/js/roadmap.php Since v2.2

45. ^ Address, History, jquery History, History/Remote

46. ^ Digitarald's HistoryManager Plugin

47. ^ [a] [b] Pyjamas Kitchen Sink demo

48. ^ Back button support not in the demo, and no documentation about it, or about browser history support

49. ^ dhtmlxForm

50. ^ http://docs.dojocampus.org/dijit/form

51. ^ http://techblog.maydu.eu/?p=7

52. ^ http://docs.jquery.com/Plugins

53. ^ dhtmlxGrid

54. ^ http://docs.dojocampus.org/dojox/grid

55. ^ jqGrid, Ingrid, Flexigrid

56. ^ JxLib Library or phatfusion sortable table plugin or DrasticGrid

57. ^ Live grid

58. ^ YUI DataTable

59. ^ dhtmlxTree

60. ^ http://docs.dojocampus.org/dijit/Tree

61. ^ Tree demos

62. ^ treeview, file_tree_viewer

63. ^ MooTree 2 or JxLib Library

64. ^ http://pyjs.org/examples/kitchensink/output/KitchenSink.html#Trees Tree

65. ^ http://demo.qooxdoo.org/current/demobrowser/ Demo browser

66. ^ http://developer.yahoo.com/yui/treeview/ YUI TreeView

67. ^ dhtmlxEditor

68. ^ http://docs.dojocampus.org/dijit/Editor

69. ^ Echo 3 new features

70. ^ problems with the HTMLEditor creating XHTML vs the HTML it does now

71. ^ markitup, jwysiwyg, htmlbox, WYMeditor

72. ^ MooEditable

73. ^ dhtmlxCombo

74. ^ http://docs.dojocampus.org/dijit/form/ComboBox

75. ^ Autocomplete, Dylans Autocomplete, Yet Another Autocomplete, jQuery plugin for Autocomplete, Jquery Autocomplete, jquery.suggest, Interface Autocompleter

76. ^ Digitarald's Autocompleter Plugin

77. ^ As of Dojo 1.3, the NodeList.addContent() api can be used to create content for example: dojo.query(".note").addContent("h4 NOTE: h4", "before");

78. ^ MooTools Elements

79. ^ SkinBuilder

80. ^ http://docs.dojocampus.org/dijit-themes

81. ^ Community-driven skins, Theme Builder

82. ^ Skinning GWT controls with style sheets

83. ^ ThemeRoller

84. ^ http://manual.qooxdoo.org/current/pages/gui_toolkit.html#themes

85. ^ Skinning YUI

86. ^ dhtmlxWindows

87. ^ [a] [b] Using MochaUI Library or JxLib

88. ^ dhtmlxLayout

89. ^ [3]

90. ^ dojo.gfx

91. ^ MochaUI Library

92. ^ DHTMLX Touch

93. ^ dojox.mobile & dojox.mobile.app

94. ^ jQTouch, jQuery Mobile Project

95. ^ Mouse2Touch

96. ^ [4]

97. ^ All JavaScript frameworks can be written in an accessible way with graceful degradation, frameworks seen here which imply out-of-the-box accessibility have made a special effort to document best practices for their particular framework.

98. ^ http://docs.dojocampus.org/quickstart/writingWidgets/a11y

99. ^ Section 508 accessibility improvements – v3.0 roadmap

100. ^ Built-in Accessibility in GWT 1.5 Applications

101. ^ Qooxdoo's "Extreme JavaScript" paradigm

102. ^ Yahoo! UI Graded Browser Support

103. ^ http://docs.dojocampus.org/quickstart/writingWidgets/a11y

104. ^ jQuery UI has ARIA support

105. ^ Visual Designer for DHTMLX Touch

106. ^ Wavemaker, Aptana Studio

107. ^ EchoStudio 3

108. ^ GUI builder, Theme Builder, Ext on Air, Custom build tool

109. ^ Netbeans has jQuery support

110. ^ jQuery API

111. ^ MooTools-core Documentation

112. ^ MooTools-more Document

113. ^ Custom build, JS Linker, API generation, Unit test framework, etc.

114. ^ CSS Grid Builder, YUI Test Utility, Profiler, Logger Control

115. ^ JavaScript frameworks currently only have the ability to support offline storage by taking advantage of pre-installed browser extensions such as Google Gears. If a user does not have one of these supported extensions installed in their browser already then offline support will be unavailable to the framework. JavaScript framework developers interested in implementing Gears may want to start with the Gears Getting Started Guide.

116. ^ o.DojoToolkit.Org/offline says "Dojo Offline is no longer supported after Dojo 1.3"

117. ^ Google API Libraries for Google Web Toolkit

118. ^ Pyjamas Desktop

119. ^ Some JavaScript libraries provide 2d graphics primitives that can be used for cross-browser vector graphics. These libraries rely on underlying technologies in the browser or plugins such as Canvas, SVG, VML, Flash, and Silverlight to do the actual rendering, but help isolate application and widget code from the rendering engine api differences

120. ^ http://docs.dojocampus.org/dojox/gfx

121. ^ MooTools ART

122. ^ Some JavaScript libraries include widgets for Charts, Gauges, and other data visualizations.

123. ^ dhtmlxChart

124. ^ http://docs.dojocampus.org/dojox/charting

125. ^ http://dev.sencha.com/deploy/dev/docs/?class=Ext.chart.Chart Chart API

126. ^ jQuery Visualize Plugin

127. ^ [5]

128. ^ http://docs.jquery.com/Browser_Compatibility

129. ^ http://docs.dojocampus.org/releasenotes/1.4

130. ^ http://docs.jquery.com/Browser_Compatibility

131. ^ http://developer.yahoo.com/yui/articles/gbs/

132. ^ http://docs.dojocampus.org/releasenotes/1.4

133. ^ http://docs.jquery.com/Browser_Compatibility

134. ^ http://openrico.org/resources

135. ^ http://docs.dojocampus.org/releasenotes/1.4

136. ^ http://docs.jquery.com/Browser_Compatibility

137. ^ http://docs.dojocampus.org/releasenotes/1.4

138. ^ http://www.sencha.com/products/js/

139. ^ http://docs.jquery.com/Browser_Compatibility

- Performance tests for different JavaScript Frameworks (Dojo, jQuery, Mootools, qooxdoo, Prototype, YUI), Jan 8, 2010

- jQuery vs Mootools by Aaron Newton, May, 2009

- Slashdot: jQuery compares favorably to MooTools

- Stack Overflow: jQuery vs. Prototype+Script.aculo.us and MooTools

- Dojo vs JQuery vs MooTools vs Prototype Performance Comparison (not up-to-date, outdated versions of YUI, jQuery and also Dojo Toolkit used)| Peter Velichkov's Blog - Jan 19, 2009

- Compare JavaScript frameworks - Ext JS, JQuery, MooTools

- JavaScript frameworks survey results | Kyle Hayes' Blog - Mar 29, 2009

- Which JavaScript libraries are most used on the most popular websites?