Other Frameworks
Licenses
- BSD: compatible
- MIT: compatible
- LGPL: incompatible
- GPL: incompatible
- Academic Free License: incompatible
Frameworks
mootools
- Homepage: http://mootools.net/
- License: MIT
- Compatible: Yes
- Documentation: http://docs.mootools.net/
- Status: Actively developed
- Version: 1.11 (06/04/07)
- Core module creates a lot of global methods prefixed with a “$” sign (~20).
- Extensive online documentation (seems to miss a search feature however)
- Source code is often documented, but is often limited to the documentation of the methods itself. Documentation format is custom - no JavaDoc.
- No official tutorials or further documentation beyond the API viewer
- Based on Dean Edward’s OO system “Base”
- Often supports different signatures and parameter structures which are convenient but may result in sub-optimal performance e.g. DOM elements or IDs or XPATH or ...
- Contains additions for native classes: Array, Function, Number, String, Element(?). Some of them are only added if the standard conforming implementation is missing. Also includes method which are not qualified by any public standard. This slightly obstrusive behavior may lead to cross-library issues.
- Includes DOM element handling features e.g. (css) selectors, filters, form handling, event normalization, dimension and location calculation.
- Has a cross browser DOM ready implementation
- Contains APIs for AJAX, XHR and cookie handling
- Includes an effect API which supports multiple transitions
- DOM Drag&Drop support is available, too.
- Widgets included (as plugins): Scroller, Slider, Sortables, Tips, Accordion
Prototype
- Homepage: http://www.prototypejs.org/
- License: MIT
- Compatible: Yes
- Documentation: http://prototypejs.org/api
- Status: Actively developed
- Version: 1.5.1 (05/01/07)
- Globally defines
Class,AbstractandPeriodicalExecuter - Source code is completely undocumented. No JavaDoc, no signature informations, no file headers, etc.
- Online documentation is quite comprehensive and gives a good overview of the included features. Also contains good overviews for each package which describes the purpose.
- No official tutorials or further documentation beyond the API viewer
- Contains additions for native classes: Array, Number, String. Some of them are only added if the standard conforming implementation is missing. Also includes method which are not qualified by any public standard. This slightly obstrusive behavior may lead to cross-library issues.
- Creates global methods:
$,$$,$A,$F,$H,$R,$w- slightly obstrusive - Adds a method getElementsByClassName to the global
document(uses XPATH if available) - The DOM API often supports different signatures and parameter structures which are convenient but may result in sub-optimal performance e.g. DOM elements or IDs or XPATH or ...
- Large set of features regarding DOM element manipulation.
- Includes support for form handling to control focus behavior and serialize them to use them together with AJAX.
- Support for calculations positions and sizes of DOM elements is included.
- Comes with a template system (alá Smarty)
- Basic AJAX wrapper using XmlHttpRequest
jQuery
- Homepage: http://jquery.com/
- License: GPL and MIT
- Compatible: Yes (using MIT)
- Documentation: http://docs.jquery.com/Main_Page
- Status: Actively developed
- Version: 1.1.3 (05/20/07)
- Namespace based: jQuery.*
- Creates a global
$function to build DOM elements from HTML code. - Supports a special no-conflict mode which omits the usage of globals by jQuery.
- Online documentation is available (Wiki based). Formatting and clarity could be improved.
- Source code contains excensive API documentation in a JavaDoc like format with a lot of custom attributes to support examples etc. Type information for params is mixed in description (e.g. no brackets around the type)
- Even simple functions often look quite complex. Maybe through the intensive usage of custom language extensions and often undocumented long, but compact written nested constructs.
- Use custom constructs for loop iterations like
eachandgrepvery often - even in performance critical areas which may have bad side effects on the overall performance.
- Support chaining of functions for DOM related methods (was a unique feature of jquery for a long time)
- Supports traversing the DOM (selectors based on CSS 1-3 or XPATH)
- Includes DOM manipulation support e.g. children to parent relations, element move, insert, ...
- Cross browser CSS styling support (computed style detection)
- Event handling includes function bind, event normalization etc.
- Basic animation support (seems to allow to change the speed, but no further transitions are supported)
- Basic AJAX wrapper using XmlHttpRequest
- Utilities contains different stuff for Array and String handling (mixed competely)
YUI Library
- Homepage: http://developer.yahoo.com/yui/
- License: BSD
- Compatible: Yes
- Documentation: http://developer.yahoo.com/yui/docs/
- Status: Actively developed (by Yahoo)
- Version: 2.2.2 (04/18/07)
- Not a pure JS framework: Includes CSS components like
reset,fontandgrid, too. - No public repository (SVN) available
- Comprehensive documentation available including component description, articles, cheat sheets and the API documentation
- YUI uses JavaDoc (mostly identical to qooxdoo) to comment source code. Source code comment level is very good.
- Namespace based (YAHOO.*)
- Browser differences are handled inside function implementations. May result is sub-optimal performance for often used methods.
- Abstraction and use of custom methods for implementation often results into double checks e.g. replaceClass checks for hasClass and the later called addClass, too.
- Instead of throwing exception the API often supports different signatures and parameter types at the cost of performance.
- DOM support to control classnames, styles and attributes of elements.
- Cross browser event normalization
- Browser history support, Drag and Drop, and a nicely written animation layer with multiple transition types is included as well.
- Includes controls: AutoComplete, Button Control beta, Calendar, Container, DataTable, Logger, Menu, Slider, TabView, TreeView (heavily CSS based)
MochiKit
- Homepage: http://mochikit.com/
- License: MIT and Academic Free License, v2.1
- Compatible: Yes (using MIT)
- Documentation: http://mochikit.com/doc/html/MochiKit/index.html
- Status: Paused
- Version: 1.3.1 (04/29/07)
- Warning: For longer than a year no new stable version
- No in-code documentation e.g. signature, return values, types, ...
- Good looking, easy understandable code
- Namespace based (”MochiKit”), does not create global objects and functions, does not modify the prototype of native objects (Array, String, ...)
- Includes support for DOM manipulation, Color and Data parsing and manipulation
- Comes with a custom logging pane and a sophisticated logging system
- Includes a class to support rounded corners
- Support for a AJAX wrapper (XMLHTTP only)
Tibco General Interface
- Homepage: http://gi.tibco.com/
- License: BSD
- Compatible: Yes
- Status: Actively developed
- Version: 3.4
- Public SVN server but not open to contribute yet.
Scriptaculous
- Homepage: http://script.aculo.us/
- License: MIT
- Compatible: Yes
- Documentation: http://wiki.script.aculo.us/
- Status: Actively developed
- Version: 1.7.0
- Based on Prototype
- Includes support for animation, drag&drop
- Comes with a DOM builder to easily create DOM nodes. Does not include a solution to insert these elements into the DOM in the best order.
- Custom unit testing framework included.
Dojo Toolkit
- Homepage: http://dojotoolkit.org/
- License: Academic Free License v2.1 and BSD (see also: http://dojotoolkit.org/support/faq/can-i-combine-dojo-lgpl-software)
- Compatible: Yes (using BSD)
- Documentation: http://dojotoolkit.org/docs
- Status: Actively developed
- Version: 0.4.3 (05/26/07)
Base2
- Homepage: http://code.google.com/p/base2/
- License: MIT
- Compatible: Yes
- Documentation: Not available yet?
- Status: New
- Version: 1.0?
- Implement current or upcoming standard in all browsers.
- Cross browser selectors API (supports CSS and XPATH queries)
- Fix DOM events
- Corrections for getAttribute/setAttribute
- Includes getComputedStyle() and compareDocumentPosition()
ExtJS
- Homepage: http://extjs.com/
- License: LGPL (http://extjs.com/license)
- Compatible: No (missing needed EPL)
- Documentation: http://extjs.com/learn
- Status: Actively developed (closed)
- Version: 1.0.1 (04/01/07)
- No public repository available (only in commercial license)
- Focused on GUI components
- Require a base library, available are: YUI, Prototype or jQuery
