In the comment, Pondus states:
I have worked extensively with both AS3 and AS2 and every framework I could get my hands on. as2lib is the best tool I’ve seen so far… by far. But my judgement is perhaps clouded by the fact that my main has been C++, Java, Ruby etc, not Flash until recently.
So with all due respect, it seems that Aral’s take on as2lib represents a misunderstanding of the core problems as2lib [tackles.]
Spend some time working with the very finest frameworks in the java or C# world, like Spring (springframework.org), and then as2lib will make a lot more sense.
OK, to be fair, Aral wrote his post in 2004, when as2lib was not mature, and few people really got Aspect Oriented programming, IoC containers etc.
Simon says “those who like it can use it”. The sad fact is that in the Flash world it’s really more about “those who get it WILL love it”, but few do. The Actionscript culture is dominated by script kiddies, and that’s ok for most projects.
It’s a real shame that as2lib has died. I’ll say it again, it’s BY FAR the best project I have seen in the Actionscript world. Simon his crew are in a league of their own…
I haven't taken a look at AS2Lib in a long time and there's no doubting that Simon is a great programmer. That said, however, my gripe with AS2Lib was that it was too heavy for ActionScript. Unnecessarily so in my opinion. At least that was the case when I looked at it about four years ago and I haven't looked at it since.
In his comment, Pondus states that ActionScript culture is dominated by script kiddies. That's about half right. I'd say that it isn't dominated by but is entirely comprised of script kiddies. You see, it's called ActionScript. And I like to think that we're all kids at heart! :)
ActionScript a scripting language. And there's nothing wrong with that (unless you're an elitist stuck-up-your-own-ass Real Programmer (tm) who can only use Real Programming Languages and has Scripting Allergy -- you know, the type that can usually be found creating memory leaks in C++ or adding yet another bloated library to his bloated codebase in Java.)
Personally, I love scripting. It means that I don't have to worry about unnecessary plumbing chores so I can get on with building what I'm actually building.
Unfortunately, the Real Programmers have had quite an impact on the direction that ActionScript has taken.
Specifically, in trying to be make ActionScript more like Java, we have sacrificed some of the simplicity that made ActionScript (and Flash) so accessible in the past. It was telling that the first reaction of one of the top Flash developers (Keith Peters) to ActionScript 3 was to create a Processing-like development environment for it.
I feel that partly this was due to Macromedia's desire to gain enterprise developers for Flex during the early days of Flex. This, in part, led to a sort of awe of Java in the ActionScript community as being the grown-up's programming language. Also, it led to Java developers with no understanding of the Flash Platform migrating to it and expecting it to behave exactly like Java. (And, in a certain dose of arrogance, when discovering that it was actually a different platform, trying to make it behave like Java instead of learning the platform, its character, and discovering its own unique advantages.)
ActionScript is an optionally-typed, dynamic language. In other words, it couldn't be less like Java if it was actually trying to be. Its syntax may look like Java but, if anything, that's a source of confusion as it doesn't behave like Java under the hood.
Personally, I find Java to be the antithesis of succinct, pragmatic, and agile. (To give the Java community credit, in the past few years there has been a concerted effort to make Java lighter.)
IMHO, any development environment or language where you need IDE assistance (instead of having it as a nice to have) in order to develop effectively is demonstrating a certain level of bloat. Features like required imports have made ActionScript a language that you need IDE assistance to code for. And I feel that this is a loss. (Flex Builder is a great tool and I do all my development in it but I would loathe to develop AS3 in an editor without language intelligence).
So, to summarize, this script kiddie thinks that we need solutions that are only as complicated as necessary to solve the problems they are tackling. Additional, artificial complexity may make you feel smarter than thou but, ego issues aside, what is the net gain?
My rule of thumb is that every abstraction, while possibly a factor in easing maintainability and scalability, is also the introduction of a new layer of complexity. What we have to ask ourselves, every time we introduce a new layer of complexity is "does the benefit of this abstraction outweigh the additional complexity?"
Abstraction for the sake of abstraction is nothing but an ego trip for Real Programmers. For everyone else, it's a pain in the ass, lost productivity, and lost time.
The From an ActionScript Script Kiddie article by Aral Balkan, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial 2.0 UK: England License.
Dude. I am SO with you on this. ActionScript was my first language for money, so I script. Sue me. I don’t make my living programming. I make my living solving problems, and that often requires the ability to script something together quickly.
AS3 is so difficult, I find myself going through books to teach me how to write proper classes in Flash 9. Learning how to write OOP isn’t a bad thing, but it’s pretty sad that after almost 10 years of working with Flash, the “scripting” language is at a point where I might as well be a complete noob with how complicated it is (or seems to be).
@Aaron
I don’t really think AS3 made things more complex. On the contrary. If you write your code on the flash timeline, you don’t really need a lot of those imports. It depends on how you want to write and structure your code. If you want to write classes, that’s just fine, there isn’t that much difference from the AS2 way.
Some things look weird at first sight when you’re used to doing stuff a certain way (ex: using events instead of callbacks). However, AS3 solved a lot of “problems” and made things easier (scope issues, displaylist, …).
You can make it as complex if you want yourself, that’s one of the joys of ActionScript. Just use the right tool (IDE/libraries/frameworks) for the job. It depends on the scale of the project and your style of coding…
Personally, I think AS3 has made everything easier, especially by abstracting the visual containers to a point where the code drives the visual element, rather than the visual element driving the code.
As for Java, it has it’s pro’s. For example, it has great streaming capabilities like no other. However, it’s also way too big. Same as .NET in my opinion. This is why I’m a Neko junkie now. You can “script” it to your hearts content, and you can also code extensions in C, which is a great language whatever the polluted C++ minds think. Also, and most importantly, it’s the most lightweight runtime in its class.
Anyway, to get to the point, I don’t like this talk about “real programmers” and “script kiddies”. I’m both, but the fact is, if you show me a “real programmer”, any “real” programming they do is usually to pave a decent framework with which to lay down a higher, more generic code base, often to the point of parsing scripts. This in itself makes them “script kiddies”, also. Scripting is merely performing a set of routines centred on a proven framework, which is what any programmer aims to provide at some level, unless they’re trying to permenantly secure their job ;-)
$0.02
@Wouter: Method closures, the DisplayList, etc. are all great improvements. Unfortunately, we did sacrifice simplicity by making things more verbose in certain cases without too much real benefit.
The key point, that you make also, is to use the right tool and correct level of abstraction for the job. i.e., If you’re building a banner ad, chances are you don’t need to use a framework :) In fact, working with Flex, it’s very easy to separate business logic from presentation logic and implement MVC without using a framework. Add to this the use of code-behind in more complex projects with larger teams and you can get most of the benefits of a framework without a framework.
Frameworks, especially pattern-based ones, are very useful if everyone on the team can communicate in the higher-level language of the patterns. Unfortunately, too often you see people “talking the talk”, throwing our Pattern names like they memorized them the night before without really understanding the problems that the patterns solve or how the patterns can be used together. In these situations, I feel the use of patterns and frameworks can lead to confusion. At the very least, team members should not be afraid to ask “what do you mean by [insert pattern name here]” to check that they are, indeed, communicating about the same thing.
As in all things, I favor simplicity in communication. Patterns can bring about that simplicity but only if there is a real shared understanding of their meaning. When in doubt, it’s always best to stick to simpler concepts and buzzword-free communication to clarify meaning and intent.
I’d think that AS 3.0 is more complicated for new comers. That said IMO the benefit definitely outways the complexity.
I’m not sure that AS 3.0 was written with like Java in mind, my guess it was written speed in mind. Typed vars and sealed classes, display lists etc (the complexity) is where these speed gains are made.
@Tink: I disagree. I find that learning newcomers AS3 is much easier than it was learning them AS2. AS3 is much more logical than AS2 with all it’s exceptions and oddities.
What I find really hard is to get those used to AS2 forget what they learned about onSomething handlers, display programming and other stuff.
J
Having never touched Java, or .NET for that matter, or C+-Anything.NET. I personally don’t dig the “Real Programmers” thing. I turned down a lucrative year long contract to develop in Flex a serious Asset Management System with the front end set in Flex..
.. The problem was, the “Real Programmers” didn’t have the imagination and daring to develop really outgoing solutions, with real imagination and versatility the way Flash Dev’s and fellow Creatives think of things. They wanted to wait for Componants to come a long insted of developing what they need.. My heart died somewhat from this realisation.
These days, I’m back in Flash, creating things that are cool, and innovative, and seen by thousands++ of people. I like this! I’d much rather be this form of a “script-kiddy” than sitting in the same office getting excited over different types of framework rather than that actual finished result.
I’m a PIONEER baby! For me, thats what flash is about.
The funny thing is, Spring, which that guy quotes is greatly influenced by the idea that frameworks have become too heavy and it’s trying to provide a lighter, less intrusive, approach.
So while arguing against your post, he uses a framework example that reinforces your ideas.
It’s nice to finally hear some discussion about the seemingly magical barrier between “Real Programmers” and the rest of us. Personally I’ve been frustrated in trying to jump from the business application spectrum Borland’s Delphi to Flex/AS3. I keep asking myself, am I really that dumb compared to everyone else? Was I hiding in a hole? I thought I WAS an OOP (Object Oriented Programming) programmer? How in the world can it be MORE complicated?
Maybe my problem lies with the fact that I’m not just a programmer, I’m a designer too. That must be where the drive to get it done quickly and simply while still making it look good overrides the, ooh…lets see if we can encapsulate each individual line of code.
I’ve had to take a step of faith and simply choose to believe that it can’t really be this complicated.. it must be a lingo thing… I must be missing something simple. The views expressed in these comments have been along the lines of what I’ve been concluding and hoping for. So THANK YOU!
Truly, there seems to be a lot of confusion amongst newcomers. My OPINION is that it’s not AS3 being a more well rounded programming language thats hard to grasp, but rather that all the added layers of fluff (Yes I’m sure they have their place) are being sold like “EVERYONE is doing it”. Framework this, Framework that, Design Pattern here/there, it’s crazy! I just want a stinkin piece of text to jump out of MySQL and move 50 pixels. (note sarcasm)
I really think we (the newcomers / thoroughly confused) just need someone, ANYONE to shine a flashlight for us while we cross the bridge.
Hmm, ActionScript is so much a Scripting Language like Java is a Scripting Language. I’d say for newcomers the name ActionScript is confusing. It is far more than a mere scripting language! The difference between Scripting and programming language to me is that a Scripting language doesn’t get compiled, like PHP or JavaScript. It’s not so much about how the languages structure is related to Java/whatever or not.
The nice thing about Flash CS3 is that it gives the best of everything – if you like placing your code on the timeline, you can. If you like the pseudo-OO approach of AS2, you can code like that. If you like the true-OO approach, use AS3.
> I’d think that AS 3.0 is more complicated for new comers.
I think AS 3.0 made life much more easier for new comers :-) .. I started doing AS with Flex and the transition from Java was very smooth.
Many developers today have a knowledge of OO, design patterns, etc. and with Flex you can use that knowledge to get started quickly.
So, I couldn’t disagree more with your statement :-)
@sascha: There’s so such thing as a “mere” scripting language. If ActionScript someday actually does become far more than a scripting language then we should all stop and review what we’re doing because it will mean that we’ve lost our way in providing an _easy to use_ development environment for the web.
This whole discussion reminds me of how everyone was falling over themselves to declare that ActionScript was finally object-oriented when AS 2 came out because we had classes. All that showed was that those people had no idea what object-oriented meant. (It’s called object-oriented and not class-oriented for a reason.) ActionScript 1 is perfectly object-oriented. Prototype-based languages are perfectly object-oriented (in fact, AS 2 was nothing more than syntactic sugar that got compiled to AS 1).
Personally I think with the introduction of Actionscript 3 and Flex, Flash has moved a big step forward to becoming a multi-purpose ui/display technology, rather than just – and you’ll shoot me down for saying this – a gimicky language.
Let me qualify that – how many enterprise applications have you seen fronted by flash prior to Flex (as opposed to HTML+javascript or native)? Contrast that with how many adverts or ui’s with low levels of interaction (only a few buttons and not much data) on the web that are made with flash. I’m suggesting that until now, Flash has often been used for gimicky things.
The reason why the latter are relatively so much more populous is not because Actionscript 2 can’t handle it (because it can), but because to any developer used to working in an application (i.e. encapsulated code and team based) its filled with far too many nuances and is difficult or near impossible to collaborate on.
This is what you pointed out Aral with your ‘right tools for the job’-esque statement. But what I think you missed about the script kiddies statement is that Pondus might be referring to ’script kiddies’ as ‘developers’ who use actionscript without knowing what on earth its doing (i.e what _root really means) – which is fine – but personally, moving from Java and using JSP as a view technology I found Flash incredibly difficult to get into as sooo much online content is aimed at them (i.e. step one, draw a rectangle, step two, press F9 then write out this code word for word, step three, hey presto it works with no explanation). There should be some level of education (and Adobe’s documentation is NOT it – very weak!).
Picking up flash files made by our designers is a nightmare as well, I pretty much have to rewrite line by line, because I find that Flash almost encouraged chucking code everywhere. And don’t get me started about call back functions (thank f I found the delegate methodology), the debugger, animating dynamic text fields in loaded swfs, referencing different levels in the swf ….
You say Java isn’t agile (in my mind this means high in productivity), but comparing IDEs; Eclipse say, to Flash 8, the minute I have to do something a little complex my productivity is far greater in Java than in Flash.
The further ui design and ui code is separated the better imo and Flex/actionscript 3 is perfect for that end.
The big picture missing:
AS3 is bloated from the point of view of real case scenarios that Flash was developed for in the first place -graphic and animated oriented websites- which are for the most part designed BY designers, not programmers… very few programmers can do a compelling website with just code, in my case as the script kiddie at work for 8 years now(everything AS2 so far because not a single big portal will let you use AS3 yet for any advertising)I had to train the designers to get used to code what can be coded, and in a proper way, and do by hand what can be done faster by hand. Very often I get to see things that you just can’t do with code if you want to deliver in time(again the real word comes in).
I’d say, don’t use the tools you have when you want to, use them when you need to!
I’ve done Java, I’ve done PHP, I’m a professional ActionScripter looking to move to Flex/Java systems. I did everything, including Java, with jEdit, a text editor. I don’t like IDEs, I don’t like Flex Builder or Eclipse and I especially don’t like Flash itself.
I don’t understand the whole “Java is a horrible monolithic beast, whose programmers are all insufferably smug assholes who hate change and despise ease of use” thing. I’ve been hearing it more and more… “they’re forcing us to use big airy-fairy modules, they like to ‘encapsulate’ everything inside of everything else, they use ‘design patterns’ like they’re some sort of magical voodoo…”
Are you trying to tell me those concepts are inherently wrong?
If not, are you trying to tell me EVERYONE misuses them?
If so, are you trying to tell me those same people don’t make a total smelly hash out of old timeline-based or procedural code?
If you can screw up Java, you can screw up Python. Languages aren’t the cancer or the cure.
And finally, AS2 and all earlier coding methods are still fully supported by Flash 9 and the player, and will probably never cease to be supported by the player itself. Keep using them. What the hell is wrong with that?
Great topic. It’s a battle I fight every day, but as one commenter pointed out, I think it comes down to communication. Because I don’t speak the same language as the “real programmers” they think I have an inferior programming intellect, and have tended to marginalize my contributions.
Ever since I forced myself to learn through AS3 things have been improving on the communication front as well as in the quality of my code. While I initially missed the AS1 days, I wouldn’t want to live without AS3 now. I was forced to become a better programmer – more organized in my planning and execution. And now I can communicate better with the “real programmers”, because the Flash community has had a major influx of talent from the outside programming world and I’m reading their contributions on the mailing lists. I think that’s what AS3 was supposed to do, in part – make Flash more accessible to other programmers.
A few downsides… I have become less focused on creativity, and more focused on logic (I’m making a concious effort to combat that). Also, the volume of “real programmers” decrying “script kiddies” has increased, as it inevitably would. But a net gain all the same, I’d say.
I find this discussion to be fascinating.
Like most old school Flash developers I started as a designer and I chose Flash because it was the only thing that let me express creativity the way I needed.
Now I work mainly in Flex an spend very little time doing the designy, creative things that I used to ( not that I’m complaining, I like programming ). I work with a lot of former Java guys who all say the same thing, “Love Flex, hate Flash”. That opinion is really strange to me because i think they are exactly the same thing. You take Flash / ActionScript, you add a Framework and Component Libraries, you have Flex.
Java and .Net are a systems level languages and because of that they functions really well in a structured, big team environment. But there is a reason why the whole web 2.0 thing wasn’t built on Java. When two guys in a basement are trying to get their great new site out of the door in a hurry, they don’t need frameworks and design patterns, they need speed and agility. Most Flash developers have more in common with the two guys in the basement than the ten person software development team.
Don’t get me wrong, I’m a framework, design pattern junkie but I would never be so arrogant as to say that Flex is better because it has a framework. And to say ActionScript is ‘gimmicky’ because It’s not typically used for systems level enterprise applications is obtuse. To me that says more about the people using it than it does about ActionScript as a language.
I imagine that Flex is so welcomed by Java people because it put ActionScript in a context they could understand, I just wish they would take a little bit more time to understand Flash. I get put off by Java people seem to take the attitude that ActionScript is a lesser language and because they don’t immediately understand it, are quick to give up and say the rest of us Flash people don’t know what we are doing.
I never had a hard time getting my head around Flash / ActionScript. It was never as confusing to me as Java people tell me. Frameworks are great but they are not always the answer.
Jamie
Here’s one to chew on: there are a lot of people who are even better than the Real Programmers you’re talking about, who in fact piss all over Java for a completely different set of reasons — let’s call them Realer Programmers. While Real Programmers are talking down to you for not knowing what the Command pattern is (hint: super useful), Realer Programmers are talking down to THEM for liking the Command pattern at all (since some Realer Languages have features that make it unnecessary).
Exactly as Java guys are calling you script kiddies, some extremely influential programmers are calling the Java guys mindless undereducated ininventive cubicle drones. You can just guess what they think of ActionScript. (Spoiler: they don’t. They literally never even think of it. Tell me this article isn’t about AS3 with Flex. Sure sounds like it, right? But it’s not.)
And we can’t flatter ourselves by saying “but the Realer Programmers want fast and light development, and so do we!” No. They want to write beautiful, easy-to-maintain, comprehensible, and lightweight code faster. We — or you, if you want to point out that I did Java before AS — want to get those monkeys punched as fast as possible, so people can get their free iPods. Whenever I hear “I don’t want a framework, I just want it to WORK”, I tend to agree… but then I hear “forced import” and I think “well, now you’re just telling me you don’t get it.”
Something else that springs to mind; you have to kinda define what “real programmers” are. Okay, so scripting, particularly ActionScript, VB Script or JavaScript are probably something you can rule out in most cases, but Java and .NET? Really, those are scripts, too. Yeah, yeah, I’m sure there are a lot of Java and .NET programmers that consider themselves “real programmers” because, in fairness, those particular platforms require a lot of skill and experience to really make fly, but they’re no more than any other script language or framework. They simply have larger frameworks providing more functionality.
Also, many old timers with their Turbo Pascal, real hardcore ASM enthusiasts or even functional language boffins, often have a go at us C / C++ / Delphi programmers for using a language thats simply not really real. Hell, let me get out my deck of cards and handy hole punch and have a crack at even those.
The point I’m making is that, like most posts in this topic, providing we write cleanly and efficiently in a manner that promotes extensibility and maintainability then we are real programmers, while the language we use is the tool for the job, so it’s always subjective. If an OCaml programmer wishes to develop a cross OS, cross browser, rich internet application complete with video , audio and every other bell and whistle using the OCaml language, then I’d call that person an idiot, not a real programmer ;-)
Heh, looks like I’d forgotten what this topic was actual getting at…. Man do I waffle!
This is falling out of the fold to where the discussion won’t really continue much — a failing of blogs, I guess. Lee, I’d say that what the much-discussed “Real Programmers” call writing “cleanly and efficiently in a manner that promotes extensibility and maintainability” is what a great many more freeform AS old-schoolers refer to as a confusing hash of new terms and methods that seem to add more work than they’re worth.
And when it comes to making talking popunder banner ads and 90-second unskippable thumping-techno site intros — which is still a pretty sizeable chunk of Flash development — that’s true. I just wish people would see things in perspective, and then pick the tool that matches their needs and working style. i.e. don’t bitch about AS3 if AS2 or less works for you. (And if you want the increased execution speed of AS3, study up on compilers and learn why AS3’s strict structure assists it in that department.)
@Alan: I’m not fully going to disagree here, as we all have our styles and prefered methods. However, I do quite disagree with you. For one, many coding styles and patterns exist because they do make light work of coding. Take Singletons. Probably the most simplest coding pattern. It used to be that many of my colleague coders in the past would adhere objects to the _root or _global objects in AS2, so that they are available from everywhere. Once shown the power of Singletons, those objects are never lost again, and bugs in large AS applications are reduced to a bare minimal. Also, one of my previous colleagues refused to learn AS2; he still used AS1 and he was a master of it. That’s great for simple apps or those apps that probably won’t be fiddled with much past release. However, with the types of applications the business was developing, it made it difficult for other coders in the building to work alongside him, or fix bugs in his code. The opposite was also true.
So, my point is, many patterns and programming design phylosophies exist for a purpose. They actually make coding simpler, reduce bugs, improve coder teamworking, improve coding readability and make coders better at what they do (they actually think about what they’ll code before they do it).
As for your point about not bitching about AS3 if AS2 or less works, well, I for one didn’t pick up AS3 until last september, simply because I didn’t need to, but now I have, I’ve found it works better. Most other coders are in the same boat. If they just tried it, they’d see that it does save time and effort. Adobe didn’t build AS3 to make coding difficult, they built it because it’s a vast improvement.
$0.02
One other point; “freeform AS old-schoolers”; that includes most of us on this blog, Aral included, whether we use AS3 or not. I’ve been using Flash since version 3, when all you could really do was “gotoAndStop”. That’s about 9 years of Flash development. I think the term “freeform AS old-schoolers” really refer to those who still add onClipEvent to a MovieClip instance on the stage. We still are those people, we just do it less, nowadays.
Well, I agree with you, of course. AS3 IS a giant improvement. I come from a Java perspective, where re-usable classes with encapsulated functionality is the standard, not some frightening new requirement. I was just pointing out that to a lot of AS coders, particularly those who ONLY know simple scripting languages, the new stuff looks unnecessary at best, intimidating at worst. I’m just trying to see the other side. Personally, I’d subclass my own mother if it saved me from repeating code.
(I guess the post you directly responded to didn’t make my position clear — higher up in the thread I explain my personal view of patterns/etc in more detail.)
Hey Alan, yeah, you’re right on the button in that one. :-)
As for the other side perspective, though. The way things are moving in the Flash world, I’m starting to think that embedded code AS users will need to grasp full OO (or at least as full as it allows) programming in Flash in order to stay concurrent with client requirements. People are getting savvy about what Flash can do, now. And the general trend is that those coders who embed AS into MovieClips and whatnot are the ones that’ll not be able to utilize much of the Flash capabilities. As such, they’ll miss out on work, too. It’s not that I’m an evangelist pushing patterns or OO programming, I’m just pointing out that ActionScript is becoming – or has already become – a true programming language, so it really does need to be used as one. :-) I just want to make sure those embedded AS’ers get a foothold in the future of Flash before they lose their footing.
I would tend to disagree with the absolute tone of the the post above. Some of the most visually amazing stuff i’ve seen done in flash was done with attch-code-to-movieclip style programming. Sure, it was a son of a bitch for me to look at it and find out how it worked, but ultimately all of this framework talk is not for the end users benefit, it’s for ours.
It’s a little extreme to suggest that if you don’t adhere to frameworks or design patterns, you will obsolete yourself. Good ideas can come from anywhere. The ‘holier than thou’ attitude is damaging to the industry because it only discourages newcomers from contributing.
Jamie
Hey Jamie. Yes, I agree, I’ve seen some pretty cool stuff before that was done in an embedded manner, and I never said that those that don’t adhere to frameworks or design patterns will obsolete themselves. I simply said that those who don’t learn to abstract in a more OO friendly way will find it harder to develop for emerging technologies. Patterns are generally a help, but they don’t create new possibilities, simply improve development flow. Also, frameworks are often simply a collaboration of patterns, so the same is true of those also. A good programmer may choose to forgo both patterns and frameworks, yet still be a good programmer and still produce amazing results. However, unless you embrace the ActionScript OO capabilities, you will miss out on a lot Flash has to offer. Period.
As Aral pointed out, this can be done in AS1 using prototypes if you must, but as you pointed out, developing with Flash as a language platform, rather than an animation tool with some coding capability is the difference between producing something that can be extended, improved and reused with ease, or producing something that looks great, but you’d likely have forgotten what the hell you did six months down the line.
This isn’t just me thinking this, it’s most of the programming world! Adobe included.
hope you like/enjoy my post.
http://blog.projectx4.com/2008/01/29/dear-adobe/
I taught myself ActionScript 2.0 from books and now work for a large digital agency in London. We are only just beginning to do AS3.0 projects. I don’t have a computer science degree so I never studied any design patterns. I understand the basics but honestly can’t see the reason to build to interfaces and such most of the time. Where are the resources that explain the pros and cons of different patterns and the reasons for using them?
Aral,
Absolutely agree, extremely well put. “Java dudes – Back off”
It takes a lot of guts to do what you did.
Well done Mate!
[...] a recent post he rails on people who write the software that runs the world (I never shy from melodrama, if you [...]
Hello! Maybe a little off topic but…
I come from php and I´m relatively new to actionscript and flash. I Have a lot of experience with php mvc frameworks but I am a little overwhelmed by the quantity of “frameworks” and “libraries” for actionscript/flash.
In my opinion, there are a lot of things that actionscript/flash cannot do out of the box like easy form serialization, application/website scaffolding, more than basic string manipulation, etc.
I am looking for a library/framework that provides a base of code that takes all the plumbing off my hands, Can any of you guys point me in the right direction?
Any reply is appreciated
email[dot]rafa[at]gmail[dot]com
This is a matter of perspective, or rather a lack thereof. and I have seen this scenario before many times, the most notable example being the history of Visual Basic. Full disclosure, I am one of the despised “hard-core developers” you are maligning here. I am reading “I had to learn flash 1 then 2 then MX, then whatever and now I have to learn ActionScript 3.0. Please, make it stop!”. I heard the same damn thing from Visual Basic 1.0 “programmers” who were able to use that simple little tool and write “programs” like the “real programmers” without any real effort or study, and those people subsequently hung a shingle and did shoddy work and grabbed work from people who actually took the time to learn a discipline. By the time VB6 established itself as the utopia of the VB universe, Microsoft vastly improved if by introducing VB.NET and the whole .NET product line. The outcry is still in full swing 6 years later. I mean for god’s sake read a damn book. Grow a little.
Complaining about having to learn a single product as it evolves over a decade? Try doing what I had to do, learn 16 different programming languages to put food on the table and keep a consulting business running. That is the essential difference apparently between Flash “designers” (I seriously doubt tha majority of Flash users out there are trained designers, I would prefer you accept the term hobbyists or fledgling scripters at the very least) and professional programmers.
I have no Flash background. In fact, I don’t have a computer science degree either. I taught myself all 16 computer languages, the first few while I was sorking BS jobs right out of the army. Now I have looked at Flash over the past couple of years and liked what you could produce with it, but I didn’t like HOW you produced those cute little animations with the product. Also, my core client list aren’t just scooping buckets of money at people for banner ads. Maybe 6-8 years ago, not today. Today, the web is growing up, not just Flash, but the web, and growing up means consuming data. It means not just pretty little photo galleries and slideshows, but rich media accessing valuable data and connecting the dots between advanced user interfaces with advanced back-end access to the client’s real assets: their data.
I am playing the worlds smallest violin right now for those who say they are strugglng to learn AS3. I am only willing to accept Flash as a real viable tool now that AS3 exists. Now the game is getting interesting. But do you really think, any of you, that all “hard-core” (let’s use the word professional, shall we?) programmers were born with our minds loaded with advanced OOP principals embedded in a chip in our heads? We were preloaded with language grammers in the womb? Sorry to break your bubble, but all of us had to work at it. Work seems like a dirty word when you can make a piece of text fly across the stage with a few mouse-clicks. But work it is, so get used to our world. Don’t paint yourselves as underdogs. Programmers generally do not have great social lives because we have to struggle with ever evolving technological changes year in and year out, learning the latest versions of a lot of new technologies at once, and practicing those technologies, and while we are at it, delivering useable products to our clients, not leaning on a foosball table all day. It is hard work, it pays very well and it is a fact of life for us. My heart doesn’t bleed because VB6 programmers haven’t taken the last 6-7 years learn a new version of their single bread and butter tool, nor does it bleed for those of you who want Flash to remain a toy language (which is what VB was originally considered). I am excited that finally Adobe is finally inviting us developers to the party. Frankly, I think they, and you, will benefit because with programmers, serious programmers, there is a huge work ethic you can depend on to use any technology to the max, to tell you what it wrong with it and often actually help you make it better, and to make the technology actually push the envelope (and for the record I don’t think making a carousel is pushing the envelope). If you don’t like that statement, tough. I don’t liking working 17 hour days, but I do it. The rewards are well worth it.
Look on the bright side, if you don’t want to become really advanced with the product as it evolves, do what the original VB programmers did. Let workhorse programmers step onto the field and write a lot of prebuilt kick-ass new add-ons that you can just pick up, include in your projects and make yourselves look like wizards all over again. To be fair, it isn’t just Flash people who whine like this, there are many less-than-motivated developers in every language/product who don’t like to scale the learning curve that some of us are forced to do to remain viable. Its only because you haven’t walked in our shoes that you want to call us elitists, or suggest that we have superior attitudes.
The fact is, programming is hard for everyone when you first encounter something new. Even hitters with nearly two decades of experience struggle, as I and many others I know can attest.
So because Adobe is allowing its products to grow up, and to provide a reason for we grunt programmers to finally give Flash a serious look is only fair, and only good for the larger community. Nobody cares how hard it is for you to jump from ActionScript 2 to ActionScript 3. Clients will just call you a whiner and give your check to someone else. No one cares how hard it is for me to spend my nights and weekends to learn C#, Javascript and 3 different JS frameworks, the .NET runtime, keep up with evolving CSS, XHTML, ASP.NET and now ActionScript 3. Suck it up. Most of you only have one language to re-learn.
In the future, if you can’t get your hands around the lingua franca of OOP in at least one language, then you will be delivering pizzas. But somebody has to deliver pizzas. It is what it is. OOP, RIA, rich media apps connecting to corporate data, musclar appications are now and will continue to be cash cows. Either you want in or you want out. If you want in, crack a book. Watch a few a video tutorials. Write some code. Give it your best shot. If you were smart enough to make a lame-ass scripting language like [insert all pre-AS3 versions here] ActionScript produce impressive works of animated art, then you are smart enough to learn OOP. It isn’t all that hard folks. It is just different than what you are used to. Stop complaining, and start studying. Because I can tell you this from watching this sort of thing play out time and again, you are not going to stop technology from advancing just because you are lazy. Ever hear of Clipper? dBase? TurboPascal? PAL? I didn’t think so. They don’t really exist in any meaningful form anymore. And people who clung to those languages like grim death rather than embrace change found themselves left behind and playing the victim, and consequently out of the game now.
Seriously, how can you enjoy technology without embracing change? That is the name of the game. Don’t think you are going to sit on your precious code base for the next 10 years and the money is just going to flow to you. I have written my own propriety frameworks, and bodies of code over and over again, on average every 3-4 years as long as I have been programming. You do it to save time, and milk it for as long as it is worth, but you don’t do it expecting to ride them forever and that the ravages of time will pass you by. You have to be nimble, flexible and work as hard as the rest of us if you want to have your slice of of the pie.
There is no difference between hard-core programmers and hard-core designers, by the way. If you are hard-core anything, it means you have an “A” game. Having an A game, simply means you work to push your skills, to keep the blades sharp.
Suck it up and get busy. Best of luck. Like us or not, we are on the field with you now.
I like the way flash has gone in regards to AS3. I enjoy the power of it, the flexibility. I don’t like the fact that I end up taking forever to code something simple. I agree that flash should be easily accessible to designers (particularly those who fear coding) as this is a vast group of people. It’s sad to see that they are forced into using outdated systems (AS2) in order to keep doing what they do.
Unfortunately, there is nothing much that can be done to enhance AS2 in a similar fashion to AS3.
I think it would be nice to update aspects of it to include some of the functionality of AS3 (e.g. addChild vs getNextHighestDepth but without forcing an addChild – any object created in AS2 should be automatically added to the top layer).
I find myself constantly jumping back to AS2 for smaller projects. But I have found with large complex projects (one’s that would require large chunky sections of code anyway) AS3 is far superior… well, at least if the flash player wasn’t so horribly buggy. I’ve had more issues with player bugs in AS3 than I ever did in AS2
Thank you for your site.I always read:)))
Wow, post #35 by “Dan Martini” was quite long, rude, and made a few unfounded assumptions.
I’m a graphic designer who was expected to learn Flash by her boss at work years ago.
I have never taken computer programming or scripting language courses and find it all very confusing and intimidating.
I had no desire to learn Flash. I was quite happy making static images in Adobe Illustrator and Photoshop.
When my experience with Flash began at my job, I think I started out in version 3 or 4.
Every time a new version of Flash was introduced, my head boss would buy everyone at work a copy of it.
By the time Flash MX was released, one of my bosses was expecting me to produce more and more complex animations and incorporate more interactivity in my Flash projects, ones that could be controlled by the user – and some of these could only be pulled off by more Action Script, as far as I could tell.
I had to quit that job around 2002 because I had to help take care of my mother over the next 6 or 7 years (she got cancer and eventually died).
During this time, I bought many books on Action Script, and I had a full version of Flash MX at home to practice with.
I’m still stuck with Flash MX because I cannot afford to purchase new software, which means I have to use whatever version of Action Script Flash MX uses (which is what, version 1 or 2?)
To this day, I’ve not made much progress with Action Script. No matter how hard I try to learn it, I never get too far.
Once I get to a part of an Action Script book that confuses me, I tend to get an anxiety attack, I get frustrated, put it down and never look at it again.
Here I am trying to make sense of Action Script 1 (or 2, or whatever MX uses) and I have people saying I’m a washed-up, obsolete, no-good hack if I don’t or can’t learn version 3.0. That’s not very encouraging.
Remember, I’m a graphic artist with zero background at computer programming; this stuff does not come easily for people such as me.
When I first started out, I found the “gotoAndPlay,” concept of nested movie clips, targeting movie clips, etc., type stuff foreign and hard enough to learn, and now I hear people tossing around strange, exotic- sounding terms such as “framing” and “classes” and what all – and I never got the hang of AS 1 and/or 2.
Unfortunately, I do see an expectation by some people, no matter how unrealistic it may be, that graphic artists should know Action Script, and that beyond the simple “gotoAndPlay” material.
I wonder if the companies running these “Graphic Designer Wanted” job ads I’ve seen over the years understand what a graphic designer is and does:
I’ve actually seen ‘Graphic Designer Wanted’ ads asking that the applicant know “C++, Visual Basic, SQL, and oh yeah, knowledge of photoshop would be nice, too.”
I am just hoping that when I make a foray into the working world again that there will be employers who will be happy with the skill set I already possess and not expect me to know advanced Action Script.
At least on my last job, they would sometimes pair me and the other graphic designer up with a computer programmer; we would do the front-end stuff (the art work), and he would handle the scripting and so forth.
I hope that is still the working model at some places today.
Anyway, just remember that not everyone wanted to learn Flash or Action Script: it was foisted upon us.
AS3 isn’t backwards compatible with 2.0. It’s total ASS.