Compile me if you can
Lately alot of talk of SWF compilers has been going on. MTASC has arisen as a great alternative to compiling in the Flash IDE, and has allowed developers to integrate into other development enviornments such as Eclpise.
Last week I was meeting with a client of ours that is bringing us into a large software development project. As usual we are developing the Client UI, but this time it is a reqirement for us to integrate with a large software firm's source system. They have a fully automated build system, and requested information from me in regards to automating Flash compiling in their build system. I must say I was embarrased when i presented an open source, third party tool to them as the solution for doing it. Not that MTASC is bad or anything(it is great!), but it just seemed silly that Macromedia has not addressed this type of workflow. The emergence of MTASC alone, is testimony to the demand for such a solution.
Since that, I have been using MTASC on a project and I must say that there is an astounding difference in compile time using the tool. We have a large project (SNL Merger Model) that utilizes 100+ Actionscript classes,(outside of the mx framework) that we are currently in the process of reworking to compile under MTASC. I must say that this is not an easy feat. In a project that large, there are many little typing and variable definition rules that we did not adhere to that MTASC enforces.
Already though, compiling is faster and much less stressful on the system. Compiling the application currently from the Flash IDE takes about 3-4 minutes on my computer(1.7 gig, 512 RAM). When it completes, the computer feels as if it got hit by a car, and takes a minute or two to recover from the process.
Now imagine debugging a Flash application that takes that long to compile. Every little change causes you to waste time as you test. It has been a major problem on the project, and when I say major I mean that potentially up to 1/4 of our development time has been spent on compiling.
So as a result, we are investing the time to alter all the code to compile under MTASC. More than that I have built a little UI and command set for running MTASC from the Flash IDE. This was a bizarre concept for some developers I talked to about it. They had always percieved MTASC as a tool to utilize in other enviornments rather than the Flash IDE. I think however that using MTASC in Flash is a simple and great idea, and it is looking like the Compiler will not only solve our problem with SNL, but fit easily into the workflow we have already established.
So this exercise has led me to some conclusions:
1/ My #1 wishlist entry for the Flash IDE is an improved compiler, comparable to or better than MTASC. I want to see speed and I want to see the ability to add assets or classes without recompiling the whole swf.
2/ MTASC is a great example of what Flex should be. I still do not understand why Flex must be a server (other than price, and some of the "nice to have" server features).