Home RSS

My take on ActionScript 3.0: Is It Hard or Not?

O'Reilly's Inside RIA site is off to a great start with a new article by Colin Moock, author of Essential ActionScript 3.0. In the article Colin attempts to answer the question: ActionScript 3.0: Is It Hard or Not?

I highly suggest reading the lengthy article, the gist of which is:

The most common laments I hear about ActionScript 3.0 are, "It’s too complicated," "It’s harder to learn/understand," and "It takes a lot more code to do things." Yet, rarely have I seen these complaints backed up by more than one or two examples. So let’s do some thorough investigation to see if ActionScript 3.0 really is as hard as people seem to think it is.

Like the users Colin speaks of, I have also often felt that using AS3 can result in more code than using AS2. While in most cases the additional code results in a more structured and OOP-sound project, that structure is not always necessary. I also felt that it was more complicated than AS2 once I started using AS3, but I have never heard anyone deny that there is a ramp-up period, even for the most skilled developers.

As more and more developers make the switch and as more clients require their projects be developed in AS3, most of us developers will no longer have the choice. This is the main reason I chose to make a concerted effort to learn AS3 and start using it in projects -- I didn't want to get blindsided with an AS3 project and all of the sudden need to spend most of the project schedule learning AS3. It should also be noted that just about every developer who I speak to about AS3 says they haven't looked back since transitioning to AS3.

I think for designer-types the situation is a bit different, however. For instance, I have lost count of the number of times I have been asked the question, "Should I switch to AS3?" by designers who are used to coding on the timeline. These designers can make their way around a Flash file with AS2, alter code they find on the internet, and have a functional project. In these cases, yes, AS3 seems like it is "too complicated" and "harder to learn/understand". AS3 is now a fully OOP language and without the base knowledge of OOP, one would be lost quickly. While these concepts can be learned, each person needs to decide if they would benefit from doing so. The general Flash concepts from AS2 have not changed in AS3 -- gotoAndPlay() and the like are still available. Loops, conditionals, and timeline functions all still work pretty much the same, so your base of reference for AS3 isn't too far off.

My take? Start using AS3 immediately. As a developer-type you'll be forced to learn it eventually, and you might as well start getting cozy now. If you are more of a designer-type you can still code on the timeline using AS3 if you prefer to do so, and by following some simple timeline coding concepts you could take your code to external class files once you feel comfortable doing so.

However, the big issue here is not one of just developer-types vs designer-types. No, it is that group in the middle that was starting to grow significantly due to Flash: the "designveloper" - those who have a great sense of design and the development know-how to make their visions a reality. Samuel Agesilas and his Saffron AIR application is a great example of this - a complex application that looks beautiful. I have also seen several speakers at conferences last year actually call themselves something along these lines. This group is now starting to shrink rapidly because of the additional OOP knowledge that is required with AS3, the perceptions of AS3 being "too complicated" and "harder to learn/understand", or just plain unwillingness to take the time needed to learn the new language. This is not to say it cannot and will not start to grow again once the Flash community becomes more comfortable with AS3, but that may take some time to happen. In the meantime, I'm doing as much as I can to stay a "designveloper" because I enjoy both the design and development. But, even with that mindful effort I have seen myself leaning more and more to the development side as I continue to program in AS3...

Mrinal Wadhwa said,

January 26, 2008 @ 12:11 am

I wouldn’t say that the “designveloper” group is shrinking, rather the developer group is growing way too rapidly in comparison to the other two groups and this I think can be partially attributed to the ease of learning AS3 for someone coming from a Java or C# background.

Jon MacDonald said,

January 26, 2008 @ 12:31 am

Mrinal — great point. That is something I didn’t really consider, but crossover from other languages is certainly aiding in the adoption of AS3, and that would tilt the bias toward developers instead of designers or “designvelopers”.

Mike said,

April 29, 2008 @ 12:17 pm

This is not the case. Actionscript take simple tasks and makes them incredibly complicated. I’m sure it opens a lot of potential, but I’m outraged by how long it took me to learn how to do something as simple as linking the flash file to a URL so that when I click the flash it goes somewhere:

import flash.events.MouseEvent;
import flash.net.*;

function openPage(event:MouseEvent):void
var request:URLRequest = new URLRequest(“postit.php”);
navigateToURL(request, “_self”);

inv_btn.addEventListener(MouseEvent.CLICK, openPage);

… give me a break…

mike w said,

May 1, 2008 @ 5:11 pm

actually, not to disagree with mike but it is fairly easy to learn the new 3.0. though my banner code wouldn’t have so much stuff in it like his.
skyButton.addEventListener (MouseEvent.CLICK, buttonClickHandler)
function buttonClickHandler (event :MouseEvent):void {
navigateToURL (new URLRequest(“http://hiddenalleypromotions.webs.com”));

only 4 lines compared to your 10….

Ken said,

May 8, 2008 @ 12:34 am

Hi, I’m a Designveloper and I’m very worried about this.

It use to be 2 lines:
on (release) {
getURL(“http://[website].com”, “_self”);

I use to program on JavaScript and this helped me a lot learning ActionScript (1 & 2). I understand some ASP and Visual Basic 6 but this is the other side of the wall, the side of C# and Java :-s

I must jump the wall and try to survive!

Tim N said,

May 20, 2008 @ 3:47 am

Lovely post, and ive bookmarked your lovely site!

From a Designerveloper’s point of view, i’ve made several websites in AS2 and with a lot of ease. I work as an interactive designer for a digital agency and a huge part of my job is developing flash banners for Car Companies and New Film releases.

Banner designers and small site builders are really going to suffer hard. My company are willing to pay for my training in As3 but for the smaller company the step up into OOP is going take its toll! We are already seeing many Designervelopers leave developing sites altogether and you will see over the next few years many who have won FWA awards from smaller low budget fantastic concept websites will loose out to BIG budget companies who can afford a a full time designer and deveoper working side by side.

In my view its a sad time for the flash community. The days of finding fresh design / developer talent from a young age looks like its coming to an end and wenever that happens to an industry it starts to slow down and one are (developers) becomes over swamped with too many to fill too little roles….

just my two cents

chris said,

September 20, 2008 @ 7:57 am

Hi Everybody,

I have a own business and we are already suffering a lot through the complex and complicated new AS3 code. I think the main problem of AS3 is the coding time. I agree with Ken, my customer are used to fast programming, but in AS3 this isn´t possible, too much code…AS2 was already far too much code for simple tasks, but AS3 is a nightmare for the entire flash community. I am sure that Adobe wants to make flash a different program than it used to be a couple of years ago.

Flash was made for designers who have a good understanding of coding. But now, the learning process for AS3 takes far too long and the work with Flash CS3 also.

Hopefully someone at Adobe will change this nonsense of AS3 and creates a simpler way of coding animations.


David Pasieka said,

October 31, 2008 @ 10:58 am

Sorry to burst the bubbles of everyon, but I have to disagree with pretty much everything in the comments above. First off, AS 3 does not take “a lot more” code to accomplish things. It’s just that certain things have been changed to get the language away from being so tied to the Flash development environment and the timeline (which should not be used as a programming device.) , and to make things consistent. The trade off is that for the few lines more code you have to write (and yes, it is a SMALL amount of extra code), you get code consistency throughout (eg: all events are handled the same way, all classes are instantiated the same way, etc). It’s also much more conducive to object oriented programming and making your code reusable, which in the end speeds up development time. The other benefit is that it is a much stricter version of the language and allows the new technology in the Flash player to really shine. So to those who are pining for the days of AS 1 and 2, and wanting Adobe to revert back to some of those archaic ways of doing things, get over it. This is real progress towards making flash a viable way to do things for the internet and for applications, and it’s a major change for the better.

Ed Barton said,

December 3, 2008 @ 6:27 am

@ David

Well I think I smell an Adobe employee!

may I quote, “to get the language away from being so tied to the Flash development environment ” – god forbid we should should be developing Flash content in … oh yeah A FLASH DEVELOPING ENVIRONMENT … what possible benefit could this move have? Why is a tie a problem?

Code re-use??? Can you tell me why re-writing the whole language is seen as a better solution to say … the CLIPBOARD – COPY PASTE. If you were developing an application that needs this level of complexity you’d be a fool if you chose Flash as your platform!

And finally, “which should not be used as a programming device” – so now we can’t use the Timeline as a means of controlling our Flash content. can you explain the benefits of doing this, apart from to destroy my project budgets with hours of extra coding and testing!!

AS 3.0 is an unmitigated disaster from a content development perspective. But unfortunately, as Flash is the only real cross-platform content platform I don’t think anyone is going to notice.

You want to know why Java isn’t used to develop RIAs – because it’s too complicated! Adobe have pitched Flash + AS 3.0 straight into the same ballpark. It’s geared for ex-C++ programming geeks who obsess over case-sensitive variables and correctly typed functions. What the hell happened here?

What I cannot understand is why Adobe didn’t branch Flash and stick all this AIR, Flex and AS3.0 in some other product and leave, what is (was) a fantasic visual tool alone.

Rant over.

RSS feed for comments on this post

Powered by WordPress.