Marc Hughes

I am a developer from a bit west of Boston.

Top 10 Flash/Flex requests from a developer

19 Oct 2007

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?