Is the ActionScript 3.0 Debate Over?
Since Colin Moock, an independent Flash platform expert, published his post on O’Reilly InsideRIA titled “The Charges against ActionScript 3.0” in July, the Flash/Flex community has been actively engaged in the discussion.
In kicking off the debate Moock stated, “…many Flash users are still frustrated by some of the workflow changes introduced by ActionScript 3.0. The truly problematic changes are relatively few, but together they have a deep effect on the typical Flash user's daily job.”
In his post, Moock brought up nine charges against ActionScript 3.0:
- The removal of on()/onClipEvent() from Flash CS3 makes creating simple interactivity hard.
- Getting rid of loaded .swf files is hard.
- Casting DisplayObject.parent makes controlling parent movie clips hard.
- The removal of getURL() makes linking hard.
- The removal of loadMovie() makes loading .swf files and images hard.
- ActionScript 3.0's additional errors make coding cumbersome.
- Referring to library symbols dynamically is unintuitive.
- Adding custom functionality to manually created text fields, to all movie clips, or to all buttons is cumbersome.
- The removal of duplicateMovieClip() makes cloning a MovieClip instance (really) hard
Moock also gives very through explanations and suggestions related to each of the charges.
Leif Wells from Atlanta Flash Community shared similar concerns, noting, “I have user group members literally break out in a cold sweat when we show them any ActionScript 3.0 code, and no wonder. Now they're all interested in Flash Player 10 features, but a lot of them do not have the skills to use those features yet.”
As someone who has worked with Flash since FutureSplash was acquired by Macromedia, and as someone with both a design/animation and programming background, I agree with Adobe's decision to go with a more structured implementation of ActionScript in Flash with AS3. I believe it is a strategic move to position Flash as a viable platform for true RIA development.
There's no reason that a toolkit couldn't be written that abstracts the API to provide some of the functionality mentioned in the article. It would streamline development for designers/animators, yet maintain the architectural integrity of AS3.
Matthew Tretter, of Exanimo, speaking as a developer not a designer, also expressed his disagreement on the charges:
In general, I'm pretty unsympathetic to charges that a programming language should be made so that non-programmers can use it. (Instead, I believe it should be made easier for programmers to use.) However, I think that some of the things you've pointed out are simply NOT more difficult, only different. Just because people are used to doing something one way, does not make it "more intuitive" or "easier." Sometimes, the familiar way is actually less intuitive, as I would argue in the case of the "on()" construct.
Flex developer, Steve, seemed to take the middle ground, noting, “As a full-time AS3 developer who has the luxury of using Flex Builder, I don't run into these issues much. But as someone who has worked with Flash for many, many years I fully understand the concern.”
Another Flash developer, John Isaacks, says he has adapted:
I have been using (programming and animated) Flash since version 4; ActionScript was the first language I ever learned. When ActionScript 3 came out, I was terrified, mainly because when I opened a new flash file and typed the code I was used to typing I got multiple errors.
…now my understanding of ActionScript far exceeds what it ever was before. I also find AS3 to be FAR more intuitive than AS2 in most cases (I still occasionally find myself stuck trying to do something that was easy in 2.0).
In responding these other views, Moock explains:
Plainly put, I am strongly in favor of hardcore programming tools. I love ActionScript 3.0, and I love that Flash has become a platform. It's great to see Adobe finally providing programmers with power tools, such as Flex Builder, the ActionScript 3.0 profiler, ASDoc, ANT integration, data services, a proper debugger, a command-line compiler, the Flex framework, a public bug database, MXML for UI development—and the list goes on. Adobe is doing a great job of catering to the programmer crowd, and their efforts are attracting an unprecedented number of new, serious developers to Flash.
As technologies evolving, such healthy discussion will continue.
My 1st text editor is my favorite.
Programmers like Flex, and don't like Flash. The time line. Code can be anywhere, in any symbol.
Even when designers learn programing, they have a mindset of a designer, the apps look great.
And a programmer writes nice OO code, reusable, and... the app does not look nice.
Aka, I like vi, emcas sux, or if you 1st used emacs then the opposite.
similar to VB6 to VB.NET
The same will happen with ActionScript3. Those that are on the ball will upgrade their skills. Those that insist on whining will fall behind their peers.