Not too long ago, the choice of professional tools for developing content for the Flash Platform was limited to a handful of commercial offerings with a sprinkle of open source alternatives.
Historically, the Flash IDE (the tool that many of us simply call “Flash”) has been the premiere environment in which to develop Flash applications, games, presentations, screensavers, mobile content the list goes on. The Flash IDE’s general-purpose nature is both one of its greatest strengths and its biggest weakness as it constantly teeters on the edge of being a Jack of all trades and a master of none.
It was partly in acknowledgement of this that Macromedia released Flex and Flex Builder: To provide a tool and workflow focussed on the development of Rich Internet Applications. With the annoucement of Zorn, it is apparent that the next generation RIAs will be built almost exclusively with the Flex workflow. I hope that, in time, the Flash IDE will also focus on a subset of its current features or specialize according to use cases. Wouldn’t it be amazing if, instead of Flash 9 Professional and Basic, we had Flash 9 Game Edition, Flash 9 Mobile Edition and Flash 9 Web Site Edition or, even better, if we had these as Eclipse-like perspectives within a single IDE. (And yes, those are the three areas that I believe the Flash IDE should be concentrating on in the future, dumping RIA-related functionality altogether.)
Following the release of the SWF specification, others have made forays into the Flash development tool market, resulting in both successful tools like Swish and not-so-successful ones like Adobe LiveMotion. On the open source front, we saw some earlier entries into the field, marking what I call the “first generation” of open source Flash development tools following the release of the SWF specification by Macromedia.
Open Source Flash: The Original Series
Ming was one of the first libraries to offer server-side SWF generation via code. Unfortunately, there was a high barrier of entry, requiring programmers to have an understanding of the low-level structure of SWF files. Consequently, it was (and still is) mostly used for dynamic server-side generation of simple, customized SWF content (similar to what can be achieved with JGenerator, another old-school open source Flash tool.) Perhaps one of the most high-profile of the first generation open-source development tools, however, was Laszlo.
Laszlo pioneered the presentation server concept for Flash applications and was, in many ways, ahead of its time. It offered a robust and stable component set and a high-level declarative model for the generation of Flash applications at a time when Flex was no more than an unhad thought in Macromedia’s collective consciousness. The declarative model was later adopted by Macromedia in Flex. Unfortunately, there are three fundamental flaws in Laszlo which, unless tackled, leave its future in doubt: Laszlo applications cannot load in regular SWF files containing ActionScript compiled by either the Flash Compiler or MTASC, the file size of Laszlo applications is prohibitively large and you have to learn Yet Another Markup Language (YAML). The incompatibility issue severely limits the extensibility of the Laszlo platform by Flash/ActionScript developers and means that Laszlo is left to constantly play catch-up (Flash Remoting, one of the cornerstones of efficient n-tier RIAs, for example, is still not available for Laszlo.) The file size issues made us disqualify Laszlo on a recent RIA project in the Netherlands although we wanted so much to use the mature, amazing components and benefit from the excellent documentation. I also have serious doubts about whether developers will have the time or inclination to learn YAML given that the jobs out there today and in the foreseeable future will be looking for MXML and XAML skills. That said, being open source gives Laszlo an active developer base and community and I do hope that they realize the importance of these issues and plan to address them as a priority.
Now what was I saying? Oh yes Look at how far we’ve come: From being limited by a handful of development tools, we are, today, literally spoiled for choice thanks to the Open Source Flash movement and the selfless efforts – the investment of time, sweat and tears – of the hugely talented pool of open source Flash developers and the products of their genius.
The Open Source Flash Revolution
A few months ago, we witnessed the tipping point in the world of open source Flash. The launch of the OSFlash initiative is an artifact of this event. OSFlash is a watering hole, an enabler and resource for the Open Source Flash movement. For many, it is the home and face of open source Flash today. It currently hosts over twenty open source Flash projects, including ActionStep, Screenweaver, Swfmill, Xray, Macromedia’s own Flash-Javascript Integration Kit and my baby, Arp. Providing change management in the way of Subversion repositories and collaborative tools such as Trac and Dokuwiki as well as mailing lists to hosted projects, OSFlash is playing an active role in the realization of the Open Source Flash Revolution that we are in the midst of today.
The Open Source Flash Revolution was sparked in great part by the release of MTASC: An open source ActionScript 2 compiler by Nicolas Cannasse who is also, alongside myself, one of the founders of OSFlash. By separating the compiler from the IDE, MTASC has allowed for the possibility of open source development environments such as AMES (ASDT, MTASC, Eclipse and Swfmill – and no, that’s pronounced “aims” not “a mess”) and FlashDevelop. These new tools, used by themselves or in concert with the Flash IDE, have given programmers a much sought-after boost in productivity. Even as the tools continue to be actively developed, people are creating real-world applications with them today.
Take the timely Hurricane Track 2005 application developed by John Giotta, for example. As John wrote on the OSFlash mailing list today, it was one of the first projects he built with AMES. “It’s a hurricane tracker that was very rushed due to the fact I was asked to develop it during this very active season here in the US. However, do it the ease of developing in AMES tool set I was able to produce very quickly.”
What’s the buzz?
One of the most exhilarating aspects of being part of OSFlash is experiencing the raw creative energy of members of the community as they brainstorm, building upon each others ideas, designs, tools and code. I am constantly amazed while watching the spontaneous interactions from which flow an almost seamless progression of ideas, plans, projects and releases. It is liberating. Bureaucracy, office politics and the clueless manager are but distant memories in the world of open source. Open source projects meet practical needs and evolve according to the needs of the community. In other words, they scratch and itch. And at what speed!
Since I wrote my last update, two weeks ago, both Screenweaver and Xray have been released as open source.
Screenweaver used to be one of the best projector tools, with an API that was loved by developers, until Rubberduck, the company selling it, disbanded. Now, thanks to the efforts of Edwin van Rijkom and Darron Schall, it is back as open source and slated to go on to bigger and better things. The next step in its development will include the support of Flash 8’s External Interface allowing for synchronized communication between your SWF and the Screenweaver shell. (If you’ve ever wrapped SWF interfaces for desktop applications, you will immediately understand what a time and effort saver this is going to be.)
Xray, the tool formerly known as AdminTool, is John Grden’s labor of love. Xray allows you to take snapshots of the state of your Flash application, giving you greater visibility and greatly aiding the debugging process. It comes in two versions, one that works with projects compiled using the Flash IDE and another for use with MTASC and Swfmill-based projects.
For those of you who missed it, the Flashcoders Wiki is also being revived on OSFlash and we have a couple of new projects: XML-RPC Flash is an ActionScript 2 library that allows Flash to act as an XML-RPC client and FREE is a new initiative to create an open source version of Flash Communication Server.
The world of Open Source Flash is a vibrant, exciting place and I will endeavor to provide you with frequent updates on the latest news via this column on Flash Magazine and on my blog, FlashAnt. In the meanwhile, however, why not come join in on the fun by signing up for the OSFlash mailing list or browse through the virtual playground of free tools on the OSFlash Wiki.
Aral Balkan is an expert on the Flash Platform and gets his kicks doing usability design and testing, architecting Rich Internet Applications, consulting, training and setting up and leading development teams. When not busy running his Brighton, UK-based company, Ariaware, he devotes his energies to the Flash community. Alongside running OSFlash.org, he is director of the London Macromedia User Group and publishes tutorials and articles on his blog, FlashAnt.org.