Flex/Flash/Actionscript

My thoughts on Flex 3 features – Part 2

flex_condom.gif
This post addresses the code enhancement features Ted blogged about today. Now we’re getting into some stuff that’s worthwhile.

Compilation
This is huge to me, it’s one of those things that made me hate Flex Builder 2. It fixes a problem that has led me to curse at my computer. So I’m really happy incremental code compilation is coming, but this is something that should have always been in the product (man, I’m harsh today, huh?). Recently I’ve been working on a pretty large Flex app. We’ve got about 8 different MXML apps in the project, each representing a different prototype of the same general application with slight variations. As your app grows, and especially if you have multiple MXML applications, it takes longer and longer to do a build. Yesterday I was in a time crunch to get some updates for this app rolled out. But every time I needed to do a new build Flex Builder would take what seemed like an eternity (I don’t know, maybe not eternity, but it seemed really long). And Eclipse’s memory usage skyrocketed up to well over a gig of RAM. I only made changes in a few classes, and I only wanted to test one of the MXML apps out of the 8 that were in the project. But every build had to recompile each MXML app (yeah, I know you can remove MXML apps from the project’s preferences, but that’s a hassle to always do). So anyway, this will definitely save me time. And when you’re billing by the hour, a minute or two saved each time you build your app adds up to a lot of dollars.

Language Intelligence
I can’t comment on this because I have no idea what implications this has for writing code. He mentions the features this enables (refactoring, code outline, etc), so I’ll cover those features on their own.

Refactoring
This is good, and a lot of people seem to think this is the most important thing in this release (judging by blog reactions and the oohs and aahs when it’s demoed in public). I mean, this is cool, it saves you time when you need to refactor. But I’ve done some pretty intense refactoring and I gotta say that refactoring’s not on my top five list of things I want to see in Flex 3. It’s great that it’s there, and I’m happy to take advantage of it, but I don’t see this as one of the top features in this release. I might totally be the exception here.

Class Outline
I don’t care. I’ve never used the application Outline view, I don’t think I’ll ever use the Class Outline view. It shows all the imports in a class? So? They’re all at the top of the class anyway. It shows all the function and variables? I don’t care, I can control-click on anything I see in a class and jump to where it’s declared, that’s more useful to me.

Code Search
This I find useful. I have often found myself doing a search within a class for every reference to a specific variable or function. I’d almost like to see this code search panel automatically open every time I control-click on a variable or function name. This doesn’t solve a huge pain for me, but I’m sure I’ll use it.

Profiler
THIS IS HUGE. This is without a doubt the single best feature out of this set. Maybe of the entire Flex 3 release (obviously I have to wait to hear what else is included). HUGE. People say they want refactoring… fuck refactoring, I want the profiler. There have been countless times in my Flex development that I’ve wanted this. Every Flex app I’ve ever made could have benefited from having this profiler. This will allow Flex apps to get much bigger and much more complex. We’ll get much more graphic-intensive but still usable apps because of this. When you build a large Flex app you quickly start hitting performance issues. AS3 is damn fast for small stuff, but using the Flex Framework and very complex layouts means the player is doing a ton of layout calculations for any screen movement. Then when you add in component creation and you start creating references to components that you think are being disposed of, but turns out they’re not and the GC doesn’t free those components… it all goes to hell. Very large, complex Flex apps running for days almost always get slower and start eating up more RAM. Making your app GC friendly is difficult when you start building big apps. The profiler will be an essential tool for any developer working on a Flex app of any large size.

Module Support
That’s cool, whatever. I’m still tired from my excitement over the profiler, so these next features aren’t going to really get much love from me.

Multiple SDK Support
I don’t really see this as being very important. I guess the idea is that you can have developers with different SDK versions working on the same Flex app? But really? I don’t see that happening. One thing I do see that’s useful is when a new hotfix or update comes out, this will let you take an existing Flex app and testdrive it with the new update to see if there are any issues. If there are you can easily switch back to using the old version until you figure out how to migrate. That’s useful I guess.

Summary
PROFILER PROFILER PROFILER. This is worth getting the upgrade for. The only other thing in this feature set that I really want is the incremental compilation, but that will just make me dislike Flex Builder less. The Profiler will actually make me drool.

Tomorrow Ted’s going to write about the new components in the SDK. I want new components! But I think this is going to be less than exciting. We’re going to see an enhanced DataGrid, and probably other enhancements to the list-based controls. I hate the DataGrid. I understand why it’s really important to Adobe and why a lot of enterprise business apps need a powerful DataGrid control. But it’s so damn boring. Seriously people, come up with a more exciting way to show your data, don’t just drop cells into a grid. I know you love excel, but we’re working with a platform that can display data in all sorts of cool ways. Enough with the DataGrid.

I would love to see new UI components, but I don’t think we’re getting anything new (I’m hoping I’m wrong tomorrow). He also hints at SQL support within AS3, but don’t we already have an open-source project to do that? I think the framework updates are what I was most excited about when I first thought about Flex 3, only to find out that we aren’t getting a new set of components, just a few upgrades to the boring components. But we’ll see tomorrow.

My amped-up excitement for the profiler has worn off now, but seriously, the Profiler is cool. Like in terms of adding up to a BJ in my mind? Flex 3 is getting closer.



Related:

  • This post discusses the features Ted Patrick blogged on Wednesday: the Advanced DataGrid component, Deep Linking, Resource Bundles for localization, and the Flex Component Kit for Flash CS3. Advanced DataGrid (I would've called it SuperDataGrid) This is basically what the community has come to call a "TreeGrid", plus the addition…
    Tags: flex, components, will, i'm, it's, apps
  • Seeing how I bashed on what I saw as over-hyped PR about the upcoming Flex 3 beta, I figured I would post my thoughts on the new features that Ted Patrick has been showing. Someone asked me to write about whether any of the new Flex 3 features "add up…
    Tags: flex, components, i'm, will, app, time, features
Standard

3 thoughts on “My thoughts on Flex 3 features – Part 2

  1. Multiple SDK support will be most useful when a version of Flex supports Flash Player 10. Obviously, a lot of folks will want to target the older player for a while, so it’ll be nice to be able to switch back and forth. Not exactly an exciting reason, I know, but a good thing to have for the future.

    I’m with you on the DataGrids. Boring as hell. My coworkers once looked at me like I was crazy because I told them I had never needed a DataGrid. I like to find more interesting ways to display my data, thank you very much.

  2. Jim says:

    The sql support is apparently for a local sqlite db rather than a mysql server, so it’s quite different in terms of an apollo app one might distribute. In that the user would not require to have a mysql server running or accesible (sqlite is file based).

    So quite handy if you do that sort of thing and require a database, SQL and a full text search. Previously I’ve had to build a simple socket server with sqlite support built in and run that with the app, perhaps a little more effort than I like to have to make.

    I guess it depends on what you need to do, but that particular one is a huge win for me.
    Otherwise, I tend to agree with you, thanks for the interesting read.

  3. Again, choice graphic selections for your blog posts.

    Language Intelligence looks alright. I’ve noticed alot of times code-hinting fails for me, if i’m using my own manifest file, or bla bla, this that and third. Anyway i saw the preso on it and it looks dope. Forget all the details but should lead to a more stable ide.

    I gotta say bro, lately your blog is one of only ones i’m reading.
    cool shit, keep it up

Comments are closed.