This blog isn't maintained anymore. Check out my current project, an agile/scrum management tool.

Friday, October 19, 2007

Top 10 Flash/Flex requests from a developer

I've been switching between Java, Flash/Flex and C++ development a lot lately and find myself swearing at missing Actionscript or FlexBuilder features way too often.

Here's my top-10 requests for future versions of Actionscript/Flex/Flex Builder...

#10 Type safe collections (Java Generics / C++ Templates)

var a:Array<int> = new Array<int>();
a.push( 5 ) ; // ok
a.push( "test" ); // compile time error



JDT, the Java environment in Eclipse has the best refactoring I've ever used. #9 through #7 go to some of those features.

#9 Refactoring - Extract Method.

Highlight a block of code, select extract method, and it replaces that code with a single call to a brand new method it creates.


#8 Refactoring - Extract local variable

Highlight an expression, select extract local varibale, and it replaces all instances of that expression with a new variable it creates.

#7 Refactoring - A rename that actually works all the time.

#6 Make Code In Front viable in Flex Builder.

#5 Make Thermo not suck. It has promise, I'm looking forward to it, please don't blow it. Oh, might as well remove Design View from flex builder entirely while you're at it.

#4 Make Linux support a first class citizen. Release Flash plugins and AIR runtimes at the same time. Oh, and do this without delaying OSX or Win32 releases or raising prices :)

#3 Code Templates. JDT and FDT rock when it comes to code templates. Lets get this functionality built into Flex Builder. What are they you ask? There blocks of code with sections marked as replaceable. When you want to insert that block of code you do a ctrl-space to bring up the context-menu and type a few characters of the name of the snippet. Then the entire snippet gets pasted into your code and it makes it easy to set the
for the replaceable sections.

#2 Save in the background - for some reason, WAY too often do I save a file in flex builder, and am interrupted while it rebuilds for the next 20 seconds. I know I can turn off auto-build, but I shouldn't have to. Don't block user interaction unless you have to (like when you're trying to launch the app).

#1 Enums - My #1 request! Type and range checking constants should be a requirement for any modern language. I could be wrong, but I think it could be implemented entirely internally to the compiler meaning the player runtime wouldn't have to change at all.

enum MyEnum {Value1, Value2 };
var val:MyEnum = MyEnum.Value1; // yay
var val:MyEnum = SomeOtherValue; // Compile time error



For the record, I really like Flash/Flex development. If I was writing this list for my Java or C++ efforts, there would have been more swearing involved.

What are YOUR top requests?

6 Comments:

  • For #10, look at ArrayElementType:

    [ArrayElementType("com.SomeVO")]
    public var cow:ArrayCollection;

    You'll get an exception if you add something other than a SomveVO.

    For #2, try Flex 3 Beta 2. It's stable enough that you can get benefit of the faster compiler. However, code completion for types sky-rockets the CPU for some reason. So... type ":void" instead of ":voi" and hitting Enter.

    By Anonymous Anonymous, At 10/19/2007 9:51 AM  

  • I just recently started using ArrayElementType and like it, but I really want something at compile-time and not runtime.

    I've been using FB3 since the first beta came out. If anything, it's worse than FB2 on the long delays after a save. This is mainly for large projects, smaller things seem to work fine.

    But thanks for the advice!
    -Marc

    By Blogger Marc, At 10/19/2007 12:48 PM  

  • [ArrayElementType("String")]
    private var coll:ArrayCollection;

    private function init():void{
    coll = new ArrayCollection();
    coll.addItem(23);
    trace(coll.getItemAt(0) is int);

    }

    The above throws no error and traces true

    By Anonymous Anonymous, At 10/19/2007 1:22 PM  

  • Multi-threading is also a must-have when doing some CPU-intense jobs. Although AVM3 is a lot faster than AVM2, it still lags behind java and silverlight. Hope Adobe is working on Flash Player 10 or something exciting.

    By Blogger dogsanity, At 10/19/2007 10:13 PM  

  • yay! Thanks for putting this list together Marc! I'm in the same boat as you. When I work with AS3 it's just painful because of the lack of good tools like Java has.

    Another thing you should add to the list is real time syntax checking. I hate that you have to save before Flex Builder will highlight your errors.

    By Anonymous Anonymous, At 10/21/2007 10:14 AM  

  • Busycode Inc. is a top Adobe Flex shop who develops Flex/AIR
    applications for clients. For more info,
    please visit http://www.busycode.com

    By Anonymous Anonymous, At 4/14/2008 1:04 AM  

Post a Comment

Subscribe to Post Comments [Atom]



<< Home