Adobe has a great, brave new world mapped out with Actionscript 3 and Flex 2. Unfortunately, I haven’t been able to find a way to teleport to that world easily, outside of a complete rewrite of my Flash 8/Actionscript 2 projects.
The Past
Our company hopped onto the Flash/RIAA development platform back in 2003 – experienced Java developers moving to a development environment where most developers were designers turned scripters. We found the platform slow, cumbersome and when researching problems, we found alot of answers following the pattern of “I’m not sure why but this seems to fix it”. The tools combined the worst of scripting and strongly typed development worlds – slow compile times for the MMC and little compiler help for typing errors.
Yet we persisted. The jaw dropping reaction of ‘You can do that on the web?!’ justified the time consuming, error-prone development cycles. We now have a number of RIAAs based on the Flash/Actionscript 2/V2 component platform.
Along the way, we developed a solid foundation of frameworks and best practices that have nearly eliminated all of the previous development gripes. ‘mtasc+asdt+as2ant+eclipse+using only strongly typed actionscript’ has our development cycle on turbo speed with compile time checking. We rolled our own unit testing framework and now use dynamic movie clip linking to completely remove all dependence on the Flash development environment.
The Present
Life is good but it is not great. We’re still a far cry from the refactoring, profiling and runtime debugging tools that Java provides. From what I can tell, the AS3/Flex 2 world still has missed the boat on these very important development tools.
I still have a hard time convincing the non-Flash developers in my company that its *safe* to code in Flash, meaning you will actually spend time getting something done rather than chasing down *mysterious* behavior problems. Anyone who has spent time with Flash/AS2 knows what I am referring to – the unexplainable combobox that doesn’t appear (and no, _lockroot is NOT the right answer!) or the quirkiness that arises if you don’t understand how the timeline/doLater function works, etc.
Anyways, my point here is that for all the time we have invested there, its still not as good and not as standardized as Java development. It’s hard to build maintanable, testable code bases in Flash. You *will* spend considerable amounts of time setting up environments, experimenting with development practices and rolling your own ’scaffolds’ to get things to where it feels *safe* to develop large scale projects.
The Future
Well now comes AS3 and its effectively what we have tried to do with AS2 – make it more like developing in Java. I have to say, the component set in Flex 2 is reason enough for me to switch. But after downloading the Flex 2 development bundle, I have the following gripes -
- Porting the codebase – Our application codebases are over 100,000 lines of UI components, controllers, models and event handling. Its an endeavor to do the several passes it’ll take to a) port the code and b) certify that the port works. I’m in favor of the new package naming conventions but it would have been nice to be able to take advantage of the Flash Player 9 AS3 performance without having to port everything.
- V2 Components - Ok, when we chose Flash MX 2004 way back in the day, little did we suspect that we were being asked to guess what direction Macromedia/Adobe was going to go in the future. Its very clear, after reviewing the AS3/Flex 2 component documentation where Adobe’s R&D dollars are directed. Flex 2 components are what the V2 component should have been and I gripe because I have not found an escape path other than rewrite for those stuck with V2.
- Reinvestment in Tools – My final gripe is that I have probably a solid year (as in 365 days, 12 hours a day) of my life spent around building development frameworks, processes and tools to make Flash development productive. AS3 effectively throws out my nice mtasc/asdt/as2ant/eclipse world. I now need to figure out how to do the same with the AS3 compiler and, if it proves to be worthwhile, the MXMLC.
After having listed my top 3 gripes, I suspect that the reason why we chose Flash MX 2004/AS2 years back will be the same reason why we bite the bullet and migrate to AS3/Flex 2. It’ll be to get that jaw dropping reaction “You can do that on the web?!”
Well almost. With Apollo on the horizon, the reaction we may be looking for is “I didn’t realize I was using a web app!”
