This article needs to be updated. The reason given is: Does not reflect newer libraries or versions made available in the last several years.(April 2017) |
This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.
Framework | Version compared | Size | License | Source language |
---|---|---|---|---|
Angular | 14.0.4 29 June 2022 | 563 kB (minified & compressed) | MIT | TypeScript |
AngularJS | 1.5.0 5 Feb 2016 | 144 kB (minified & compressed) | MIT | JavaScript |
Apache Royale | 0.9.4 5 Nov 2018 | 19 kB (zipped) | Apache | ActionScript 3, MXML, CSS |
Backbone.js | 1.2.1 June 2015 | 7.3 kB (Packed and gzipped) | MIT | JavaScript |
Dojo | 1.10.4 18 Jan 2015 | Variable. Base size: 41 kB (minified & gzipped), 155 kB (minified), 598 kB (uncompressed) [1] | BSD & AFL | JavaScript + HTML |
Ember.js | 1.7.0 19 Aug 2014 | 95 kB (minified & gzipped), 340 kB (minified), 1.5 MB (uncompressed) | MIT | JavaScript |
Enyo | 2.0.1 30 Aug 2012 | <25 kB (core gzipped) | Apache 2 [2] | JavaScript |
Ext JS | 7.3 15 Sept, 2020 | 84–502 kB | GPL & Commercial [3] | JavaScript |
Google Web Toolkit | 2.10.0 June 2022 | Variable | Apache | Java |
jQuery (library) | 3.6.0 3 Mar 2021 | 70.7KB (slim, minified), 87.4KB (minified), [4] 282 KiB (uncompressed) [4] | MIT | JavaScript |
jQWidgets | 3.9.1 29 Oct 2015 | 3102 KB (minified), 7486 KB (uncompressed) | Creative Commons Attribution-NonCommercial 3.0 and Commercial [5] | JavaScript, HTML, CSS |
Knockout | 3.5.0 22 February 2019 | 66.4 KB minified / 309 KB (development mode) | MIT | JavaScript |
MooTools | 1.6.0 14 Jan 2016 | Variable; 7.3–65 KiB(YUI Compressor), [6]
| MIT | JavaScript |
Prototype & script. aculo.us [9] | Prototype: 1.7.3 22 Sep 2015 script.aculo.us: 1.9.0 23 Dec 2010 | 46–278 kB | MIT | JavaScript |
qooxdoo | 5.0.1 15 Sep 2015 | Variable, starting at 6 kB (gzipped) | LGPL & EPL | JavaScript |
React | 18.2.0 14 June 2022 | react.production.min.js 6.41KB react-dom.production.min.js 92.4KB Total: 98.81KB | MIT | JavaScript / TypeScript |
SAP OpenUI5 | 1.102.1 15 Jun 2022 | Variable, starting at 213 kB (gzipped) | Apache 2 [10] | JavaScript |
SproutCore | 1.11.2 2 May 2016 | 250–700 kB (gzipped). | MIT | JavaScript |
Svelte | 3.12.1 14 Oct 2019 | Variable | MIT | JavaScript |
Vue.js | 2.6.10 20 Mar 2019 | 33.5 KB (minified & gzipped) 91.48 KB (minified) [11] 333.46 KB (uncompressed) [11] | MIT | JavaScript / TypeScript |
Webix | 4.1 November 2016 | 188 kB (gzipped) | GPL & Commercial [12] | JavaScript |
ZK | 8.0.1 19 Jan 2016 | Variable | LGPL & GPL & ZOL [13] | XML + Java (JavaScript optional) |
Angular | AngularJS | Apache Royale | Dojo | Ember.js | Enyo | Ext JS | Google Web Toolkit | jQuery | jQWidgets | MooTools | OpenUI5 | Prototype & script. aculo.us [9] | qooxdoo | React | SproutCore | Svelte | Vue | ZK | Webix | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feature detection [14] | Yes | Yes [15] | Yes | Yes [16] | No [17] [18] | Yes [19] | Yes | Yes [20] | No [21] | Yes | Yes | No | Yes | |||||||
DOM wrapped [22] | Yes | Yes | No | Yes | Yes | Yes | Yes | No [23] | No [24] [25] | Yes | No | Yes | Yes | |||||||
XMLHttpRequest data retrieval | Yes | Yes | Yes [26] | Yes | Yes | Yes | Yes | Yes [27] | Yes [28] | Yes | Yes | Yes | Yes | Yes | ||||||
WebSocket | Yes [26] | Yes | Yes | Yes | Yes | No | Yes [28] | Yes [29] | Yes | Yes | Via Plugin | Yes [30] | ||||||||
Server push data retrieval | Yes [31] | Yes [32] | Yes [33] | Yes [31] | No | Via Plugin | Yes [34] | Yes | ||||||||||||
Other data retrieval | Yes: XML, HTML, CSV, ATOM, AMF, JSON | Yes: XML, HTML, CSV, ATOM [35] | Yes: XML, SOAP, AMF, Ext.Direct | Yes: RPC, RequestFactory | Yes: XML, HTML | Yes: XML, JSON, CSV, TSV [27] | Yes: XML, HTML | Yes: XML, HTML, CS, JSON, JSArray, CSV | ||||||||||||
Drag and drop | Yes | Yes [36] | Yes | With plugin [37] | With plugins [38] | Yes [39] | Yes [40] | Yes [41] | Yes | Yes | Yes | Yes | Yes [42] | |||||||
Simple visual effects | Yes | Yes | Yes [43] | Yes | Yes | Yes | Yes | Yes | Yes [44] | Yes | Yes | Yes | Yes [45] | Yes | Yes | |||||
Animation / advanced visual effects | Yes | Yes [46] | Yes [47] | Yes | Yes | Yes | Yes | Yes [48] | Yes | Yes | Yes [45] | Yes | Yes [49] | |||||||
Back button support / history management | Yes [50] | Yes | Yes [51] | Yes [52] | Yes | With plugins [53] | No | With plugin [54] | Yes | Yes | Yes | Yes | Yes | |||||||
Input form widgets & validation | Yes | Yes | Yes [55] | Yes | Yes | Yes, Validation requires plugin [56] | With plugins [57] | Yes [58] | Yes | Yes | Yes | Yes | Yes | Yes | Yes [59] [60] | |||||
Angular | AngularJS | Apache Royale | Dojo | Ember.js | Enyo | ExtJS | Google Web Toolkit | jQuery | jQWidgets | MooTools | OpenUI5 | Prototype & script. aculo.us [9] | qooxdoo | React | SproutCore | Svelte | Vue | ZK | Webix | |
Grid | Yes | Yes [61] | Yes | Yes | With plugins [62] | Yes [63] | With plugin [64] | Yes | Yes | Yes | Yes | Yes [65] | ||||||||
Hierarchical Tree | Yes | Yes [66] | Yes [67] | Yes [68] | Yes | With plugins [69] | Yes [70] | With plugins [71] | Yes | Yes [72] | Yes | Yes | Yes [73] | |||||||
Rich text editor | No | Yes | Yes [74] | Yes [75] | Yes | With plugins [76] | Yes [77] | Yes [78] | Yes | Via plugin | Yes | Yes [79] | ||||||||
Autocompletion tools | No | Yes [80] | Yes | Yes | Yes [81] | Yes [82] | With plugin [83] | Yes | With plugins | Yes | Yes | |||||||||
HTML generation tools | No | Yes [84] | Yes | Yes | Yes | Yes [77] | Yes [85] | Yes | Yes | Yes | Yes | Yes | ||||||||
Widgets themeable / skinnable | Yes | Yes [86] | Yes | Yes [87] | Yes [88] | Yes [89] | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||
GUI resizable panels and modal dialogs | Yes | Yes | Yes | Yes [90] | Yes | With plugins | Yes [91] | Yes [92] | Yes | Yes | Yes [93] | Yes | ||||||||
GUI page layout | Yes | Yes | Yes | With plugin [94] | Yes [95] [96] | Yes [92] | Yes | Yes | Yes [93] | Yes [97] | ||||||||||
Canvas support | Yes | Yes [98] | Yes | Yes | Yes | With plugin [99] | Yes [100] | Yes [101] | Yes | Yes | Yes [102] | Yes | ||||||||
Mobile/tablet support (touch events) | Yes | Yes | Yes [103] | Yes | Yes | Yes | With plugin [104] | With plugin [105] | Yes [106] | With plugin [107] | Yes | Yes | Yes | Yes [108] | Yes [109] | |||||
Accessibility / graceful degradation [110] | Yes | Yes [111] | No | Yes | Yes [16] | Yes [112] | Yes | Yes [113] | Yes | No [114] | Degradation: No Accessibility: Yes | Yes | Yes [115] | |||||||
ARIA compliant | Yes [111] | Yes [16] | Yes [116] | Yes [113] | Yes | No | Yes | Yes | Yes [117] | |||||||||||
Developer tools, Visual design | Yes [118] [119] | in progress [120] | Yes [121] [122] [123] | Yes | Yes [124] [125] | Yes [126] [127] [128] | Yes [129] [130] | Yes [131] | No | Yes | Yes [132] [133] | |||||||||
Offline storage [134] | Yes | No [135] | Yes | Yes [136] | Via Google Gears [137] | With plugin [138] | Yes [139] | Yes | Yes | Yes | Yes | |||||||||
Cross-browser 2d Vector Graphics [140] | Yes [141] | Yes | With plugin [142] | Yes [100] | Yes [143] | No | Yes [102] | Yes (via Raphael) [144] | ||||||||||||
Charting & Dashboard [145] | Yes | Yes [146] | Yes [147] | With plugin [148] [149] | Yes [150] [151] | No | Yes [152] | Yes [153] | ||||||||||||
RTL Support in UI Components | Yes | Yes | Yes | Depends on the plugin used | Yes [113] | Yes | Yes | No | ||||||||||||
Angular | AngularJS | Apache Royale | Dojo | Ember.js | Enyo | ExtJS | Google Web Toolkit | jQuery | jQWidgets | MooTools | OpenUI5 | Prototype & script. aculo.us [9] | qooxdoo | React | SproutCore | Svelte | Vue | ZK | Webix |
Framework | Internet Explorer | Mozilla Firefox | Safari | Opera | Chrome | Edge |
---|---|---|---|---|---|---|
Angular | Latest and extended support release | 2 most recent major versions | Latest and previous stable version | 2 most recent major versions | ||
AngularJS (1.3) | 8+ (9+) | 4+ | 5+ | 11+ | 30+ | |
Apache Royale | 9 (Edge --> 10) | 21 | 6 | 15 | 23 | |
Dojo | 6+ | 3+ [154] | 4 [154] | 10.50+ [154] | 3 [154] | |
Ember.js | 6+ | 3+ | 4+ | 10.6+ | 14+ | |
Enyo | 8+ [155] | >4 [155] | >5 [155] | >10 [155] | ||
Ext JS | 8+ | 45+ | 11+ | 43+ | 64+ [156] | |
Google Web Toolkit | 8+ | 1+ | 5+ | 9+ | 1+ | |
jQuery (3.x) | 6+ (9+) [157] | 2+ [157] | 3+ [157] | 9+ [157] | 1+ [157] | |
jQWidgets | 7+ [158] | 2+ [158] | 3+ [158] | 9+ [158] | 1+ [158] | |
MooTools | 6+ | 2+ | 3+ | 9+ | 1+ | |
Prototype & script. aculo.us [9] | 6+ | 1.5+ | 2.0.4+ | 9.25+ | 1+ (starting with 1.6.1RC3) | |
qooxdoo | 6+ | 2+ | 3+ | 9+ | 2+ | |
React | ||||||
SAP OpenUI5 [159] | 11+ | Latest Stable and ESR | Last 2 | Latest Version | ||
SproutCore | 6+ | 3+ | 4+ | 9+ | 1+ | |
Svelte | 21+ | 6+ | 15+ | 23+ | 12+ | |
Vue | 10+ | 21+ | 6+ | 15+ | 23+ | 12+ |
ZK | 6+ | 2.0+ | 3+ | 9+ | 2+ | |
Webix | 8+ [160] | 3+ [160] | 4+ [160] | 9+ [160] | 1+ [160] |
Dojo Toolkit is an open-source modular JavaScript library designed to ease the rapid development of cross-platform, JavaScript/Ajax-based applications and web sites. It was started by Alex Russell, Dylan Schiemann, David Schontzler, and others in 2004 and is dual-licensed under the modified BSD license or the Academic Free License.
Google Web Toolkit, or GWT Web Toolkit, is an open-source set of tools that allows web developers to create and maintain JavaScript front-end applications in Java. It is licensed under Apache License 2.0.
Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.
The Spry Framework is an open source Ajax framework developed by Adobe Systems which is used in the construction of Rich Internet applications. Unlike other pure JavaScript frameworks such as the Dojo Toolkit and Prototype, Spry is geared towards web designers, not web developers. On August 29, 2012, Adobe announced that it would no longer continue development of Spry and handed it over to the community on GitHub.
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animations, and Ajax. It is free, open-source software using the permissive MIT License. As of August 2022, jQuery is used by 77% of the 10 million most popular websites. Web analysis indicates that it is the most widely deployed JavaScript library by a large margin, having at least three to four times more usage than any other JavaScript library.
Ext JS is a JavaScript application framework for building interactive cross-platform web applications using techniques such as Ajax, DHTML and DOM scripting. It can be used as a simple component framework but also as a full framework for building single-page applications (SPAs).
ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.
Sencha Touch is a user interface (UI) JavaScript library, or web framework, specifically built for the Mobile Web. It can be used by Web developers to develop user interfaces for mobile web applications that look and feel like native applications on supported mobile devices. It is based on web standards such as HTML5, CSS3 and JavaScript. The goal of Sencha Touch is to facilitate quick and easy development of HTML5 based mobile apps which run on Android, iOS, Windows, Tizen and BlackBerry devices, simultaneously allowing a native look and feel to the apps.
WebSharper is an open-source and commercial web-programming framework that allows web developers to create and maintain complex JavaScript and HTML5 front-end applications in the F# programming language. Other than a few native libraries, everything is F# source.
There are different JavaScript charting libraries available. Below is a comparison of which features are available in each.
Apache Struts 2 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. The WebWork framework spun off from Apache Struts 1 aiming to offer enhancements and refinements while retaining the same general architecture of the original Struts framework. In December 2005, it was announced that WebWork 2.2 was adopted as Apache Struts 2, which reached its first full release in February 2007.
jQWidgets is a software framework with widgets, themes, input validation, drag & drop plug-in, data adapters, built-in WAI-ARIA accessibility, internationalization and MVVM support. It is built on the open standards and technologies HTML5, CSS, JavaScript and jQuery. This library is used for developing responsive web and mobile applications. Some developers consider jQWidgets one of the top alternatives to the open-source jQuery UI.
NativeScript provides platform APIs directly to the JavaScript runtime for a rich TypeScript development experience. As an open-source framework to develop apps for iOS, visionOS and Android platforms combining a best of all worlds approach marrying familiar Web approaches like CSS and view templating with common platform languages it delivers a liberating toolset for developers. It was originally conceived and developed by Bulgarian company Telerik, later acquired by Progress Software. At the end of 2019 responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020, nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project. NativeScript apps are built using JavaScript, or by using any programming language that transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue JavaScript frameworks. Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in Xcode or Android Studio. Additionally, software developers can re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile applications without the need for wrappers.
This is a list of articles related to the JavaScript programming language.
ESLint is a static code analysis tool for identifying problematic patterns found in JavaScript code. It was created by Nicholas C. Zakas in 2013. Rules in ESLint are configurable, and customized rules can be defined and loaded. ESLint covers both code quality and coding style issues. ESLint supports current standards of ECMAScript, and experimental syntax from drafts for future standards. Code using JSX or TypeScript can also be processed when a plugin or transpiler is used.
The OpenJS Foundation is an organization that was founded in 2019 from a merger of JS Foundation and Node.js Foundation. OpenJS promotes the JavaScript and web ecosystem by hosting projects and funds activities that benefit the ecosystem. The OpenJS Foundation is made up of 38 open source JavaScript projects including Appium, Dojo, jQuery, Node.js, Node-RED and webpack. Founding members included Google, Microsoft, IBM, PayPal, GoDaddy, and Joyent.