- Comparison of JavaScript frameworks
-
Contents
Comparison of JavaScript frameworks
Rationale
There are many JavaScript frameworks available. The intention of this comparison is to show some examples of JavaScript frameworks with their different features.
Table of Javascript Frameworks
Ample SDK DHTMLX Dojo Echo3 Ext JS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient & SmartGWT SweetDEV RIA YUI ZK Version compared 0.9.3
1 Jul 20103.0
7 Jul 20111.6.0
15 Mar 20113.0.rc1
24 Mar 20114
26 Apr 20112.4
September 20111.6
3 May 20112010.05
10 May 20101.4.2
17 Nov 20081.4.1
24 Feb 20111.6.1/1.8.3
14 Nov 20090.5
Mar 20091.5
13 Jul 20111.1.5
25 Feb 20112.0
03 May 2009SmartClient: 8.1
Aug 2011
SmartGWT: 2.5
Aug 20113.1
9 Jun 20083.4
18 Aug 20115.0.9
18 Oct 2011Size Variable.
Core size:
40 kB (minified & gzipped)Variable Variable.
Base size:
28 kB (minified & gzipped),
65 kB (minified),
123 kB (uncompressed)[2]84–502 kB Variable 31 KiB (minified & gzipped),
72 KiB (minified),
229 KiB (uncompressed)9 kB (minified & gzipped),
50 kB (uncompressed)32–200 kB Variable;
7.3–65 KiB (YUI Compressor),[3]
101 KiB (uncompressed)[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 MIT & GPL GPL & Commercial BSD & AFL MPL, LGPL or GPL GPL and Commercial Apache MIT & GPL MIT MIT & AFL MIT MIT Apache 2 & GPL LGPL & EPL Apache Apache LGPL & Commercial Apache 2 BSD LGPL & GPL & ZOL Source language ? JavaScript JavaScript + HTML JavaScript and/or Java JavaScript Java JavaScript ? ? JavaScript JavaScript Python JavaScript ? ? Server: Java
Client: Java (Smart GWT) or Javascript (SmartClient) or XML (both)? Javascript + HTML + CSS XML + Java (Javascript Optional) Demo XUL SVG Samples Explorer 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 ShowcaseGetting Started 300 examples, including adv. app example ZKDemo Features Ample SDK DHTMLX Dojo Echo3 Ext JS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT SweetDEV RIA YUI ZK Feature detection[5] No[6] No No[7] No No No[8][9] Yes[10] No[11] No[12] Yes[13] No[14] Partial No[15] No Partial [16] Yes No[17] DOM wrapped[18] Yes[19] Yes Yes Yes Yes Yes Yes Yes Yes No[20] No[21][22] Yes Yes Yes No Yes Yes Yes Yes XMLHttpRequest
data retrievalYes Yes Yes[23] Yes Yes Yes Yes Yes Yes[24] Yes Yes Yes No Yes[25] Yes Yes Yes JSON data retrieval Yes Yes Yes[26] Yes Yes Yes Yes Yes Yes[27] Yes Yes[28] Yes No Yes Yes Yes Yes Server push data retrieval Yes[29] Yes[30] Yes[31] Yes[32] Yes[33] Via Plugin Yes[34] Other data retrieval Yes: XML Yes: XML, CSV Yes: XML, HTML, CSV, ATOM[35] Yes: XML Yes: RPC Yes: XML, HTML Yes: XML, HTML Yes: XML, WSDL, RSS, and Java-based SQL, Hibernate, POJO adapters Yes Drag and drop Yes Yes Yes[36] Yes Yes With plugin[37] Yes Yes Yes Yes[38] Yes Depends Yes Yes Yes Yes Depends[39] Yes Yes Simple visual effects Yes Yes Yes[40] Yes Yes Yes Yes Yes Yes[41] Yes Yes Yes No Yes Yes No Yes Yes Animation /
advanced visual effectsYes No Yes[42] Yes Yes Yes Yes Yes Yes[43] Yes[44] Yes Yes No Yes Yes No Yes Yes Event handling Yes[45] Yes Yes[46] Yes Yes Yes Yes Yes Yes[47] Yes Yes[48] Yes Yes Yes Yes Depends[49] Yes Yes Back button support /
history managementYes No Yes[50] Yes[51] Yes With plugins[52] Yes With plugin[53] Yes Yes[54] Yes No Yes Yes No[55] Yes Yes Input form widgets & validation Yes Yes[56] Yes[57] Yes Yes Yes, Validation requires plugin[58] With plugins[59] Yes Yes Yes Yes[54] Yes Yes Yes Yes Yes Yes Yes Ample SDK DHTMLX Dojo Echo3 ExtJS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT SweetDEV RIA YUI ZK Grid Yes[60] Yes[61] Yes[62] Yes Yes Yes With plugins[63] No With plugin[64] Yes Yes Yes Yes[65] Yes Yes Yes[66] Yes Hierarchical Tree Yes[67] Yes[68] Yes[69] Yes[70] Yes With plugins[71] No With plugins[72] Yes[73] Yes[74] Yes Yes Yes Yes[75] Yes Rich text editor Yes[76] Yes[77] Yes[78] Yes[79] Yes[80] Yes With plugins[81] No Yes[82] Yes Yes No No Yes No Yes Yes Autocompletion tools Yes[83] Yes[84] Yes Yes With plugins[85] Yes With plugin[86] Yes Yes Yes Yes Yes Yes Yes Yes HTML generation tools Yes Yes Yes[87] Yes Yes Yes No Yes[88] Yes Yes Yes Yes Yes Yes No Yes Yes Widgets themeable / skinnable Yes Yes[89] Yes[90] Yes[91] Yes[92] Yes[93] Yes Yes Yes[94] Yes Yes[95] Yes GUI resizable panels and modal dialogs Yes Yes[96] Yes Yes Yes With plugins Yes[97] Yes Yes Yes Yes[98] GUI page layout Yes Yes[99] Yes Yes Yes With plugin[100] Yes[97] Yes Yes Yes Yes[101] Canvas support Yes Yes Yes[102] Yes Yes Yes[103] Yes Yes Yes Yes Yes[104] Mobile/tablet support (touch events) Yes Yes[105] Yes[106] No Yes With plugin[107] With plugin[108] With plugin[109] Yes Yes Yes Accessibility /
graceful degradation[110]No No Yes[111] Partial[112] Yes[113] Yes Yes No[114] Degradation: No
Accessibility: YesNo Yes[115] Yes ARIA compliant Yes[111] No Yes[116] No Yes No Yes Yes Developer tools, Visual design No Yes[117] Yes[118] In development[119] Yes[120] Yes Yes[121][122] Yes[123][124] No Yes[125] Yes No Yes[126] Yes Offline storage[127] No No[128] Via Adobe Air Via Google Gears[129] No No Via Pyjamas-Desktop[130] No Yes No Via plugin[131] Yes Cross-browser 2d Vector Graphics[132] Yes[133] Yes[134] Yes Yes[135] Yes Yes Yes Yes[136] Charting & Dashboard[137] Yes[138] Yes[139] Yes[140] Yes[141] With plugin[142] Yes Yes[143] Yes[144] Ample SDK DHTMLX Dojo Echo3 ExtJS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT SweetDEV RIA YUI ZK Browser Support Internet Explorer 6+ 6+ 6+ 6+ 6+ 6+ 6+[145] 6+ 6 6+ 6+ 6+ 6+ 6+ 5.5+ 6+ 6+ 6+ 6+ Mozilla Firefox 1+ 1+ 3+[146] 1.5+ 1.5+ 1+ 2+[145] 1.5+ 1.0.7, 1.5b2 2+ 1.5+ 1+ 2+ 1.5+ 1+ 1+ 3+[147] 2.0+ Safari 3+ 2.0+ 4[146] 3+ 3+ 3+ 3+[145] 2+ 2.0.2 3+ 2.0.4+ 2+ 3+ 2.0.3[148] 3+ 3+ 4.0 3+ Opera 9.6+ 9+ 10[146] 9+ 9+ 9+ 9+[145] 9+ 8.5 9+ 9.25+ 9+ 9+ 9+ 9+ 9.21+, possibly earlier as well 10.0+ 9+ Chrome 1+ 1+ 3[146] 1+ 3+[149] 1+ 1+[145] 1+ 1+ (starting with 1.6.1RC3) 2+ 1+ 2+ See also
List of JavaScript libraries
Notes
- ^ a b c d script.aculo.us is an add-on to Prototype.
- ^ Dojo Base
- ^ [1]
- ^ [2]
- ^ 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
- ^ Ample SDK uses Browser Sniffing
- ^ Integrate of Feature Detection Code
- ^ GWT implementations for every browser
- ^ Google Docs (built on GWT) stops working on a Firefox rebranding because of not doing proper Feature Detection
- ^ jQuery 1.3
- ^ http://www.midorijs.com/midori.js midori.js
- ^ http://www.mochikit.com/MochiKit/Style.js MochiKit/Style.js
- ^ http://mootools.net/blog/2010/10/11/mootools-core-1-3-stable-and-mootools-more-1-3rc/
- ^ Feature detection all the way
- ^ https://svn.improve.fr/rialto/Rialto-coreV1/rialtoEngine/javascript/rialto.js
- ^ Author disagrees that feature detection alone is sufficient
- ^ http://zssdemo.zkoss.org/zkau/web/js/zk/zk.js.dsp zk.js
- ^ kangax (5 April 2010). "What’s wrong with extending the DOM". http://perfectionkills.com/whats-wrong-with-extending-the-dom/. Retrieved 6 April 2010.
- ^ http://www.amplesdk.com/about/technologies/javascript/
- ^ MooTools Docs - Element/Element
- ^ Prototype JavaScript framework: Element
- ^ Prototype 2.0 will not extend the DOM - Ajaxian
- ^ AJAX and Dojo
- ^ MooTools Request
- ^ Inner HTML demo
- ^ http://docs.dojocampus.org/dojo/data
- ^ MooTools Request.JSON
- ^ Pyjamas JSON-RPC Example
- ^ http://cometd.org/documentation/cometd-javascript
- ^ https://github.com/kembuco/extjs-cometd/
- ^ http://code.google.com/p/rocket-gwt/wiki/Comet
- ^ http://cometd.org/documentation/cometd-javascript
- ^ Real-time Messaging Module
- ^ http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/Server_Push
- ^ http://docs.dojocampus.org/dojox/data
- ^ http://docs.dojocampus.org/dojo/dnd
- ^ http://code.google.com/p/gwt-dnd/
- ^ MooTools Drag.Move
- ^ For nodes in treeview only
- ^ http://docs.dojocampus.org/dojo/fx/
- ^ MooTools Fx.Tween (Simple Transitions)
- ^ http://docs.dojocampus.org/dojox/fx/
- ^ Mochikit.Visual
- ^ MooTools Fx.Morph (Advanced Transitions)
- ^ http://www.amplesdk.com/about/technologies/javascript/
- ^ http://docs.dojocampus.org/quickstart/events
- ^ http://mootools.net/docs/core/Types/Event MooTools Events
- ^ Pyjamas demo of onclick event handling
- ^ No event management between components on client side, server side only for some basic event
- ^ http://docs.dojocampus.org/dojo/back
- ^ http://www.sencha.com/products/js/roadmap.php Since v2.2
- ^ Address, History, jquery History, History/Remote, jQuery BBQ
- ^ MooTools-History
- ^ a b Pyjamas Kitchen Sink demo
- ^ Back button support not in the demo, and no documentation about it, or about browser history support
- ^ dhtmlxForm
- ^ http://docs.dojocampus.org/dijit/form
- ^ http://techblog.maydu.eu/?p=7
- ^ http://docs.jquery.com/Plugins
- ^ Data Views
- ^ dhtmlxGrid
- ^ http://docs.dojocampus.org/dojox/grid
- ^ jqGrid, Ingrid, Flexigrid
- ^ JxLib Library or phatfusion sortable table plugin or DrasticGrid
- ^ Live grid
- ^ YUI DataTable
- ^ Data Views
- ^ dhtmlxTree
- ^ http://docs.dojocampus.org/dijit/Tree
- ^ Tree demos
- ^ treeview, file_tree_viewer
- ^ MooTree 2 or JxLib Library or MooTools PowerTools!
- ^ http://pyjs.org/examples/kitchensink/output/KitchenSink.html#Trees Tree
- ^ http://demo.qooxdoo.org/current/demobrowser/ Demo browser
- ^ http://developer.yahoo.com/yui/treeview/ YUI TreeView
- ^ [3]
- ^ dhtmlxEditor
- ^ http://docs.dojocampus.org/dijit/Editor
- ^ Echo 3 new features
- ^ problems with the HTMLEditor creating XHTML vs the HTML it does now
- ^ markitup, jwysiwyg, htmlbox, WYMeditor
- ^ MooEditable
- ^ dhtmlxCombo
- ^ http://docs.dojocampus.org/dijit/form/ComboBox
- ^ Autocomplete, Dylans Autocomplete, Yet Another Autocomplete, jQuery plugin for Autocomplete, Jquery Autocomplete, jquery.suggest, Interface Autocompleter
- ^ Digitarald's Autocompleter Plugin
- ^ 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");
- ^ MooTools Elements
- ^ SkinBuilder
- ^ http://docs.dojocampus.org/dijit-themes
- ^ Community-driven skins, Theme Builder
- ^ Skinning GWT controls with style sheets
- ^ ThemeRoller
- ^ http://manual.qooxdoo.org/current/pages/gui_toolkit.html#themes
- ^ Skinning YUI
- ^ dhtmlxWindows
- ^ a b Using MochaUI Library or JxLib
- ^ http://www.zkoss.org/smalltalks/zkstudio_vedemo/
- ^ dhtmlxLayout
- ^ [4]
- ^ http://www.zkoss.org/smalltalks/zkstudio_vedemo/
- ^ dojo.gfx
- ^ MochaUI Library
- ^ [5]
- ^ DHTMLX Touch
- ^ dojox.mobile & dojox.mobile.app
- ^ [6]
- ^ jQTouch, jQuery Mobile Project
- ^ MooTools Mobile (unofficial)
- ^ 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.
- ^ a b http://docs.dojocampus.org/quickstart/writingWidgets/a11y
- ^ Section 508 accessibility improvements – v3.0 roadmap
- ^ Built-in Accessibility in GWT 1.5 Applications
- ^ Qooxdoo's "Extreme JavaScript" paradigm
- ^ Yahoo! UI Graded Browser Support
- ^ jQuery UI has ARIA support
- ^ Visual Designer for DHTMLX
- ^ Wavemaker, Aptana Studio
- ^ EchoStudio 3
- ^ [7], Theme Builder, Custom build tool
- ^ Netbeans has jQuery support
- ^ jQuery API
- ^ MooTools-core Documentation
- ^ MooTools-more Document
- ^ Custom build, JS Linker, API generation, Unit test framework, etc.
- ^ CSS Grid Builder, YUI Test Utility, Profiler, Logger Control
- ^ 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.
- ^ o.DojoToolkit.Org/offline says "Dojo Offline is no longer supported after Dojo 1.3"
- ^ Google API Libraries for Google Web Toolkit
- ^ Pyjamas Desktop
- ^ http://yuilibrary.com/gallery/show/storage-lite
- ^ 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
- ^ [8]
- ^ http://docs.dojocampus.org/dojox/gfx
- ^ MooTools ART
- ^ http://books.zkoss.org/wiki/Small_Talks/2010/June/How_To_Use_Canvas4Z
- ^ Some JavaScript libraries include widgets for Charts, Gauges, and other data visualizations.
- ^ [9]
- ^ dhtmlxChart
- ^ http://docs.dojocampus.org/dojox/charting
- ^ http://dev.sencha.com/deploy/dev/docs/?class=Ext.chart.Chart Chart API
- ^ jQuery Visualize Plugin
- ^ [10]
- ^ [11]
- ^ a b c d e http://docs.jquery.com/Browser_Compatibility
- ^ a b c d http://docs.dojocampus.org/releasenotes/1.4
- ^ http://developer.yahoo.com/yui/articles/gbs/
- ^ http://openrico.org/resources
- ^ http://www.sencha.com/products/js/
External links
- 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?
ECMAScript Dialects ActionScript · Caja · JavaScript (engines) · JScript · JScript .NET · Objective-J · QtScript · WMLScriptEngines
(comparison)Carakan · Futhark · InScript · JavaScriptCore (SquirrelFish) · JScript · KJS · Linear B · Narcissus · QtScript · Rhino · SpiderMonkey (TraceMonkey, JägerMonkey) · Tamarin · V8 · ChakraFrameworks,
librariesJavaScript
(comparison)Ample SDK · Clean AJAX · CougarXML · Dojo · Echo · Ext · Google Web Toolkit · jQuery · Lively Kernel · midori · MochiKit · MooTools · OpenLink AJAX · Prototype · Pyjamas · qooxdoo · Rialto · Rico · script.aculo.us · SmartClient · SproutCore · Spry · YUI LibraryLibraries
(list)PDFObject · SWFObject · SWFAddressActionScriptMultiple
implementationsPeople Other Categories:- JavaScript libraries
- Software comparisons
- Ajax (programming)
Wikimedia Foundation. 2010.