Sascha Balkau has recently released Alcon 3, an alternative open source debugging tool for ActionScript 2 and ActionScript 3. InfoQ spoke with Balkau to discuss how Alcon 3 fits in ActionScript-based rich Internet Application ( RIA) development.
Alcon's Web site describes Alcon 3 as “a lightweight debugging tool for ActionScript developers that provides several straightforward and quickly accessible methods to debug any ActionScript 2 or ActionScript 3 application, be it from the Web browser, the standalone Flash Player or an AIR Runtime.” Alcon runs on any platform that supports Adobe AIR and can be used with the Flex compiler, the Flash IDE or MTASC.
To help InfoQ readers understanding why Alcon 3 was created, Balkau explains:
The first version of Alcon was written when we still had Flash Player 7. The first version was really just a simple logger that basically only could output traces made from ActionScript code. In that respect, it was similar to some of the other loggers written at the time.
Alcon 2 added supports for ActionScript 3 and some new features, like file loggers, so that log files could be monitored, and an Object Inspector, which was rather buggy at that time.
I wrote Alcon at first because there weren't many other options available at that time. You could either output traces in the Flash IDE or use one of the few very basic logging tools that already existed. However, they were too awkward to use for my taste. You had to instantiate the tracing class to use it. Because Alcon's debug class is static, you don't have to instantiate it. I wanted a very lightweight and quick approach to use the debug API.
Comparing Alcon with other ActionScript debugging options, Balkau says:
The goal with Alcon was to offer a quick and comfortable way to debug ActionScript without making it a resource-hogging behemoth. There are other tools, like X-Ray and the Flex Debugger, that let you check the whole state of your application, and they are good in their own right. However, for my purposes, they are overkill most of the time. In most situations, I still do debugging by doing trace outputs.
What makes Alcon different is that it offers some useful features that you don't get with similar tools, while trying to stay lightweight and offering a clean user interface. It's clearly meant to be a developer tool without the fanfare that you find in many Flex applications.
For example, Alcon 3 added the app monitor, so you don’t have to put a FSPMeter directly into your Flash or Flex application. The Object Inspector has been redesigned and is helpful for listing properties of any Object.
When asked about technical difficulties encountered during the development of Alcon 3, Balkau responded:
There weren't really any big hurdles. I guess one hurdle that still has to be addressed is the package size of ActionScript's LocalConnection, which is limited to 40 Kb. Basically, that means that Alcon becomes unreliable when you try to output an object with a data volume larger than that. Although Alcon 3 tries to fall back on using a Local Shared Object in that situation, it doesn't work out as well as initially expected. I'm looking into ways to remedy this, including perhaps by offering an alternative socket connection. But, don't count on it!
As for the next generation of ActionScript 3-based application platform, he says:
Flash Player 10 will come up with quite a few new features that many Flash developers have been requesting. As somebody who is mostly interested in game development, I'm especially looking forward to the new 3D effects, the shaders and the enhanced sound API. For me, this opens up even more possibilities for game programming, although I must admit I haven't even touched all of the version 9-specific features yet. The 3D enhancements are surely going to raise the limit a bit higher with respect to what's currently possible with 3D in Flash. It will still be a far cry from superior 3D gaming, but we're getting closer with each step.
I see ActionScript much more as a welcome alternative for people who are interested in game development now than it was years ago. This is true not only due to its media capabilities, but also because ActionScript is relatively easy to learn, and documentation and examples are ubiquitous on the Web.