According to the posts from Joa Ebert and Nicolas Cannasse I put my personal opinion on stack. Starting with Flash4 I see the long run of Actionscript for 10 years. It became truly a serious language since then. Back at the time, where no type-safe programming was possible and Actionscript errors were caught silently by the virtual machine, it was a pain in the ass to debug and create bigger projects. I was used to that, so I never complained the situation. I had no experience in other languages which features would make me jealous. Everything I have ever wanted were new features, new possibilities to create graphics and deal with sound. So every new Flash version extended my tool kit and I spent a lot of fun-time with the new toys. The only thing that annoyed me was that Actionscript was the slowest language thinkable. That has changed 2005 with Actionscript 3.0, which I am very thankful for. Actionscript 3.0 came with some stunning new features like dealing with bytes on the lowest level, manipulating the display-list in runtime without destroying the DisplayObjects and the fastest language in the Flashplayer since then. And with Flash10, my dream of dynamic audio programming came true, after ringing the bell.
So why complaining?
Actionscript is not solely a scripting language to extend your timeline compositing.
Several projects are out there that rely entirely on Actionscript, including our little baby – the Hobnox AudioTool. We are exactly doing what Adobe was hoping for. We create a rich internet application (RIA), based on the Flashplayer. That requires a lot of work and a lot of trust in the company that build the Flashplayer and its language. So far we have a lot of problems to solve, that were easier when having a more reliable language like Joa and Nicolas pointed out. I want to amplify every single issue they said without repeating them. Please make sure, you read the posts and make your own opinion. I continue to stack more issues we encountered.
Native Event System
The native Flashplayer event system is too complicated. Many people get lost in adding listeners to several events. For instance to provide a button with standard mouse events you have to add a lot of listeners and remove them when disposing the button. Above you have to add temporary events to the stage to get a ReleaseOutside event. This all leads to a unstable system, that is likely to throw some Null-Exceptions, when you forget something important that just pleases the system, the Flashplayer provides. We thought, it is actually not possible to write an advanced RIA with that system, so we have written our own. I highly recommend you to check out our event system opensource.hobnox.com, which simplifies the event flow and give you total control on capturing objects and event processing.
Custom Mouse Cursor
Since Mouse.hide and Mouse.show provides hiding the system cursor, people think that it is possible to attach a DisplayObject at the same position, creating this way a custom system MouseCursor. Well this is not entirely true. The visual update rate of the Flashplayer is different than the OS rate (updateAfterEvent doesn’t help), so they might often be an offset between the system mouse position and the DisplayObject position. It simply doesn’t feel very good, especially on lower FPS. Flash10 provides a very tiny set of new cursors, which amount is not satisfying. If you want to create RIA, you need a solid set of cursors like Zoom, Resizing, Busy and even custom BitmapData for special cases.
Vote for it @Adobe
Dealing with keyboard events is hell, especially when trying to add control keys like CTRL and ALT. But this is very important in software, where you want to provide shortcuts for faster document editing. It reacts different on every OS, sometimes on different computes with the same OS.
Any pointers to Flash11? As far as I can remember, it hadn’t taken much time after a new Flashplayer version was released – the next versions feature list was at least already part of speculations. All we know is that Adobe is focusing on mobile. Well, you all saw the nice charts at several keynotes showing the big piece of a cake that is occupied by mobile applications. I am personally not interested in mobile programming, since I like to have space for the user interface. However I see, that there is a market for the Flashplayer and time will tell if the Flashplayer gets highly distributed on mobile devices.
However, has this stopped the big picture of Flash itself? A creative, media, runtime environment to create websites, games, applications, experiments and actually everything on any platform? I am afraid, that resources at Adobe were moved to mobile development and nobody is thinking or already developing on Flashplayer 11.
My biggest wish for FP11 is that it will be more reliable according to its language and existing features.
Actionscript 3.0 is not a failure in my opinion, but it needs more enhancements to make it, what it supposed to be. A creative toolkit to compete with existing languages. Since now, Flash is still the most ubiquitous plugin worldwide, but this can change soon. There is no reason to stay, when better environments arrive and are well distributed. On the other hand, we still love Flash. So lets hope Adobe will make some noise in the future as well.