Home > Dev > ActionScript: Beaten like a ginger stepchild

ActionScript: Beaten like a ginger stepchild

Recently there has been a lot of uproar about ActionScript from some of the more nominated ActionScript developers. People like Joa Ebert, Nicolas Canasse, Andre Michelle and Peter Elst spoke off their dissatisfaction about the current state of ActionScript, that’s it’s stuck in the middle of nowhere, that Adobe isn’t open enough about their plans with the Flash platform, that ActionScript has become too OOP, etc. etc. And though all this bashing hurts, they all got a point about their complaints.

[ad#ad_content]ActionScript developers are a poor bunch! Internet Applications have become more and more complex and require you to plan your architecture carefully. In fact you need to be not only a programmer but also a full-fledged OOP architect if you want to achieve complex applications or otherwise two weeks later when the client asks for changes you will be in code chaos hell. On the other side the customer can’t care less and asks you to finish their product within two weeks just like it was in the old days of  Flash 5 where you could churn out some wonders quickly (but dirty under the hood) because, hey, does the client care how well your code is organized? The hell he cares! I feel kind of like: first we all yelled for better code management, now that we have it people start to complain that it’s too OOP.

Being a game developer who has a few more ambitious projects on the shelf I’m all for OOP and coding-best-practices. The artsy-fartsy Flash Designer hype from yesteryear had it’s show but now please move along, it’s time to advance!  Personally ActionScript was what has taught me OOP practices and I would be nowhere today if it wasn’t for ActionScript. Sure, I could have probably learned it from C++ or Java too but ActionScript’s prevalent support and documentation made it a lot easier.

I’m all for strict typing and seeing some people wishing back dynamic typed features makes my stomach turn over. Instead I’d rather like to see more data structures that allow strong typing just like the recently introduced Vector does. Really, there’s no way that 10 horses can pull me back to dynamic typed programming! Sometimes I find AS3 code examples on the web which are all untyped and dynamic, obviously by some coder who completely neglected strong typing because he either didn’t fully understood it or was too lazy. This is what Nicolas Canasse got right when he stated that ActionScript lacks expressiveness. It leads to people falling back to dynamic typing if they see that all this extra stuff required for the correct approach. I use FDT which has an excellent template system so I don’t really care if there’s a tad more code to write to achieve good code. In fact OOP stipulates more code. At first I worried too but I’ve learned to live with that.

I think Adobe should loosen the grip of ECMA 4 on ActionScript which it already has broken anyway by not being fully compatible to it anymore. haXe is doing many things right where Adobe fails with ActionScript, advanced OOP features like Generics, typed Arrays with auto-casting, in-lining, Enums etc. To stay up to competition ActionScript needs these and then some. Others have already listed their feature hopes which I reflect but here are they once more:

  • Method Overloading (because writing Open-Source frameworks and libraries often is a travesty without this).
  • Generics
  • Threading (Oh yes!)
  • Multi-CPU-Support
  • Private Constructors (bring them back!)
  • True Abstract classes/methods
  • Enums (has been a long time wish. Don’t know what the problem is!)
  • Hardware rendering (PV3D etc. are great and all but whats the point if you hit the wall with under 1000 triangles?!)
  • Compiler performance (Seriously MXMLC needs to hide in the corner if the haXe compiler shows up!)
  • And last but not least I’d like to see a lot more love for the AIR runtime like better OS-integration (changing screen resolution for example) and better performance and resource management (the way how AIR wastes up RAM is not from this planet!)
Categories: Dev Tags: , , ,
  1. August 10th, 2009 at 17:25 | #1

    Just to clarify – my post isn’t one of dissatisfaction with the state of ActionScript – its one of setting priorities for a next release.

    I think that focusing only on the OO side of things is a mistake, Flash Player is leading the way in terms creative expressiveness and all I’m hearing is how ActionScript isn’t enough like C# etc.

    I’m not opposed to seeing method overloading, private constructors etc. implemented but if that is the focus of a release you’ve got Flash Player running after other technologies while it should be firmly establishing its lead.

    I proposed a more long term solution where instead of putting all your eggs in one basket (ActionScript) you make the Flash Player a more generic platform where you can support any language.

  2. Michael
    August 10th, 2009 at 17:58 | #2

    To continue the discussion on where Actionscript should go next.

    I don’t think it is in the best interest of Actionscript to become more object oriented and more strictly typed. I understand the power of a strictly typed language and I know how important object oriented design is, but when connecting the graphical possibilities of Flash with the functionality possibilities of Actionscript, I think Actionscript is in a good place syntactically. Abstract classes, for instance, can be achieved by creating a class that doesn’t get instantiated, but is still extended off of.

    What I believe is a good direction for Actionscript is simplicity, which I believe Peter Elst said in the article you linked to in this one. I miss the dynamically typed simplicity of AS2. I miss being a designer and a programmer at the same time and not having to think too hard when I changed between the two. Actionscript is becoming more of a programmers language than a designers, which is understandable since Flex has become so popular, but Actionscript seems to be leaving its roots.

    I also believe that since Flash is already ahead of its game, a good direction for it to take is another level of programming abstraction where the programming is simple and powerful. It shouldn’t take a computer science major to use the language, but computer science major should still be able to appreciate the language. Python is a good language to plug into this argument.

    I find myself contradicting myself when thinking of what to say so I will end this comment with a final thought. Since Flash player is so popular, Actionscript is so popular. The problem with designing the language is it needs to fulfill the needs of all its developers. It needs to have power for information visualizations and graphical processing. It needs to have fundamental elegance for developers coming from a programming background now focusing on RIAs. It needs to have simplicity for designers who use Flash Professional and need to add interaction.

    That’s a lot of shoes to fill. Opening the language is a good way to fix a lot of the problems, but the participation in the openness of the language may skew the direction of the language to only a fraction of the user base. I’m stumped in finding a good solution.

  3. August 10th, 2009 at 18:13 | #3

    @Peter sorry if I put this into the wrong light! I understood your posting as such, a suggestion to set priorities.
    I think stable OOP features are what need to come before any other features but I guess everybody has their preferences. And as I wrote above hardware rendering is a feature which is not related to OOP. I totally agree that Adobe should be a lot more open about the whole planning and future of Flash. It would eventually be the best if it all becomes well supported Open Source.

    On the other hand making Flash Player a generic platform for multiple languages … I’d worry that this would bloat the runtime enormously and ActionScript would loose a lot of focus.

  4. August 10th, 2009 at 18:26 | #4

    Whilst native multithreading and hardware rendering are the developments to anticipate I very much agree with Michael above. Adobe needs to consider not only the techies but creative crowd as well. It’s the symbiosis of both worlds that delivers the wow.

  5. August 10th, 2009 at 18:38 | #5

    saschas concern Re runtime is a valid point.

    Thankfully we’ve seen great OSS initiatives from Adobe already and things are opening up. This is crucial in any software development these days and I’m rather sure that any closed-source dev is counting its days to EOL sooner than later.

  6. red head
    August 10th, 2009 at 19:59 | #6

    “beaten like a ginger stepchild”

    do you want to be any more offensive?

    what’s your next title? niggers, pakis, coons, wogs? go for it .. idiot

  7. August 10th, 2009 at 20:23 | #7

    I really like the title – lol. Good post. Am a real fan of the OOP direction that Adobe/MM have kept Flash Player in over the years.

  8. red head
    August 10th, 2009 at 20:29 | #8

    I’m glad you like the title Nick. We’ve met actually I’m based in Brighton. I’ll be sure to take your outlook into account should we meet again.

  9. August 10th, 2009 at 20:36 | #9

    Ok, maybe I was a little too enthusiastic about the title… sorry red head(!)

  10. red head
    August 10th, 2009 at 20:42 | #10

    @nick .. fair play, thank you, i never mean to get too uptight about it but it does happen, people can be really cruel to you and make massive assumptions on something you have no control over (hair colour) ..

    i see the humour of course, a helpless ginger kid being beaten by an angry step parent and somehow he deserves it even more and it’s ok because he’s ginger and therefore of less value than other people .. i have a sense of humour you know but i just didn’t expect to see it in the context of actionscript!!!!!!!!!!

    .. sorry everybody, back on topic … i think actionscript is a little messy right now but i think it’s still going in the right direction

  11. August 10th, 2009 at 22:01 | #11

    @read head heh, sorry, English isn’t my mother language. Didn’t knew that this idiom sounds offensive! I was first about to name the title “Beaten like a dead horse” but then recognized that it doesn’t quite fit the situation and found the ginger idiom. I’m not too familiar with English idioms. Do you have a better suggestion?

  12. red head
    August 10th, 2009 at 22:05 | #12

    hey don’t worry bout it buddy, it’s fine, i had my rant/made my point, it’s cool :o)

  13. August 10th, 2009 at 22:10 | #13

    I think that aswering questions about language are useless unless you not answer question about platform direction. If adobe main goal would be put flash into mobile devices, why we need all that OOP sweetness? On other hand if Flash moves more to enterprise(or serious gaming), having all those features is a MUST, no question about that (can’t count times when I pulled my hair off my head and shouting “why?!” while doing larger scale project and I could not use all those features easily found in Java or C#). I really would like to see second option happen. But why to fight between simlicity and complexity? Why actionscript cannot support both?..wanna make some simple application? Do it dynamically. Having large multi developer project?..do it with generics, safe type etc. Well, in any case, Adobe should act very quickly otherwise competitors(Silverlight, Unity3D, Google, Apple…) will grap most of flash developer community and flash will became banner advertiser again(horrible imagination).

  14. Zimmen
    August 10th, 2009 at 22:24 | #14

    I agree with Sasha mostly

    OOP is not something you should do halfhearted. Either go for it in full or don’t go for it … perhaps there could be a more dynamic loosely typed AS2-ish AVM alongside the Strict OOP one but please do not complain about the compiler then …. dynamic and loosely types means crappy compiler jobs too.

    My favor is full OOP a-la Objective-C on top of a language like C and all this in AS :)

  15. August 11th, 2009 at 00:21 | #15

    enums, right? that just dousnt seem like it would be that tough. i agree w/ your “laundy wish list” esp private constructors and true abstract (classes/methods).

  16. leef
    August 11th, 2009 at 03:18 | #16

    I love that as3 is OOP. Though it would be nice if there were more util classes, and tools to spur more rapid development.

  17. Jay
    August 11th, 2009 at 06:39 | #17

    but… half of you list is not even about the language per se, but about adding new capabilities to AIR or Flash Player itself.

    :/

  18. Mike
    October 1st, 2009 at 15:24 | #18

    I think the designers, or deselopers, who decry the OOP focus of actionscript are just fearing or denying the coming complexity of web applications. With increased bandwidth and computer speed, web apps will be running near desktop levels of sophistication. You cannot just cobble together large projects with scripting and procedural approaches. The complexity is too much to manage and the ability for the software to evolve is stymied. There is probably going to have to be more of a separation of tasks for web 3.0 apps. The designers are still vitally important for interfaces and usability, but face it, the times they are constantly a changin. And if you can’t develop, then get out of the way. (and focus on design)

  19. The Gobbler
    November 10th, 2009 at 15:48 | #19

    I love ActionScript and beating redheads

  1. August 10th, 2009 at 20:11 | #1
You must be logged in to post a comment.