Since Macromedia/Adobe hasn’t released the AS3 development environment for Mac yet, I haven’t been able to play around with AS3, but I have read the specs. There are improvements, and there are disappointments.
The greatest improvement is that MovieClip is no longer the central concept, not a day too soon, and the new core display API:s seem quite ok. I also like the regular expression support, something I really have missed.
E4X is also nice, especially considering the bad XML support in AS2. It’s good that they continue to try to conform to the ECMAScript specifications.
But: I don’t need another Java or C# implementation.
AS3 is Java with closures and E4X. And I get the feeling from reading the AS3 overview that using function expressions (a.k.a closures, a.k.a anonymous inner functions) is discouraged. It’s not stated explicitly, but it’s kind of obvious considering that function expressions are dealt with in a few paragraphs, almost as a side note.
If they want a stronlgy typed, byte code compiled language with dynamic binding why not write another Java-compiler? (or C#-compiler for that matter, considering that C# seems to be the more advanced of the two, and also standardized). They could even base Flex and Flash on Mono.
I’m pretty sure that someone in the management of Macromedia/Adobe has been saying (for a long time, considering AS2) that Flex and Flash must be based on a strongly typed language to be able to compete. This might be true, since most programmers are not smarter than that, they mock the Flex and Flash-programmers for not using a proper language. And so we are left with a weak copy of C# because it’s better to deal with an inferior language than be mocked by the other programmers.
This is not news, the world is run by idiots, and so is Macromedia.