Overview

Jangaroo is an Open Source project building developer tools that adopt the power of ActionScript 3 to create high-quality JavaScript frameworks and applications. Jangaroo is released under the Apache License, Version 2.0.

Why use Jangaroo?

There are two main use cases when you might want to use Jangaroo tools:

  • JavaScript programming in the large - Adopt ActionScript 3 language features like packages, classes and inheritance, interfaces, private members, and many more to create even large-scale client-side Web code, where you otherwise would have used JavaScript directly. This approach is extremely helpful when creating frameworks with explicit public APIs, but also for larger applications that use such frameworks.
  • Running ActionScript 3 code directly in the browser - You are implementing a Web project that must not rely on plugins and/or requires close integration into an HTML Web site, possibly already using some JavaScript framework. You want to reuse or build upon existing ActionScript 3 code (utility classes, frameworks like FlexUnit, custom code) as well as JavaScript APIs and code.

Use Cases

For example, you want to

  • implement Web UIs based on Ext JS, Dojo, qooxdoo, or any other JavaScript UI framework, taking advantage of the language features of ActionScript 3
  • create OpenSocial widgets, Facebook applications, or just another Google Maps mashup in AS3
  • develop for the iPhone in AS3 instead of JavaScript or Objective C
  • let your existing ActionScript 3 application run in the browser without a Flash plugin
  • share utility classes or business logic implementations between a Flex version and a pure browser variant of your application

Granted, some of these examples are still rather visions where some more work needs to be put into Jangaroo libraries and API emulations. But many applications are already possible, and since Jangaroo is open source, you can contribute to increase the possibilities!

To conclude, Jangaroo can leverage the talents of advanced JavaScript programmers who have to do "programming in the large" as well as ActionScript developers who have to produce code running directly in the browser.

Compiler

The main tool is an ActionScript-3-to-JavaScript compiler called jooc. It takes source code written in a subset of ActionScript 3 and translates it into JavaScript 1.x that is understood by current browsers (with the aid of a light-weight runtime).

Language

So far, JavaScript projects had to rely on proprietary runtime extensions to conveniently build classes, inherit from a superclass, do a super call and so on. There was no tool support for these extensions. ActionScript 3 can do better, but it is not available in every environment, or only through plug-ins.

We carefully selected ActionScript 3 language features that JavaScript 1.x developers need most desperately for Object-Oriented Programming "in the large" to form the Jangaroo language. Because the Jangaroo language is a subset of AS3, it profits from third party tool support, like Flex's documentation tool asdoc or JetBrains' fantastic IDE IntelliJ IDEA.