Introducing the World of Open Source Flash

I was eight years old when my father brought home our first computer. It was an 8MHz IBM XT PC compatible with a four-color CGA display, a whopping 640KB of RAM, and a 20MB hard drive. I quickly tired of playing the few games available at the time—Alley Cat, Moonbugs, Dig Dug—and began leafing through the BASIC manual that came with the computer to write my own games.

Source code, especially in those days, was everywhere. Most computer magazines had pages and pages of code—games, utilities, what have you. Commercial software was in its infancy, and you were as likely to copy a listing from a magazine as you were to find an application to buy.

So, I learned BASIC by copying source code written and shared by others. I dabbled in Logo. I wrote games and even a primitive word processor to keep myself amused. When I started to outgrow BASIC, I moved on to Pascal and C and briefly flirted with Prolog.

Manyyears later, I would find that programming knowledge invaluable when a company called Macromedia released a version of a web animation application called Flash with a scripting language called ActionScript.

Today, software is something most people buy in a box off a shelf (or download from the Web) and you’d be hard-pressed to find source code listings in computer magazines, but there is more readily available source code in the world than ever before thanks to the astronomic rise in popularity of the open source software movement.


Open source software is software for which the source code is freely available. But that’s not its only defining characteristic. In fact, the Open Source Initiative lists ten criteria that an approved open source license must meet.

You can read the Open Source Initiative’s definition of open source at http://opensource.org/docs/osd.

The sprit of open source is the free sharing of knowledge. The ultimate goal is to create high-quality software by practicing an open and transparent development process that is subject to peer review. These types of definitions, however, are dry, academic statements that cannot capture the character or spice of a thing. So, let’s get back to the story.

When I first started dabbling in ActionScript in the days of Flash 4 and Flash 5, I learned an invaluable amount from the knowledge shared by members of the Flash community. Flash pioneers such as Branden Hall, Sam Wan, Ted Patrick, Joshua Davis, Jared Tarbell, Ralf Bokelberg, Keith Peters, Colin Moock, Peter Hall, Charlie Cordova, and Jesse Warden taught me invaluable lessons by sharing their code, their time, and their perspectives with me and the rest of the community on their blogs and on lists such as the seminal FlashCoders.

All this is to say that the Flash Platform, from its earliest days, has always been about sharing and community. In the beginning, open source on the Flash Platform was limited to sharing source code, the binary FLA files used by the Flash IDE, and (later) the ActionScript files and classes.

Having an open source compiler meant that developers on the Flash Platform were not limited to just sharing Flash code but could create their own open source development tools. The release of swfmill, an XML-to-SWF compiler, allowed developers to add assets to their Flash applications. This was followed by the creation of a fully open source development stack for the Flash Platform called AMES. AMES stands for “ASDT, Apache, MTASC, Eclipse, swfmill”—the four open source tools that compose it. ActionScript DevelopmentTool (ASDT) is an Eclipse plug-in for developing ActionScript code. Itwas the first development environment for ActionScript that gave Flash developers the professional-quality tools (such as language intelligence) that the primitive code editor in the Flash IDE did not provide.

AMES influenced the creation of the commercial Flash Development Tool (FDT) and later provided healthy competition for the Flex team at Adobe, spurring Adobe to improve its own Flex Builder. Alongside AMES, other development tools such as FlashDevelop also surfaced at this time and are still going strong.

Development tools aside, open source frameworks such as Arp, Cairngorm, and PureMVC make it easier for developers to work in teams and build scalable web applications on the Flash Platform, regardless of whether they are using open source tools, the Flash IDE, or Flex.

The birth of OSFlash.org, a hub where open source developers could meet, plan, and build their projects, coincided with the “tipping point” in open source development that was spurred on by the release of MTASC and swfmill. OSFlash became an incubator that led to the creation of new open source software on the Flash platform.

Fast-forwarding to the present day, some of the most exciting technologies on the Flash Platform are open source. These include Papervision3D, the simple and powerful 3D library that made 3D feasible on the Flash Platform; Red5, the open source server that handles streaming audio and video and realtime shared objects; SWX, the native data format for the Flash Platform; and, with Flex 3, the Flex SDK, including the Flex compilers, as open sourced by Adobe.

You will read about many of these technologies, and others, in the rest of this topic, many times from the actual authors and contributors to the projects. The contribution of the open source community to the Flash Platform has been and continues to be immense. And what a lovely community it is too. Open source is about sharing knowledge and furthering the state of the art. I hope that this topic helps you start on your own journey of knowledge. And once you’re ready, I hope that you too share what you have learned, and the wonderful things you have created, with others. You can start getting involved today by joining OSFlash’s mailing list and saying “hi.”

Today, we stand on the brink of a web application revolution with Google’s recent announcement of Google App Engine, a massively scalable, integrated development and deployment platform that perfectly complements the toolsets—both open and closed source—that we have on the Flash Platform. This is truly an exciting time to be creating web applications, and the tools and servers you will be reading about in this topic are at the cutting edge of web technologies today

Welcome to the revolution. Welcome to open source Flash. I hope you enjoy the journey!

The following links should help you get started on your journey in the world of open source Flash. Remember that you can almost always find information about an open source Flash project by going to http://osflash.org/<project name> (for example, http://osflash.org/papervision3d,).

■    OSFlash: http://osflash.org

■    OSFlash Mailing List: http://osflash.org/mailman/listinfo/ osflash_osflash.org

■    The GAE SWF Project: http://gaeswf.appspot.com

■    Google App Engine: http://code.google.com/appengine/

■    Papervision3D: http://osflash.org/papervision3d

■    Red5: http://osflash.org/red5

■    SWFAddress: http://www.asual.com/swfaddress/

■    PyAMF: http://pyamf.org/

    Fuse: http://osflash.org/fuse/

■    GoASAP: http://osflash.org/goasap/

■    SWX: http://swxformat.org

■    AMFPHP: http://www.amfphp.org/

■    MTASC: http://mtasc.org

■    swfmill: http://osflash.org/swfmill

■    AMES: http://osflash.org/ames

■    FlashDevelop: http://osflash.org/flashdevelop

■    ASDT: http://osflash.org/asdt

■    PureMVC: http://puremvc.org/

■    Arp: http://osflash.org/arp

■    Cairngorm: http://labs.adobe.com/wiki/index.php/Cairngorm

Next post:

Previous post: