Flex Builder Source Folders Need to Go Back in the Oven

October 31, 2007 on 2:56 pm | In Flex, Uncategorized | 7 Comments

“The pain, the pain…”
Jonathan Harris as Dr. Zachary Smith in the original Lost in Space

Dr. Smith was famous for whining, and so am I. Here’s my latest: Flex Builder does not work very well with multiple source folders in a project’s path. Probably the worst breakage is that integrated SVN source control (via the Subclipse plugin) doesn’t work inside them (FB-9989). Second worst would be that library projects can’t compile classes from multiple source folders (FB-9988). Yet another baddie: FB-5564: if you use Ctrl-click to navigate to a definition in a class which is in a linked source folder, a new window is opened unnecessarily, as if FB didn’t know that two files were actually the same. All this is too bad, because source folders are a really good solution to another serious problem with Flex Builder, and one that is probably harder for Adobe to fix: poor performance with multiple library projects.

If you’re using Flex Builder on some large applications with a number of library projects, you may have noticed it gets real slow. Yeah, I’ve noticed that too. It’s too bad, because using lots of small-to-medium libraries forces developers to be much more careful about dependencies between packages.

At Allurent, our approach to this problem has been to structure our Flex Builder projects for speed rather than strict dependency checking. We use Ant for all production builds (it builds multiple .swcs for dependency checking), while developers can use Flex Builder for incremental builds while they work on a project, if they want. To get around the big slowdown problem, we create mega-projects that include all the libraries’ source code directly via multiple source paths. While such projects are slow to open and start up, once you build them and warm up Eclipse’s caches they perform quite well.

The big fly in the jam jar — I know it’s usually ointment that metaphorical flies get stuck in, but that phrase gets kind of old, doesn’t it? — is that source folders are kind of semi-functional in Flex Builder. The fact that Subclipse doesn’t treat the contents of source folders as versioned (even if they are) is really frustrating. Maybe some folks out there are frustrated too. If you are please consider voting on the above bugs!

7 Comments

7 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Joe,

    You are trying to be politically correct, but Flex Builder has a long way to go to become an enterprise-grade IDE. So far, it’s a good tool for training and sale presentations.

    You can add Perforce to the collection of unusable version control systems.

    Speaking of super slowness of project compilations…try to comment out the fonts in your CSS file. In my project this action alone reduced the compile time from 7 minutes to 30 seconds.
    CSS should be compiled into a separate swc. The proper way to deal with fonts is compiling them into a separate library linked to your project.

    Comment by Yakov Fain — October 31, 2007 #

  2. Yakov, I’m not trying to be PC, really! While a certain percentage of the developers I work with would agree with you, many of us get a lot of mileage out of Flex Builder (the Eclipse plugin of course, not the standalone version). I know some Flex superstars who work only in vi and Emacs, and others who really prefer working in FB. While I tend towards the Emacs camp myself I find Flex Builder very helpful in many cases. I do not use it to actually compile anything large, I tend to use it as a source code browser and debugger front end. And as I get older I find code completion more and more helpful!

    None of us use Design View, though :)

    On another subject: If removing fonts reduced the compile time by 6.5 minutes, I have to ask — how many fonts are you using, and did you restrict the Unicode ranges that were getting pulled in?

    Comment by joe — October 31, 2007 #

  3. I’ve logged a similar issue. The comments on the bug indicate that the way we want to use source paths may just not be supported by the Eclipse platform. That makes all mostly useless in my mind…

    Comment by Daniel R. — October 31, 2007 #

  4. I haven’t tried it with FlexBuilder, but generally I have found Subversive to be better than Subclipse when working with Subversion.

    Comment by Adam Brod — October 31, 2007 #

  5. Joe-

    About the large super-project, you wrote, “once you build them and warm up Eclipse’s caches they perform quite well”. How fast would it take for a one line change to compile?

    We are deciding between one big project or multiple smaller library projects. For us, we would probably close the libraries not being modified, so that should speed up the build quite a bit. Depending on pre-compiled swcs seems to be fast in FB. However, I’m not sure if one big project would be faster and easier to manage.

    Thanks for your advice,
    Adam

    Comment by Adam Brod — October 31, 2007 #

  6. Adam,
    Thanks for the tip on Subversive, we’ll check it out! (no pun intended)
    It’s a little hard to answer your question on timing because our Eclipse builds run both compiles and some external Ant tasks – but the compilation aspect of the build looks to me to be in the 10 second range once everything is warmed up. Of course, we’re not really comparing specific project sizes so maybe this number isn’t meaningful.

    Working against SWCs in closed library projects is an interesting idea. I don’t know what its speed is relative to the one-big-project model; we should compare that.

    Comment by joe — November 1, 2007 #

  7. FYI, I went ahead and logged a bug about the FlexBuilder performance with Library Projects. http://bugs.adobe.com/jira/browse/FB-11097

    I couldn’t find another performance bug that was already open. If other people find it annoying, I hope you’ll vote for it and maybe pressure Adobe into fixing it before Flexbuilder 3 ships. :)

    http://bugs.adobe.com/jira/browse/FB-11097

    -Adam

    Comment by Adam Brod — December 4, 2007 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Entries and comments feeds. Valid XHTML and CSS.
All content copyright (c) 2006-2007 Joseph Berkovitz. All Rights Reserved.