MooTools

Last updated
MooTools
Developer(s) The MooTools Dev Team
Initial releaseSeptember 8, 2006;17 years ago (2006-09-08) [1]
Stable release
1.6.0 / January 14, 2016;8 years ago (2016-01-14) [2]
Repository https://github.com/mootools/mootools-core
Written in JavaScript
Type Ajax framework / JavaScript Framework
License MIT License [3]
Website mootools.net

MooTools (My Object-Oriented Tools) [4] is a lightweight, object-oriented JavaScript framework. It is released under the free, open-source MIT License. [5]

Contents

Overview

MooTools provides the user with a number of options beyond native JavaScript. These include:

The framework includes built-in functions for manipulation of CSS, DOM elements, native JavaScript objects, Ajax requests, DOM effects, and more. MooTools also provides a detailed, coherent application programming interface (API), [10] as well as a custom downloads module allowing developers to download only the modules and dependencies they need for a particular app. [11] [12]

History

Valerio Proietti first authored the framework and released it in September 2006 [13] taking as his inspiration Prototype and Dean Edward's base2. MooTools originated from Moo.fx, a popular JavaScript effects library released in October 2005 by Valerio Proietti as an add-on to the Prototype Javascript Framework. [14] It can be used as a lighter alternative to script.aculo.us or other, bigger libraries. It provides simple, basic effects, and guarantees a small library size.

Whereas Prototype extendedprototypedmany of JavaScript's native String, Array, and Function objects with additional methods, Proietti desired a framework that (at the time) [15] further extended the native Element object as well [13] to offer greater control of the Document Object Model (DOM). [16]

Components

MooTools includes a number of components, but not all need to be loaded for each application. Some of the component categories are:

Browser compatibility

MooTools is compatible and tested with: [24]

Emphasis on modularity and reusability

Every JavaScript framework has its philosophy, and MooTools is interested in taking full advantage of the flexibility and power of JavaScript in a way that emphasizes greater modularity and code reuse. MooTools accomplishes these goals intuitively to a developer coming from a class-based inheritance language like Java with the MooTools Class object.

Class is an object of key/value pairs containing either properties or methods (functions). Class is effortlessly mixed and extended with other Class instantiations allowing for the most excellent focus of MooTools: Code reuse achieved through maximizing the power of JavaScript's prototypical inheritance but in a Class object syntax more familiar to classical inheritance models. [25]

Object-oriented programming

MooTools contains a robust Class creation and inheritance system that resembles most classically based Object-oriented programming languages. For example, the following is MooTools' equivalent of the examples in Wikipedia's polymorphism page:

varAnimal=newClass({initialize:function(name){this.name=name;}});varCat=newClass({Extends:Animal,talk:function(){return'Meow!';}});varDog=newClass({Extends:Animal,talk:function(){return'Arf! Arf!';}});varanimals={a:newCat('Missy'),b:newCat('Mr. Bojangles'),c:newDog('Lassie')};Object.each(animals,function(animal){alert(animal.name+': '+animal.talk());});// alerts the following://// Missy: Meow!// Mr. Bojangles: Meow!// Lassie: Arf! Arf!

See also

Related Research Articles

Dynamic HTML, or DHTML, is a term which was used by some browser vendors to describe the combination of HTML, style sheets and client-side scripts that enabled the creation of interactive and animated documents. The application of DHTML was introduced by Microsoft with the release of Internet Explorer 4 in 1997.

<span class="mw-page-title-main">JavaScript</span> High-level programming language

JavaScript, often abbreviated as JS, is a programming language and core technology of the Web, alongside HTML and CSS. 99% of websites use JavaScript on the client side for webpage behavior.

<span class="mw-page-title-main">NetBeans</span> Integrated development environment software for software development

NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called modules. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java development, it has extensions for other languages like PHP, C, C++, HTML5, and JavaScript. Applications based on NetBeans, including the NetBeans IDE, can be extended by third party developers.

Direct Web Remoting, or DWR, is a Java open-source library that helps developers write web sites that include Ajax technology. It allows code in a web browser to use Java functions running on a web server as if those functions were within the browser. The DWR project was started by Joe Walker in 2004, 1.0 released at August 29, 2005.

<span class="mw-page-title-main">Catalyst (software)</span> Open-source web application framework

Catalyst is an open-source web application framework written in Perl. It closely follows the model–view–controller (MVC) architecture and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.

MochiKit is a light-weight JavaScript library written and maintained by Bob Ippolito.

<span class="mw-page-title-main">Dojo Toolkit</span> Open-source modular JavaScript library

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.

Comet is a web application model in which a long-held HTTPS request allows a web server to push data to a browser, without the browser explicitly requesting it. Comet is an umbrella term, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as JavaScript, rather than on non-default plugins. The Comet approach differs from the original model of the web, in which a browser requests a complete web page at a time.

Grails is an open source web application framework that uses the Apache Groovy programming language. It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer.

The Prototype JavaScript Framework is a JavaScript framework created by Sam Stephenson in February 2005 as part of Ajax support in Ruby on Rails. It is implemented as a single file of JavaScript code, usually named prototype.js. Prototype is distributed standalone, but also as part of larger projects, such as Ruby on Rails, script.aculo.us and Rico. As of March 2021, according to w3techs, Prototype is used by 0.6% of all websites.

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.

<span class="mw-page-title-main">YUI Library</span>

The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several cores CSS resources. It is available under a BSD License. Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006. It was actively developed by a core team of Yahoo! engineers.

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.

JSDoc is a markup language used to annotate JavaScript source code files. Using comments containing JSDoc, programmers can add documentation describing the application programming interface of the code they're creating. This is then processed, by various tools, to produce documentation in accessible formats like HTML and Rich Text Format. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is free software under the Apache License 2.0.

JsonML, the JSON Markup Language is a lightweight markup language used to map between XML and JSON. It converts an XML document or fragment into a JSON data structure for ease of use within JavaScript environments such as a web browser, allowing manipulation of XML data without the overhead of an XML parser.

<span class="mw-page-title-main">JavaFX</span> Java software platform for GUI

JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS, as well as mobile devices running iOS and Android, through Gluon Mobile.

<span class="mw-page-title-main">Web development tools</span> Software used to test the UI of a website or web application

Web development tools allow web developers to test, modify and debug their websites. They are different from website builders and integrated development environments (IDEs) in that they do not assist in the direct creation of a webpage, rather they are tools used for testing the user interface of a website or web application.

This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.

<span class="mw-page-title-main">Pyjs</span> Rich Internet application framework

Pyjs, is a rich web application framework for developing client-side web and desktop applications in Python. The resulting applications can be run in a web browser or as standalone desktop applications.

This is a list of articles related to the JavaScript programming language.

References

  1. Original release announcement
  2. "Release 1.6.0 · mootools/Mootools-core". GitHub .
  3. "MooTools". mootools.net.
  4. "MooTools at FOSDEM slides" (PDF). Archived from the original (PDF) on 2011-07-23. Retrieved 2010-02-17.
  5. The Official MooTools Website
  6. MooTools' Core Download Page
  7. MooTools Class Object Archived 2008-08-31 at the Wayback Machine
  8. MooTools' Effects (FX) Class Archived 2008-06-23 at the Wayback Machine
  9. MooTools' Element Class - A comprehensive list of Element manipulation methods. Archived 2008-09-05 at the Wayback Machine
  10. A Better Way to Use Elements
  11. MooTools Core Builder
  12. MooTools More Builder
  13. 1 2 Newton, Aaron (September 18, 2008). MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development (1st ed.). Apress. pp. xvi. ISBN   978-1-4302-0983-6.
  14. Newton, Aaron (September 18, 2008). MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development (1st ed.). Apress. pp. xv. ISBN   978-1-4302-0983-6.
  15. Version 1.6.1 of Prototype includes "an element metadata storage system." Prototype 1.6.1 released Archived 2010-03-01 at archive.today by Sam Stephenson, written September 1st, 2009. Retrieved March 21, 2010.
  16. Note that MooTools does not extend the native Objectall JavaScript primitives like String and Function inherit from itbut instead provides a convenient Hash for the purpose: Think of it like having a set of utility methods that allow for nearly effortless object manipulation of regular JavaScript objects that are otherwise unaffected by the process. (Newton, Aaron (September 18, 2008). MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development (1st ed.). Apress. pp. xvi. ISBN   978-1-4302-0983-6.)
  17. MooTools Core Archived 2009-10-02 at the Wayback Machine
  18. MooTools More Archived 2009-10-04 at the Wayback Machine
  19. MooTools Class Archived 2008-08-31 at the Wayback Machine
  20. MooTools Element Archived 2008-09-05 at the Wayback Machine
  21. MooTools Fx Class Archived 2008-06-23 at the Wayback Machine
  22. MooTools Request Class Archived 2008-07-30 at the Wayback Machine
  23. In addition to getting the size for any Element, you can easily get the dimensions of the window Archived 2008-09-11 at the Wayback Machine
  24. MooTools lists its compatibility on its homepage.
  25. jQuery versus Mootools

Further reading