I learned to program in Flash

— WARNING —
This post may come across a little harsh, make me sound angry, produce some new enemies or even turn you off to the idea of ever doing work with me, but please remember to take it with a grain of salt as I am just one man with a small gripe to get off his chest.
— WARNING —

I don’t typically like to write “rant” posts, but there’s something that has really started to grate at my developer nerves lately and I need to get it out there. When I stepped into Flash back in ‘98/’99, I had no idea that it would end up being the main tool at the base of my career. You see, I graduated from The Art Institute of Dallas with a degree in 3D Animation and wanted to end up working for someone like Pixar or any other similar company. Well, as we all know, most people don’t come directly out of college and go into that dream job and I was no exception. I got a job that introduced me to Flash and I started learning it… first with simple tweens and animations and then on to this thing called ActionScript. This brings me to my point: I learned to program in ActionScript as opposed to some other “real” programming language. So what should bother me about that? There’s LOTS of old school Flash guys and gals out there that learned the same way, right? And together we helped Macromedia (and Adobe) grow the Flash Platform into what it is today, right?

A lot of developers that I’ve met who come from a background with “real” programming languages (C#, Java, etc.) and who have computer science degrees have long looked down upon us lowly ActionScript developers because ActionScript was considered a joke and not a real language. However, we kept our skin thick and persevered despite their condescending attitudes and attempts at programmer insults. But now things have changed. Now we have ActionScript 3. Now we have Flex 2, 3 and soon 4. And now we have those same developers migrating over. WHICH IS GREAT except for one thing… many of them still want to tell us how we’re “doing it all wrong” and then, in the same breath, ask us how to complete a given task in ActionScript. Here’s an idea: Let’s all learn from each other and let’s keep a mutual respect for each others’ training, knowledge and backgrounds.

Something else that’s more amusing than frustrating to me is that I still hear some of them complain about Flash and/or ActionScript in such ways as to make me want to ask them why they are working with it if they hate it so much. “Jason, why does Flash work this way? It’s really wrong and really messed up…. Jason, I can’t believe ActionScript doesn’t have a ______ method! Why doesn’t it have a ______ method like the language in which I learned to program? This is all wrong and really messed up.” To those I answer: Call Adobe or check out bugs.adobe.com.

Anyway, before I finish up on this post, I feel like I should add that I DO realize that I’m generalizing a bit here. I know that not all traditional developers are this way and I also know that the teams at Adobe who actually produce these products most likely come from these backgrounds. However, I’ve seen and heard so much of it lately that I just wanted to bring it up. And now I’ll move on and get back to thickening my skin again.

I learned to program in Flash and

  • I don’t have a computer science degree
  • I write BOTH procedural AND object oriented code
  • I use the timeline when needed (animation and/or code)
  • Design patterns are not my #1 priority

Thanks for reading.
The comments are open.

http://flash.fincanon.com/wp-content/plugins/sociofluid/images/digg_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/reddit_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/dzone_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/stumbleupon_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/delicious_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/furl_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/technorati_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/myspace_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/facebook_48.pnghttp://flash.fincanon.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png





18 Responses to “I learned to program in Flash”

  1. Ronny Karam Says:

    Hi,

    I can’t but agree with a big part of what you wrote, yet AS3 is still not a programming language and design patterns shouldn’t be a priority at all. Design patterns don’t really apply to AS3; I read the book “ActionScript 3.0 Design Patterns” by William Sanders & Chandima Cumaranatunge (O’Reilly & Adobe Developer Library). In more than 500 pages, I couldn’t find any use for the techniques taught in the book especially when most of them don’t really suite AS3 but work around it in a way, trying to convert it to a fully OOP language. Some techniques confuses you more than teach you anything. (Read the comments on Amazon.com)

    By the way, I don’t come from a programming background that’s why I try to read books.

  2. JesterXL Says:

    Don’t stress it mate. A bunch of things going on here. First off, not everyone is disrespectful of Flash that comes from a traditional software background. I know you’re generalizing because you’re irritated at them, and that’s fine. Just keep in mind, a lot of people stick to not just their single language, but single platform. So, ActionScript could not only be their first new language, but new platform. The platform is a big deal. PHP 5 for example has a TON in common with ActionScript. Their syntax is very familiar… the platform, however, is completely alien. Notice what I just said; alien. You think a PHP guy would appreciate that? Surely it’s not alien to him. To me, however, it is. I’m used to Flash Player “just working”. The only configuration I EVER have to do to it is adjusting my mm.cfg file to allow certain SWF’s to do logging or to breach the security sandbox. PHP, however, has all kinds of tweaks you can make to the runtime, making your code run differently. To me, this is scary; I’m used to my code running as I expect it to. PHP, however, can change the very fundamentals of a large swath of commands such as string parsing, etc. If you get it, it’s powerful. If you don’t, it’s scary.

    Same thing for them coming to Flash. That insecurity and fear, which is definitely healthy in good, can come across as pompous and ignorant. If you understand where they are coming from, you won’t get mad, and can see through the insecurity. When you’ve written code for 5 years that’s synchronous, and suddenly a new platform “doesn’t wait for a line of code to complete”, you got WTF? If you grew up with events, yeah, 2nd nature, but to guys used to procedural code, or little thread experience… that’s an extremely challenging paradigm to adopt in just 5 minutes.

    There’s a lot more of these, so just keep that in mind. If you’ve ever read “Who Moved My Cheese?”, it applies a lot to programmers moving to new platforms. As you know, programming is really really hard. Once you get it, you get an immense sense of self-accomplishment. To belittle that by going to another platform, and recognizing you only know a lot, in a really really smart of the greater programming world is frustrating. People don’t like change; they like to stick with what they know.

    …now, after giving everyone the benefit of the doubt, there ARE those who just are frustrated. Suddenly, Flash got popular, and they had to learn it. They probably would of preferred their platform that they are comfortable with got popular instead, but that didn’t happen, and now they have to learn Flash because it’s the in thing. They don’t respect the platform, so what makes you think they’ll respect you?

    Bottom line, the haters are a minority; ignore ‘em. There are plenty who respect fellow ActionScript programmers. Keep in mind, had ECMA 4 made it through, future versions of Firefox would be running basically ActionScript instead of JavaScript to run the web. Think on that.

  3. Nick Collins Says:

    I can totally relate with you on this sentiment. I can’t count the number of times I’ve had to tell somebody “Guess what, AS3 isn’t Java, no matter how much you’d like it to be.” I’ve been fortunate though, that some of the former Java devs I’ve worked with are in fact, willing to learn. I explain that you’ll never be as good as you can at something until you understand where it comes from. For example, you’ll never be as good a Photoshopper as your could be unless you understand the photography principles and concepts that it was designed to address. In this case, you will NEVER be as good of a Flex developer as you could be, unless you understand the Flash concepts and principles that it came from. Concepts like the stage, a movieclip, the timeline, etc.

    Some of them, once I have done my best to explain those concepts, suddenly have this light come on… others still try to fit the round Flex peg into the square Java hole. Those developers I pretty much chalk up as lost causes. The moment you refuse to acknowledge you have something to learn, you’ve already become the best you’re going to be.

  4. Keith Peters Says:

    Couldn’t agree more. Programming can become very much like a religion. Even within the Flash community, there are those who would try to burn you at the stake for violating their favorite “best practice”, like it was handed down on a stone tablet. Man, some of the comments I got on my blog when I said it wasn’t a big deal that ActionScript didn’t have abstract classes or private constructors. I thought lynch mobs were going to start forming. :)

  5. tbm Says:

    I’m kind of with you. I think part of the beauty of early flash was the fact it was simple code on a timeline… some mini code for the layman. Nowadays its all frameworks and complex stuff.. and the playful part is lost. My degree was art and design. 4 years ago (almost to the day) I wrote my first line of code “gotoAndPlay()” and out of needing to pay bills today I work as senior flash dev for one of largest ad agencies in world. my head all day in books doing pureMVC researching cairngorm etc..

    lately I wrote a bluetooth bridge between objective C and flash. and realised I could just about cope with obj C and it wasn’t that hard. I realised for all the complexity of AS3 it wasn’t that great compared to obj C and didn’t have the speed of Java etc. So If I have to write this stupidly hard code why the hell am I even using flash at all?. I may as well move over to a language that offers cool features like bluetooth or great speed or all the other cool things that come with the “real programming languages”. I feel personally like I was duped into becoming a programmer. when orginally all I wanted to do was bounce a 2d ball of the edge of my screen.

    What’s worse is that ECMA have bailed and we now use a super complex language that doesn’t even follow standards. At the moment I cant complain… I’m earning well and my kids have clothes on their backs. but your not the only one that was taught to be a programmer by flash. I hope adobe can stop capitulating to what programmers say should be in there. they should realise what made it popular for users in the first place. We could have done most modern flash stuff in Java 6-7 years ago. And there’s many more flash as2 coders that don’t get it than as3 devs. luckily I’m clever enough to keep up. But the majority don’t want it, or even care for it.

    The web is a different pond too software development. There’s a lot to be said for agile development that is starting to get overridden by methodology and programming snobbery.

  6. Jason Says:

    Thanks for the comments guys. Jesse, I understand what you’re saying. Your point about people coming into a new environment makes complete sense and those are the people that I’m talking to when I say, “Hey, I think we can both learn from each other on either side of this equation.” As for the people that are just mad, frustrated or jaded, I’m usually able to deflect 99.9% of what they say and do. And yes, I agree that would have been awesome if ECMA 4 had made it through.

    With everything that I said in this post, I still think it’s great that more and more developers are coming from different backgrounds to work in the Flash Platform. I mean if people weren’t migrating over, how could it ever grow, right? I just think the main thing some people should work on is that respect for fellow ActionScripters. After all, I think we’re all in it for generally the same reasons in the end.

  7. Chris Griffith Says:

    I agree wholeheartedly. People don’t like change and are critical of the forces that make them change. This issue has even come up in the switch from AS2 to AS3.

    As someone who is striving to learn Unity (which uses a combination of C# and JavaScript) I occasionally have to stop myself from thinking about problems in terms of ActionScript. We are creatures of habit, and it’s good for us to expand our horizons, explore new technology, and keep an open mind.

    Just once, I’d love to get a Java project to work on and tell the other devs “Where’s my tellTarget? WTF? What am I going to do without tellTarget?!? Wait. Do you have with()?” I would laugh.

  8. Matt Garland Says:

    I’ve been going to monthly Ruby on Rails meetings. Pretty much every meeting someone manages to work in some anti-Flash or anti-Adobe comment. I just keep my mouth shut.

    Why? Things are HOPPING at these meetings. There’s something going on…domain logic is being expressed with unprecedented clarity and ease. Who wants to get caught up in geek machismo?

    I feel the same way about Java people. Some can be condescending, of course. But they are bringing something new to the Flash-platform table. They live and breathe frameworks, for one, and their compulsive urge to document, for two. They’re interesting in a completely different way than the Rails people.

    Coming up in Flash, it’s a little painful to realize that our world isn’t the end-all-be-all, especially when some mediocre Javaist or Rubyista feels free to imply their superiority to everything and everyone Flash. But I think it’s best to grin and bear it. This multicultural friction–and the need for so many people feel to have an opinion, however uninformed, about Flash–are signs of Flash’s vitality.

  9. Clong Says:

    Hey Jason, I’ve seen your code…. it’s a level 3 at best. :)

  10. Clong Says:

    totally.messingwithyou = true;

  11. julien Says:

    For me, as long as you’re having fun, you can use your preferred language and even start learning others in the process without bothering too much about the criticis, although, they can be usefull sometimes, and they’ll probably always be there. The best thing that can happen would be meeting someone with a another programming background and sharing tips on your respective experience,

  12. Jason Says:

    @Chris Griffith: tellTarget… awesome!

    @Matt Garland: “…But they are bringing something new to the Flash-platform table…”
    Yeah, that’s kinda want I was getting at in my first reply when I said, “I mean if people weren’t migrating over, how could it ever grow, right?”

    @Clong: level 3?!?! Sweet! I was thinking 1.5… MAYBE 2.

    @julien: Agreed. Can’t we all just get along? ;)

  13. Iain Says:

    As we all know, Flash is a platform and ActionScript is a language. At the moment, if you want to use the Flash platform, you have to use ActionSctipt. Now look at Microsoft’s .NET framework. Here, .NET is the platform, but there are multiple languages you can use which all compile down to the same “single language runtime”, so you can write code in VisualBasic, C# or C++ or a bunch of other languages - whatever you prefer. All the time they are also adding new languages, including things like ruby. This is what Adobe should do with Flash. You should be able to target the Flash platform with whatever programming language and style you are comfortable with, be that static, dynamic, whatever. Then everyone’s happy!

  14. John Dalziel Says:

    The big strength of the Flash community is it’s a melting pot. Flash people come from many different backgrounds, and each bring some of that previous experience to the party. “Real programmers” bring their software engineering skills, but in the Flash world those ideas or no more or less valuable that say storytelling, editing, or the “double-bounce” walk! Flash is cross-discipline and inclusive. That’s why it’s still fun after all these years :)

  15. Randall W. Haws Says:

    My own background came from Visual Basic (and VBA) background in the first 1996/1997 release of the Microsoft Office Empire. It was difficult to learn, but after a couple years, I made great progress with what I was able to pick up and learn. I started developing in Flash when in April 1998 and have never looked back. I did very little coding or programming through version 4/5 of Flash.
    From my perspective, I hated programming in Flash until Flash 6/MX and here’s why. It conflicted with my habits and practices from the Visual Basic world (which was more structured and well thought out and so on) so I didn’t pursue “real” programming in Flash until it came up to par with my level of understanding to make the transition from Visual Basic to ActionScript.
    The difference between me and the typical hard-core JAVA or C# C++ developer is that I know my own weaknesses and this is where I gain my overall strength. I knew not to get involved with Flash in version 4/5 at a programmatic level until it evolved to a level where a transition was feasible and beneficial to my bottom line. I never was a hard-core Visual Basic programmer, but I had my days of enjoyed successes and have had even more years of horrible failures. The problem with hard-core programmers entering the Flash world now with the AS3 movement is that many of the aspects of things that are most important to these hard-core programmers are hidden because of their simplicity and familiarity. They simply don’t know Flash. They don’t have years and years of working in Flash through all of its evolution. And for them to expect to know Flash now, well, maybe they should reconsider their transition to Flash. These hard-core programmers need to decorate their imagination a bit more, get up to speed on the fundamentals of Flash, from AS1, AS2, and now AS3. They need to realize there are limitations and things missing in Flash AS3 and that’s why we have workarounds and hacks and try not to have 142 class files to show a simple homepage with 5 buttons and some content.
    A complex system that works is invariably found to have evolved from a simple system that works. These hard-core dudes need to learn the simple systems in Flash first, before moving on to the complex systems they crank out in their native programming languages. If a current system has evolved from anything other than a simple system, the complexity of evolving the current system will be to complex. Look, people’s behavior makes perfect sense if you think about it in terms of their goals, needs, and motives.
    No matter how beautiful the strategy or design pattern, one should occasionally look at the results. For us Flash developers to remain constant in happiness and wisdom through increasing our knowledge, we must often change. If I seem superhuman, I have been misunderstood.

  16. Matt Schmulen Says:

    :)

  17. Carpenters Apprentice Says:

    I find programmers to be a lot like carpenters. We use tools, blueprints, and processes to build things. With that in mind, here’s a little tale.

    “A Carpenters Fable”
    Once upon a time, in a far away land there were two young carpenters new to their chosen profession.

    One carpenter’s tool of choice was the screwdriver, while the other chose a hammer. Both of the carpenters excelled with their tools, learning the advantages of their selected tool. They each spent the first year of their apprenticeship specializing in their tool.

    But apprenticeships last many years and throughout that time a variety of tasks emerged that were better suited for other tools. The second carpenter quickly realized that cutting wood with a saw was much easier than bashing it in two with his hammer so he soon purchased a saw and placed it in his tool chest.

    However, the first carpenter, after spending so much time with his screwdriver was convinced that chiseling away the wood in two with his screwdriver was just as effective, if not more so, than a saw. As a result, he kept his screwdriver and simply learned more effective ways of cleaving wood in two with a screwdriver. In fact he boasted to the kingdom that a saw could never tighten screws like his screwdriver could, therefore it was inferior.

    Then came the day when the King was looking for someone to build his new castle. He put forth a contest to select who would build this castle. The carpenter who could build the most impressive stable for his royal horses would win the job.

    The contest began and the first carpenter chiseled and assembled his stable. He shouted to the kingdom that screws were much more secure than nails, wrenches were unnecessary because nuts were something you ate, not something you built with. While the second carpenter built his stable with a toolbox including a wrench, a saw, a hammer, and even a screwdriver.

    When they were done, the king examined the two stables.

    The first carpenter’s stable was sturdy, held together by a multitude of screws and wood. But it lacked esthetics. It’s edges were jagged and splintered and it took him so long to build that he didn’t have time to paint it.

    The second carpenter’s stable was a work of art. It featured smoothly beveled edges and intricately lathed railings.

    The king’s decision was clear. The second carpenter was selected to build the castle and he build the grandest castle the kingdom had ever known.

    The End.

    Moral of the story, be a good programmer and keep your mind open to the possibilities other technologies bring. Otherwise, you’re just screwing yourself.

  18. Jason Says:

    @Carpenters Apprentice: I agree with the moral of the story… AND I believe it applies to both sides. Those of us that learned to program in Flash should accept that people will (and should) come from other backgrounds into “our world”. However, the other side of that coin is that those that are coming into Flash should not expect it to be exactly the same as what they are used to. It would be like carpenter #2 saying, “I bought this saw, but I hate it because I can’t hammer a nail with it… and why isn’t there a claw on this thing so I can pull those nails back out?!? This is all wrong and really messed up.”

    @Matt: :D

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word