Macromedia’s previous Flash release, Professional 8, introduced major new design features like blend modes, bitmap effects, improved text display and a new video codec with alpha support. By contrast, the new features in Adobe’s first release, Flash CS3 Professional, look like mere tinkering and Adobe was forced to hype some less-than-thrilling advances like the ability to convert complex tween-based animations into ActionScript, an improved (but still awkward) skinning system for UI components and new tools for adding – wait for it – rectangles and ovals.
There was, however, one truly fundamental new development that Adobe did its best to play down – Flash’s entirely new ActionScript 3 scripting language. This is a rewrite of the previous ActionScript 2 (which is still included for backward compatibility), a new language based on the ECMAScript standard and accompanied by a reworked Flash Player API (Application Programming Interface). Indeed, the changes are so fundamental that, for the first time, it was necessary to add an entirely new ActionScript Virtual Machine (AVM2) to Flash Player 9 to execute version 3 code (again, the original AVM1 remains for backward compatibility). The result is a more modern and powerful object-oriented programming environment with superior debugging capabilities, which produces more robust applications capable of dealing with large datasets and, thanks to AVM2, runs code up to ten times faster.
This all sounds great on paper, but in practice means total upheaval for Flash authors, most of whom are designers first and developers only second – they’ll have never heard of ECMAScript, let alone wish to throw away their present skill set to learn it. Moreover, the welcome new API features such as E4X (ECMAScript for XML), which supports XML as a native data type, come at the expense of lost familiarity and problems over interoperability – you can’t mix language versions or access variables in an ActionScript 2 file. It’s a good job the new ActionScript 3 debugger is better at highlighting coding mistakes, because there’ll be many to highlight.
Such upheaval would still be worthwhile if the end-user benefits justify it, and for some projects they will. However, for most of the work Flash is currently used for, they won’t. Flash’s user base has been built up primarily for its multimedia handling and design abilities, and the number of people using it for large programs and datasets remains comparatively small. The end result is that for typical code light Flash projects, most authors will be better off continuing to target Flash Player 8 and ActionScript 2, especially given that the current market penetration of Flash Player 8 is almost 96%, while Player 9 lags some way behind (and will take longer to catch up the more designers stick with 8).
Macromedia always ensured a virtuous circle by adding new must-have design features to drive new Flash player take-up, but with CS3 Professional Adobe seems to have got it completely wrong by failing to provide major new end-user benefits while simultaneously alienating the majority of authors. If ever there’s been a version of Flash that both author and end user can safely skip, this is it. Which is a bad move when, for the first time, Flash is about to face meaningful competition (and competition doesn’t get any more meaningful than Microsoft).
Microsoft has Flash in its sights for the very good reason that it’s become the most pervasive software platform, with close to 99% of internet-enabled desktops, and a good proportion of mobiles too via Flash Lite. That’s not only more pervasive than other media players such as Shockwave or QuickTime, but represents a bigger market share than Internet Explorer or even Windows itself! And while the format might currently be used mostly to deliver eye-catching banner ads and YouTube videos, it’s really only scratching the surface of what it could do: Flash has moved on from its humble animation origins, and in the hands of advanced users is capable of hosting the next generation of Rich Internet Applications (RIAs).