Or more accurately, “On Flash Builder 4 Beta 2″. If asked to describe what “migrating” a project from Flex 3 to Flex 4 is like in one word, my response would be “teeth”. Then, when asked what the hell that means, I would reply, “well, the experience is like pulling teeth, but you asked for one word.”
No, I haven’t “upgraded” my development environment to FB4; I created a new Eclipse installation and a separate workspace to test so that my development environment wouldn’t be affected. I noted that FB4 apparently is now compatible with Eclipse 3.5, so I used that in lieu of 3.4, which is what we’re using currently because the plugin architecture changed somehow in 3.5 and Adobe didn’t update FB3 accordingly (or FB4 beta 1 for that matter). I suppose this could be the source of the first major problems I encountered (will have to test FB4 beta 2 with Eclipse 3.4 to know for sure), which are:
- I kept getting a bizarre “Windows – No Disk” error message, which meant I had to click “continue” about fifty bajillion times because I have one of those infinity-in-1 card readers installed in my PC. Eventually tracked this down to what appears to be a new preference in Eclipse; changing the General -> Web Browser preference from “use internal browser” to “use external browser” fixed the problem.
- Executing the launch configuration (to bring the app up in your default browser) doesn’t cause the Ant build to run first like it does in the current IQPDE (new acronym: IQP Development Environment – like it? although maybe NPDDE would be a better choice). I currently have no solution for this.
Things just went downhill from there. When I tried to run the build, the mxmlc task failed epically because the JVM ran out of heap space! Geez, Adobe, I know memory and disk space is plentiful these days, but you seriously managed to use up sixty-four megabytes of heap space?!? For those who haven’t taken CS3013 (OS), the heap is where all the stuff you allocate dynamically at run-time goes. I have never encountered this problem before, not even with Eclipse, which is a pretty sizable Java app, or with the SoftEng project, which was pretty massive towards the end.
So after I finally managed to build the project using the Flex 4 SDK, which is also still in beta, I tested it out in my browser. Whoa! It looks really different with the new “Spark” UI components. Of course, there’s also a random hang when you try to edit a project response. Naturally, I can’t reproduce this in the standalone debug player, but it happens in both IE and Opera.
Having become extremely frustrated, I’ve quit working on this for now. Flex 4 and FB4 have some great new features, as mentioned in a post I made a while back, but if moving up is going to require this much effort, it may not be worth it. Not to mention that this still doesn’t tackle a host of other things, like updating the namespaces on all our MXML files to use the the 2009 namespace (as opposed to the current 2006 namespace). This will no doubt break a variety of things. Oh, and Adobe randomly decided that “mx:” prefixed on everything is no longer a best practice. Well, they can bite me as far as that goes. Also the “data services import” functionality is different and the generator has been updated, so that will probably cause some issues as well.
Having said all of this, I’ll probably continue tinkering with FB4. The new Package Explorer is a vast improvement over the Flex Navigator in FB3. Being able to see documentation without having to Google it is a major plus as well. I also hear there’s some new code completion stuff in there, like auto-generating event handlers and accessors. Skinning applications also appears to have gotten much easier in Flex 4, although having never tried to do so with either version, I can’t really say for sure. Not to mention that Eclipse 3.5 feels a lot faster in general, and the Flex 4 compiler is definitely speedier than Flex 3′s (a case of the classic memory vs. speed trade-off, perhaps?). Then there’s also the fact that you’ll be forced to upgrade eventually: Adobe’s attitude, as with all other software developers, seems to be “support the last two major versions”, so FB4 drops support for Flex 2. This means that when Flex 5 comes out, they’ll probably drop support for Flex 3. Of course, that’s no doubt in the far off future; they haven’t even finished with Flex 4 yet. Still, always be prepared…
Pingback: Flex Sucks: Greatest Hits! « CaptainRichard's Blog