Joose (framework)
{{Short description|Open-source self-hosting metaobject system for JavaScript}}
{{ infobox software
| name = Joose
| logo = Image:JooseLogo.png
| developer = Malte Ubl
| latest release version = 2.1
| latest release date = {{release date|2009|08|02}}
| genre = Web application framework
| programming language = JavaScript
| license = New BSD License
| website = https://code.google.com/p/joose-js/
}}
{{Portal|Free and open-source software}}
Joose is an open-source self-hosting metaobject system for JavaScript with support for classes, inheritance, mixins, traits and aspect-oriented programming.
The Joose meta-object system is multi-paradigm. It supports class-based and prototype-based programming styles as well as class-based inheritance and role-based extension. While other JavaScript frameworks often specialize on DOM-access and AJAX, Joose specializes solely on bringing successful programming techniques to the JavaScript scripting language. Joose is thus often used in conjunction with another DOM/Ajax JavaScript framework and is tested with jQuery, YUI, Dojo, ExtJS, Prototype, Mootools and PureMVC.
Joose was heavily inspired by Moose, the object system for Perl 5 which was itself inspired by the Perl 6 object system, but unlike Perl and Moose, Joose doesn't support multiple inheritance.
Example
Two classes written in Joose:
Class("Point", {
has: {
x: {is: "rw"},
y: {is: "rw"}
},
methods: {
clear: function () {
this.setX(0);
this.setY(0);
}
}
});
Class("Point3D", {
isa: Point,
has: {
z: {is: "rw"}
},
after: {
clear: function () {
this.setZ(0);
}
}
});
Point3D is a subclass of Point. It has another attribute defined and additional code to run after running the superclass clear() method. The "rw" means the attribute is readable and writable with a pair of get/set accessors generated automatically.
References
{{refbegin}}
- [http://ajaxian.com/archives/joose-expands-with-new-orm Ajaxian]
- [http://gearsblog.blogspot.com/2008/03/joosegears-adding-support-for-workers.html Google Gears blog]
{{refend}}
External links
- [http://joose.it/ Official website]
- [https://code.google.com/p/joose-js/ Official Joose 2 website]
- [http://groups.google.com/group/joose-js Joose Mailing List]
- [http://joose-js.blogspot.com/2008/11/joose-presentation-at-barcamp-hamburg.html Presentation: Software development with JavaScript and Joose]
{{Web frameworks}}