JavaScript Stalled, AS3 Orphaned – Microsoft to Blame?

As you may have already read, the ECMAScript 4 standard, the standard on which AS3 is based, and the draft proposal for future versions of javascript has been rejected in favour of ECMAScript 3.1, which proposes small incremental changes to javascript for the foreseeable future.

This leaves Adobe in a somewhat awkward position. Firstly, it casts ActionScript back to being a proprietary language. Secondly, it means they have released an extremely valuable chunk of intellectual property (in the form of the Tamarin ES4 execution engine), without gaining the expected benefits for the Flash platform.

It’s also very disappointing for the web at large. This decision means that Javascript will effectively stagnate, and is unlikely to become a robust language for supporting rich/complex client side applications any time soon. Had ES4 become a ubiquitous standard, I would certainly have looked at doing a portion of our work in the AJAX space. I’m sure other Flash developers and traditional programmers would have done the same. I suppose from that perspective, this could be good for the Flash platform, but I prefer competition, options, and thriving innovation.

So why did this happen? When I heard the news, I analysed it in light of who has the most to gain, and in context of previous discussions / information I’ve read. I guessed that the most likely reason that ES4 was dropped, was due to Microsoft. They would have to either write a new execution to support ES4 (which costs money), or swallow their “not built here” pride to use Tamarin. By crushing the standard they would avoid having to do either of these and take a stab at their rival Adobe by pulling the carpet out from under AS3’s standard compliance. Being that they control 80% of the browser market, they are also one of the few groups that could unilaterally block adoption of the standard (having a standard that’s only supported by 20% of browsers isn’t very useful).

So to me, it looks like a power play by Microsoft. And it seems that I’m not the only one – Hank Williams over at whydoeseverythingsuck.com has written an article mirroring my thoughts almost exactly.

These situations are frustrating for developers (well, for almost everyone, I imagine). Standards bodies are so hampered by politics and corporate interests, but of course they are the lesser of two evils (no one wants to return to the wild west of HTML coding). Almost makes you glad that the Flash player is a proprietary product, eh?


UPDATE: Adobe has just made their public response here. Quite candid, and definitely seems to follow the lines of my speculation with mentions of “a morass of bickering, infighting, and sometimes, out and out name calling”.

Coolest Video I’ve Seen In a Long Time

Holy crap this is cool! Ultra slow motion video of a lightning strike. It’s amazing to watch the traces (not sure what to call them) following the path of lowest resistance, trailing paths of ionized air, until one touches the ground and WHAM the surge of electricity blasts down through the path.

It looks a lot like the lightning experiments I did awhile ago, but the logic is a bit different. I’m definitely revisiting this to make it mirror the “business logic” you can see in this video.

Man, I love nature (and slow-mo cameras)!

Here’s the lightning video.

Here’s my old lightning experiment.

More Conferences

Sorry for the lack of posts lately. I’ve been neck deep in client work, and prepping for a plethora (as in, too many of a good thing) of conferences.

In addition to Flash on the Beach, FlashForward, and MAX San Francisco, I’ll also be speaking at the following events:

Austin Game Developers Conference, Austin Sep 15-17

I’ll be giving a talk about Flash as an interface tool for traditional game development. Looks like there will be a strong Flash presence, with an online track, and one of the keynotes being given by Lane Merrifield, cofounder of Club Penguin.

Flash On Tap, Boston Oct 7-9

Flash and beer is always a perfect combination, and now it comes in conference form. These guys are geniuses. I’ll be giving a talk on “Things Every Flash Developer Should Know”. It’s basically a digest of everything I wish someone had taught me 10 years ago. Though if I speak late enough in the day, I don’t know how much anyone will actually learn. 🙂

San Flashcisco, San Francisco Aug 18

While I’m in SF for FlashForward, I’ll also be giving a casual talk at the local user group. Basically I’ll be speaking about whatever people want to hear about, or whatever I’m most excited to talk about at the moment. Topics will range from the technical to the creative, from art to business, and from early works to the future of the Flash platform.

I hope to see some of you at one or more of these events. In the meantime, I’ll try to carve out some time for some new posts here – there’s lots of things I want to blog, just not a lot of time to do it in.

ActionScript 3 Notes Are Now Searchable

About a month ago I posted the monster deck of 165 slides from my ActionScript 3 workshop. I’ve had a lot of positive feedback, and have also found myself and my team using it as a quick AS3 reference.

The one thing that was holding it back from being a really useful reference was the need to click through every slide to find what you were looking for.

To address that, I added the ability to search for keywords by using the TextSnapshot object. I had never used TextSnapshot before, but it was quite easy to add keyword searching without modifying my slide deck, which is effectively just a timeline with static text fields on it. It works fairly well, except for a number of bugs with it selecting the found text. For example, you’ll notice it does not highlight text in the code samples. I’m going to try to pin these issues down, and then post an article on using TextSnapshot, along with a handy class for doing timeline searches like the one in my slide deck.

You can find the slides on my talks page at gskinner.com/talks/.

Upcoming Conferences: FF, FotB, MAX

I will be speaking at a number of conferences over the next few months:

FlashForward San Francisco Aug 20-22

I’m excited about seeing what changes the Metaliq crew bring to the granddaddy of Flash conferences. In particular, I’m very interested in seeing how the new single track format of the conference works out. It could be brilliant, or it could fizzle. I’ll be running a 20 minute session on “Why I (Still) Love Flash”. I think it will be a good talk – after over 10 years working with the technology, and 5 years running my company, it’s something that’s been on my mind.

Flash On The Beach Brighton, UK Sep 28-Oct 1

FotB was my favourite conference last year. It had a great vibe, was a lot of fun, and I came away very inspired. I probably attended more sessions at FotB than I did at all the other conferences I went to last year combined. I’m really looking forwards to a repeat this year. I haven’t quite decided what I’m going to talk about, but whatever it is I’ll be sure to bring my game face.

MAX San Francisco Nov 16-19

MAX is always a great developer conference, but this year Adobe is increasing the design presence, which should add a nice balance to the event. I always enjoy MAX – it’s pretty corporate and impersonal, and definitely not as fun as most of the conferences I speak at, but it’s a good opportunity to learn from some of the top minds of Adobe, and get a feeling for the current corporate gestalt. I’ll be doing a talk on “Making Money with Adobe AIR”, trying to identify some of the obvious and not so obvious market opportunities for the technology.

Additional Information on Loader.unloadAndStop

Following my post yesterday about the addition of Loader.unloadAndStop to the Flash Player 10 API, I chatted with Werner Sharp, who is one of the Adobe engineers that worked on the feature (and an all round good guy). Following that discussion, I thought it would be helpful to post a summary of what I know about it, and disseminate some of the information Werner provided.

The unloadAndStop method was added in response to challenges ActionScript developers were facing with halting loaded SWF content, and removing it from memory. These issues were detailed in an article I posted in early April titled “Failure to Unload: Flash Player 9’s Dirty Secret“.

This API addition is not a magic bullet for solving all of the listed problems. What it does do, is attempt to prepare the loaded content for collection, and then hint to the Garbage Collector that it should initiate a collection pass. You can prevent the latter by passing false as the first parameter. It is still easy to get a SWF stuck in memory, but it is much harder to do accidentally.

Continue reading →

unloadAndStop in Flash Player 10

Adobe has announced the addition of the new Loader.unloadAndStop() method for Flash Player 10. Here is the description from the beta 2 release notes:


unloadAndStop — This new ActionScript 3.0 API adds unload functionality similar to the unload behavior in ActionScript 2.0. After calling unloadAndStop on loaded content it will be immediately removed stopping all audio, removing eventListeners, and becoming inaccessible through ActionScript.


This new API addresses some of the issues I raised in my article “Failure to Unload: Flash Player 9’s Dirty Secret“. It doesn’t enable content sandboxing, or provide a complete mechanism for explicit unloading, but it does make it much simpler to free a loaded SWF for garbage collection. It’s still possible to prevent a SWF from being unloaded, but it’s much more difficult to do by accident.

Kudos to the player team for putting this in. If you’re concerned about this topic, please help Adobe out by testing this feature and reporting any problems.


Update: You can find more details on the Loader.unloadAndStop feature in my article “Additional Information on Loader.unloadAndStop“.