A journal that focuses on Flash Platform development, and a little bit about what I am up to on any given day.

Tuesday, July 26, 2005

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).

4 Comments:

Blogger John D Giotta said...

Very nice usage Tony.
I've done a few RIAs just with Eclipse and MTASC alone.

Its great but there are areas that only the Flash IDE can fill.

8:39 AM

 
Anonymous Anonymous said...

Hi Tony,

Yeah MTASC is awesome. Have you think in post your command to compile in Flash IDE with MTASC?

btw,

1# - MM could think in let the user configure if he wants to compile with MMC or with MTASC as an option in the new upcoming IDE.

2# - Well, I think that Flex has a bit more to offer and currently the OS community have a lot of work to do if we want to compete with a server side tool like Flex.

Best,

C.

2:19 PM

 
Blogger Tony said...

Carlos,

I may post the extension eventually. Right now it is classified as an internal tool. There are a few issues that I will eventually work out, 1 being handling Excludes. I have the UI facility for it, but I have yet to implement it. But it is likely that it will appear eventually.

1#- I already have that functionality. By using custom keyboard shortcuts and a MTASC build JSFL command, I can easily create a routing script on CNTRL+Enter.


2#- Flex is a hell of a lot more than a compiler for sure, and it's feature set may not be easy to match. However, my point addressed a target audience issue that Flex should be built to satisfy.

To me, deploying Flex as a commandline application like MTASC could be alot more beneficial to the Flash development world as opposed to it being a server.

I am not not positive that the Application development world looking to Flash but scared of the timeline would have ultimately wanted a server as a solution. Instead they wanted a way to develop content for the Flash Player with XML and Actionscript and the ability to compile via commandline.

2:41 PM

 
Anonymous Anonymous said...

If you have a large project with many classes and it takes a long time to compile those classes. Then you could compile the classes into a SWC file and put it in you library. This may speed up your development; especially if you're using 25% of your time to compile.

12:37 AM

 

Post a Comment

<< Home