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?
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, 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
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, 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
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, 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, At
4/14/2008 1:04 AM
Post a Comment
Subscribe to Post Comments [Atom]
<< Home