CookbookRecipe1 CookbookRecipe11 CookbookRecipe2 CookbookRecipe3 CookbookRecipe6 CookbookRecipe7
Joose is a self-hosting meta object system for JavaScript with support for classes, inheritance, mixins, traits, method modifiers and more.
Joose makes object-oriented programming with JavaScript easy, declarative and very productive. 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 extention.
The Joose framework has been successfully used in multiple production systems for twelve months now and has been proven to be very stable. Joose is being tested using an automated unit-test suite that is being run in all major browsers (Firefox, IE, Safari, Opera and Chrome).
To get startet check out how programming with Joose compared to standard JavaScript or read the getting started guide.
Join us on IRC: #joose on irc.freenode.org -- irc://irc.freenode.org/joose
Documentation
- Installation
- Getting started Guide
- Getting Help and getting in Touch
- Before and After: Joose for JavaScript programmers
- Building Things
- Building a Class
- Building a Module
- Building a Role
- Building a Prototype
- Building and using Types
- Building Singletons
- Meta-Interface
The World of Joose
- Compatibility to JavaScript Engines and Browsers (jQuery, Prototype, Dojo, Mootools, etc.)
- Joose and Google Gears
- Joose in the Media
- More Reading
- Hacking on Joose
The Joose Cookbook
- Recipe 1: The Point Example
- Recipe 2: Bank Account Example
- Recipe 3: A lazy BinaryTree Example
- Recipe 6: The Role/Traits Example
- Recipe 7: The augment/inner Example
- Recipe 11: Attribute Meta Classes
Examples
blok - Visio-Style Drawing Software
blok is a Google App Engine based project for collaborative editing of user interface prototypes using simple rectangles to represent parts of the ui. blok is mostly written in JavaScript using the Joose Framework and jQuery.
Class Browser
Joose provides very easy to use introspection facilities for Joose classes, modules and prototypes. The class browser example uses these facilities to show you information about the classes which are currently loaded. Its layout is based on the good old class browser included with VisualWorks Smalltalk.
Object-Relational Mapper
This example demonstrates a simple object relational mapper for the client-side SQLite database provided by Google Gears or HTML5.
Credits
Joose was heavily inspired by Moose, the post-modern object system for Perl 5.
Licencing
The licence for Joose and all pages in this wiki can be found on the licence page.