Ted Patrick wrote last month about The Future of the Flash Platform and asked people to be more vocal about the features and bug fixes they're looking for. Here's my in-depth lobbying session.
Below are my top requests for the Flash platform. Most of the links are to associated bugs. I created a bug if I couldn't find an existing one and the request wasn't too generic, and of course I voted for all of the ones I found. Please vote for them yourself if you'd like to see them get worked on.
As a hopefully-uneeded cavaet, especially to all the members of the Flex team that I used to work with, this list doesn't mean I don't continue to go all googly-eyed for the Flash platform. Also, I mention Brightcove a few times below, but this is just my personal wants- I don't mention anything about FMS, video encodings, or the other possibilities for others at Brightcove.
Now on to the good stuff, in no particular order.
Flash Player and AS3 improvements
More compiler optimizations for smaller SWFs. Some of this covered by a bug, although its title is harsh. Some can be found in the new and very intriguing project called TAAS.
Mobile versions of the standard Flash Player. I know there's been announcements about this, I know multiple ways I'd want to use this at work and for play, and I don't think I need to say anything more on this one.
Get all classes in the player. I've needed this more than once, but I don't remember the scenarios anymore. It'd definitely be helpful for frameworks.
Private/protected constructors. Ted's post mentions that this is in the works, but I'm still noting it since it's marked as Open.
Ability to catch all uncaught errors. The bug is Under Investigation so this may not need any more votes. I could use this in multiple scenarios, both for testing and general error logging.
Include flexcover or create a new code coverage tool. And after this is done, I'd love to see support for this in Flex Builder, something at the same level as the profiler support.
EventDispatcher should expose list of attached listeners.
Headless player for unit tests. I heard at MAX last year that it's possible that the Ichabod player that's being used for search could be repurposed for this, which also has some tricks in it for not waiting as long for code to run. Having a headless player that could also run unit tests faster would be fantastic.
Flex SDK improvements
I want to first note the absense of Spark bugs and improvements in here. I've spent most of the last year working in straight ActionScript rather than the Flex framework, and so while I've read a lot about them, I haven't had much time to play with Spark components and Catalyst. They look interesting and helpful, but until I start building things with them, I can't add anything it to my requests. And I'm not sure many of my requests would be higher than the other items on this list.
Even faster compiles. A lot of work went into Flex 4 for this, but an even faster compiler would make me even happier. This isn't necessarily a Flex SDK thing, and there is a Flex Builder bug open for this. Since that's the top-level, with possible work needed at the Flex SDK and AS3 level as well, I'll put my vote there.
Binding improvements. What improvements are needed would just be based on what would most help out the performance of an application that uses bindings thousands and thousands of times. One-time binding and Support delayed evaluation of MXML bindings are good possibilities.
Allow compilation in the SDK using FlexBuilder project files.
Flash Builder improvements
Flash Builder on Linux. We use xen boxes with Linux at Brightcove and not being able to use Flash Builder there makes me sad. I assume that design view is the problem for this, and having Flash Builder without design view on Linux is is completely fine with me.
Support QuickFix for developer productivity.
Include a code formatter. The third-party plug-in for this that's mentioned in the bug is great, but having built-in support (hopefully leveraging the existing project) is much better.
Include FlexPMD. See the previous comment about built-in support being
better.
Generate Handler in ActionScript.
Expose more of "additional compiler options" in the UI.
Better refacoring support. I've noticed the name of a coworker of mine as the submitter of a couple of the bugs I've mentioned in here, and his name comes up on all but one of the bugs below. Adam Brod entered a lot of much-needed bugs for refactoring, and I think it's good to call out all of the ones I'd like to see below individually to recognize that these can be a very large bucket of things to do (and every one would be appreciated):
Move refactoring
Pull Up/Push Down/Change Method Signature Refactoring
Extract Method Refactoring
Extract Local Variable Refactoring
Extract Constant Refactoring
Inline Refactoring
Convert Local Variable to Field
Extract Superclass
Extract Interface
Use Supertype Where Possible
Introduce Indirection
Introduce Factory
Introduce Parameter Object
Introduce Parameter (not Parameter Object)
Encapsulate Field
Create Script (refactoring scripts)
Other Requests?
If you find yourself agreeing to a lot of the bugs above and have other bugs and features that you'd like to see done, please link to them in the comments so that I can vote for them. Thanks!
Comments (7)
Nice list. I would expand on the EventDispatcher one to include some of what Robert Penner has noted in a recent post:
http://robertpenner.com/flashblog/2009/08/my-critique-of-as3-events-part-1.html
Posted by Keith Peters | September 6, 2009 3:39 PM
Posted on September 6, 2009 15:39
Thanks Keith! And thanks for pointing me to the TAAS project (via Reducer).
Posted by Brian Deitte | September 6, 2009 4:52 PM
Posted on September 6, 2009 16:52
Excellent list, Brian. I posted another AS3 events critique today:
http://robertpenner.com/flashblog/2009/09/my-critique-of-as3-events-part-2.html
I mentioned similar wants to yours, including one-time listeners and an easy way to remove all listeners.
Posted by Robert Penner | September 6, 2009 8:33 PM
Posted on September 6, 2009 20:33
Nice list as well Robert. Yeah, I really want a way to remove all listeners, but I thought that getting all listeners is a bit more generic (and I can think of a few uses for this, just for quickly debugging issues).
Posted by Brian Deitte | September 7, 2009 9:57 AM
Posted on September 7, 2009 09:57
Hi Brian,
I'd add for request for some kind of support for threads.
It doesn't need to be complete support for native threads or anything like that - just the ability to make an arbitrary long running process be handled and not lock the user interface.
This is becoming more and more of a problem as AIR applications are trying to more and more work (think rendering PNG's, rendering JPG's, etc). To be able to push this processing work into another thread and have a callback function when it is finished would be so useful. I'm thinking something like the NSOperation functionality on iPhone/Cocoa development.
Oh, and better support for debugging memory leaks.
Cheers,
Mark
www.learnosity.com
Posted by Mark Lynch | September 8, 2009 8:05 AM
Posted on September 8, 2009 08:05
That's a great list, Brian. I had forgotten I logged some of those. Has Adobe said anything specific about what will be in Flash 11? I haven't really heard anything specific. I hope they can get some of these features in.
Posted by Adam Brod | September 9, 2009 8:59 AM
Posted on September 9, 2009 08:59
Mark, there is a bug for threading that people can vote for: https://bugs.adobe.com/jira/browse/ASC-3222
I did think about threading when putting this list together, but I didn't add it on purpose. I haven't had a real need for threading myself, and I worry about the complexity it adds to the language. While I come from a Java background myself, I can see it being confusing and misused by a lot of people. And there's too many other things I want myself. :) But it's definitely something that others are voting for, and I could see it being useful for AIR apps.
Adam, thanks, and thanks for logging so many of these issues. Other than the coming mobile support, I haven't seen anything announced for FP 11 or future versions of ASC/Flex.
Posted by Brian Deitte | September 9, 2009 9:56 AM
Posted on September 9, 2009 09:56