I use FlexBuilder in my work, and, overall, it's a decent tool. Eclipse gets a lot of points for being free; Flex SDK gets a lot of points for being free. FlexBuilder doesn't get points because it's basically the above two items glued together along with a GUI builder, and it costs real cash.
Wait, I'm off track already. The price isn't the issue for me. Rather, I want to know why FlexBuilder doesn't feature incremental compilation.
Hold up again, actually, I guess I want to know how Adobe defines incremental compilation since they insist that it is present and switched on by default in FlexBuilder.
Now, if I make any change (even spacing) to any code file -- or even a non-compiled file, like some html or JavaScript that happens to be hanging out in the html-template folder -- FlexBuilder rebuilds my entire project. And it's a big project, so, the job even on a 3.6GHz box means a chance to catch up on RSS or grab more coffee.
Interesting take on incremental compilation. See, I thought the whole idea was to allow compilation of some, ah, compilation unit -- say a file, or a class -- into an intermediate format which would then be linked, stitched or, in the case of Java .class files, just ZIPped into a final form.
Besides allowing compilation in parallel, this design allows for an easy way to only recompile the units that have changed: just compare the date on the intermediate output file to the date on the source file. If the source file has changed later, then recompile it. It does not appear that this is how the tool is behaving.
Perhaps this logic is already built into FlexBuilder -- mxmlc, really, since that's the compiler -- and the minutes of build time are spent on linking everything into a SWF. Since Adobe revs Flash player regularly, and many movies are compiled with new features to target only the new player, it should be possible to update the SWF format a bit in the next go-around, so that linking doesn't take egregiously long.
Apparently, at MAX this year, Adobe has started referring to the Flash "platform" -- meaning all of the related tools and tech involved around the runtime. Fair enough, it is a robust ecosystem. But "platform" kind of implies that the tools support writing real -- and big -- applications, not just a clone of Monkey Ball or another custom video player for MySpace pages.

1 comments:
I think what Adobe means by "incremental compilation" is that it immediately starts building the project every time you save a file that goes into building it.
I don't find that the *whole* project gets rebuilt each time. It depends on what you touch. Change something core to the app, and yeah, the build time seems to take about the same time as a clean build. Touch something peripheral, though, and it goes much faster. One learns to suppress old habits of saving early and often when messing around with the core modules of the project.
I'm not defending them...Flex Builder is indeed rather slow, and one shouldn't have to appease the tool by abandoning those hard-won saving habits. There's a lot of room for improvement.
As to the question about whether they should be charging money for Flex Builder, that one's easy. Yes, it's got weaknesses, but it definitely offers real value. At professional programming rates, all it has to do is save you a few hours of time to justify itself. It's done that many times over for me.
Post a Comment