So ECMAScript, ActionScript, blah blah blah. You already know the news. No need to restate it.
What I’m honestly wondering is, why should I care? I’m not being flip about it, I really want to know if AS3 being based on some standard or not really makes any real difference in any way, shape or form. It seems mostly like a marketing tag line. “ActionScript is Green! ActionScript is Open Source! ActionScript is based on ECMAScript! No baby seals were killed in the making of ActionScript!” But who cares? People who hate Flash will continue to find reasons to hate it no matter how open, standard, world-peace-generating Adobe makes it.
ActionScript is no less useful to me today than it was last week. Most clients could probably care less. I don’t think Silverlight or any other “competing” technologies are any more standards compliant than ActionScript now is. And if they were, that wouldn’t carry any weight at all in terms of anyone I know switching.
Furthermore, it seems like Adobe was the driving force behind most of the features that were going into the spec, and ActionScript was the only language even remotely compliant. So what good is a standard if there’s only one thing that complies to the standard? OK, JavaScript would supposedly eventually maybe comply to the same standard. But I’m still not sure what I’m missing out on now that that is not going to happen.
I guess I could see an argument in that if ActionScript is based on a standard, then Adobe can’t do whatever they want with it, add features in that theoretically give them advantages, etc. But to be honest, I even see that as a plus point. Maybe now we can have private constructors!
Again, though, I’m no expert in these matters. So, in all honesty, if someone has some info on why being standards-compliant is of any benefit other than a sticker on a box, please share.
Being standards-compliant is a competitive advantage. Largely because of the problems people have with companies that are not standards-compliant (see Microsoft). While it may seem like marketing tag lines like “no baby seals were harmed in the making of this movie” don’t really matter. Like everything else in marketing, they wouldn’t do it if it didn’t work. Standards are a buzzword that CTOs love. And a lot of technology decisions are made based on buzzwords and not based on practical usage. I agree with you that standards don’t matter to those of us that use ActionScript everyday, but it does matter for those of use that want ActionScript to become more legitimate in the eyes of the technology decision makers.
My impression was that if ES4 went forward, that eventually you’d be able to use it in both Flash and in browsers natively. That would make it easier for people to move between the two worlds, and would especially cool in hybrid situations like AIR.
Danny, yes, I understand that, but I think this is not an issue for 99% of the jobs that 99% of ActionScript / Flash / Flex developers do. Maybe certain large jobs for large corporations or governments, etc.
Josh, theoretically, yes. Practically, it would only work for things that did not access any part of the flashplayer specific javascript / html DOM model code. Good I guess for utility libraries, data manipulation, service access stuff maybe.
+1
It might just be that I’m getting older, but switching back and forth between different programming languages is harder for me than it used to be, so it’s hard to justify spending much time on a vendor-specific one.
Now that ES4 is effectively dead, my only real hope is that at some point we see something for Flash like they have for Android, compiling the Java language to the Flash VM.
Ken, if AS3 was ES4 compliant, how would that make switching between it and something else easier? I guess if JavaScript was ever brought up to the same standard, then it would be easier to switch between AS3 and JavaScript… Not a huge loss to me.
I wont pretend that I know a hell of a lot about the ECMAScript spec but my understanding was that both AS and JavaScript would eventually be interchangeable in terms of syntax. There is already a plethora of ‘languages’ out there on the web and in my mind the more that are similar means the easier it will be to transition from one language to the next without having to learn a whole new syntax. This is a big selling point for the marketing gurus at Adobe. I think “standards” is a pretty big buzz-word in the industry especially when you have Microsoft off in la-la land doing there own thing and creating a lot of headaches for traditional web designers.
I think the theory is that with standards you can have competition (like in browsers). It is a fragile situation though, because competition without innovation is more of a beauty contest (or a “forced install” contest). In reality a lot of standards are used to smash competitors over the head with.
One silver lining with an open standard though, your work isn’t hostage to a standard owner. It may take a lot of work, but you can retrieve and transform your work into something else if you need (legally). I think that is more important once you have massive effort invested in your data (eg govt, military, large corp – enough to justify the cost of writing a translator once a standard owner tanks).
Keith, that’s exactly it — as Will said, the idea was that AS and JavaScript would eventually be interchangeable. Therefore, the time spent learning AS3 syntax would be reusable in future browsers and other ES4 implementations as JavaScript caught up. For example, I was really looking forward to being able to eventually use my AS3/ES4 libraries with the Java Rhino JavaScript implementation.
Your point is well taken though — from a purely Flash development standpoint it’s no big deal.
For the average ActionScript developer, it doesn’t effect their day to day work. At least not today, but this decision is likely to have a HUGE impact on the direction of ActionScript 4 or any minor additions to ActionScript 3 (like how typed arrays were added to AS3 in Flash Player 10).
I see this change as a really positive thing for ActionScript as a language, as Adobe can now push forward ActionScript without worry of whether it’s included in ECMAScript. If they want to add method overloading to AS4, it no longer matters that it was deferred from ES4, they can now include it because developers want it. Same thing with the mentioned private constructors!
However, as people have pointed out above standards do matter to some people making decisions in the technology, so perhaps Adobe will have AS4 meet some other standard. I’ve heard some ActionScript developers suggesting basing ActionScript on ECMA-334, which is what C# is based on. Or perhaps Adobe will make ActionScript it’s own open standard. Making ActionScript it’s own standard will pacify those concerned about standards, however adapting an existing standard will also do that plus make it easier for developers from other languages with the same standard to jump into ActionScript.
Here’s a snippet of how MS describes Expression Studio 2.0:
“Whether creating standards-based Web user interfaces by using Microsoft ASP.NET, building cross-platform rich interactive applications with Silverlight, or creating ultimate Windows Vista experiences with Windows Presentation Foundation (WPF), Expression tools…” blah blah blah.
So my take is maybe this will put a damper on how long it will take Adobe to develop ActionScript 4 or 5, and that in itself might help Microsoft.
Parameterized types! Overloading of methods! Private constructors! Get some!
The thing that throws me off is when adobe is say they are building a language in the image of a superior language called ECMA. Before adobe said that, I never knew about ECMA script and to tell you the truth I think that over 75% of all flash, flex and AS3 developers still don’t understand what that means to have Action Script be compliant to EMCA.
Even with all that being said, the thing that made me really pissed was to find out that Microsoft was the primary reasons to the disbandment of the project. Why is Adobe making action script complaint to a language that Microsoft can dictated and delegate over? I think that is a huge conflict of interest for our industry as Action script developers.
Makes you wonder why ECMA script is not trying to be more ActionScript compliant? I believe that if ActionScript is to be successful it needs to be independent of every thing else. Let others be come compliant to us. This is a power struggle when you get down to it. Adobe, Mozilla vs. MS, Yahoo. I think even if this has no effect on the way I do my job every day I can not stand by and watch a company like Microsoft with their, IE browser, sparkel, vista, frontpage, ect… come and disrupt the people that are helping make the way for tomorrow’s Action script language.
I see value in Standards in that they [theoretically] provide a level of accountability and diversity of perspective thus ideally contributing to the consistency and intuitiveness of a language. I tracked the ES4 Working Group’s mailing list for about six months and took away a few observations:
First, Microsoft wasn’t remotely the exclusive dissenter to ES4. My impression was that while Microsoft passively neglected the Working Group, when solicited to vote on features, Apple went so far as to actively [and amusingly] vote down nearly every outlier of ES3.1 including a number already implemented in AS3:
http://spreadsheets.google.com/pub?key=pFIHldY_CkszsFxMkQOReAQ&gid=2
N.B. the empty last column (MS) and almost entirely red column prior (Apple).
That’s not a stab at Apple either. Regardless of my opinion why, the WG seemed to contend bitterly with factions within the JavaScript community at large. In fairness, I still occasionally run across blog posts by Flash 8 guys bemoaning the loss of AS2. (To be crystal, AS3 was my primary motivation to abandon JavaScript RIA, so I’m rather unsympathetic.)
My question is, prompted by the mention of [ECMA] C#, why not pick up the Draft and run with it as Adobe’s own progressive Standard under the same governance? After all, Lars Hansen of Adobe struck me as the steadfast proponent of ES4’s vision which has itself substantially matured since the implementation of AS3. There were a number of features proposed more provocative than private constructors (generators stand out in my mind, not that I’m opposed to private constructors either) that could benefit the Flash (or at the very least, Flex) community.
KP,
I disagree that this isn’t a big deal. I wrote an extensive post about this in my blog:
http://k2xl.com/wordpress/2008/08/15/web-standards/
These “features” that Adobe will be able to make are mostly advanced coding features which won’t be portable now to other languages.
Sorry, I still don’t get the “portable to other languages” part. If I write something in C++, it’s not portable to Java, Python, ActionScript, or anything else. Are there any two languages that are truly portable in the way people seem to think ActionScript and JavaScript would have been?
It’s not that the languages would have been portable, it’s that going forward ActionScript and JavaScript/ECMAScript would have been the same language.
KP,
I think the point about being ‘portable’ is more about the language implementation and syntax rather than capabilities. The idea being the difference between coding AS vs JS will be merely a case of knowing the relevant libraries and not having to learn all the quirks and having different means of implmenting inheritance, instantiation, packages, namespaces etc etc.
But yeah, I agree with you, being ‘standards compliant’ at the moment is a marketing thing, JS is nowhere near AS and it’s going to be a long time before it is, so for the common developer it doesn’t mean much. However for a game of BS bingo ‘standards compliant’ is a great house call 😉
DT
Amen brother!
> I really want to know if AS3 being based on some standard or not really
> makes any real difference in any way, shape or form.
If you are a Web developer who knows JavaScript, but not Flash, then the fact that the scripting language in Flash follows JavaScript conventions to the point of being ECMA certified tells you in one breath that you can sit down with Flash and be productive immediately. You do not have to learn a new scripting language, you only have to learn Flash. This is a huge selling point, especially for the Web developer who wants to add Flash to their tools without becoming a 100% Flash developer. It’s the same principle behind adding the Adobe UI to Flash so that you can bring in more Photoshop and Illustrator people.
Yeah, so many people have given the argument, “if you knew JavaScript, you’d know ActionScript” or vice versa. It sounds great in theory, but I think in reality it’s a ridiculous argument. First of all, if you know ActionScript or JavaScript really well, you already know the majority of most computer languages. Yes, there are differences in all of them, but take any good Java developer and you can teach him the basics of the AS3 language in a day, and vice versa. Probably not even a day. Same with C#. Python, maybe a couple days. C++, ok, a bit more, but still, an AS3 programmer is going to recognize a good chunk of C++ right off the bat.
The thing that takes weeks, months, years to learn are the intricacies of the environment. In Flash, that’s the display list, sprites, movie clips, text fields, file reference, the net package stuff, shared objects, remoting, blah blah blah. I don’t care if JS and AS are standards compliant down to the last letter, it’s going to take a JS developer a good while to get to know all that stuff. And the same for an AS programmer who has to go in and learn the JS DOM, all the stuff that goes with AJAX.
Yeah, sure, knowing the syntax for packages and how to declare variables and functions will save some time, but I think people who keep saying “if you know JS, you’ll know AS immediately” are in some kind of dream world.
The whole not getting the Ecmascript 4 spec accepted as standard thing is very interesting.
Look at Adobe and all Adobe friendly bloggers. What´s the general view there?
Things in the vein of these things get said and repeated often:
Big evil MS blocked getting it accepted as standard. The parties blocking this are only doing so to block innovation on the web!!! Standards are important. But yes, we will continue to innovate!!!
Come, on, gimme a break!
Let´s have a quick look at the history there: AS1;Flash 6: Flash´s scripting language had evolved till there, had become considerably closer to javascript, many people in the “serious” programming world working in java or C++ laughed, didn´t take flash´s AS serious as programming language, but with time they had to accept that the possibility to combine code and media with ease and flexibility like in few to no other environments allowed to rapidly create nice results not possible in java or C++ in a comparable timeframe.
Flash continued its success story.
Fast forward to today: Adobe obviously wanted to attract way more of the “serious” programmers and get AS respected as serious language, many changes were made then. Thanks to AS3 and the way the newer player/interpreter,GC etc work combining non code generated media with codeside has turned into way more work and has become more time intensive . Thanks to the changes in language flash´s AS is becoming more and more a Java wannabe clone.
So again, Innovation?!? Where´s the innovation in turning AS into a Java clone?!?
The reality is Adobe wants to turn Ecmascript/AS more and more into a Java clone and well, while some more used to Java like workflow like it, many many others obviously don´t like that.
First it was more and more people from the flash community moaning, now The Ecmascript 4 suggested spec was declined by a big group of decission makers.
Its understandable Adobe tries to sell their loss in the most positive way possible but yeah, saying “we want to innovate, the others block that” type things while you reduce more and more what made flash innovative and at the same time copy more and more of another language and forced workflow?
Laughable.
You have some good points tomsamson. I don’t know enough about the internal standards politics to play the “microsoft killed it” card, so i’ve been avoiding that topic. I do think Flash has continued to be innovative, but I agree with you that the additional complexity that has been added to the language has brought it away from its original low entry level that was a key part of Flash’s early success. I’ve enjoyed the ride and learning more and more about languages and architecture and all that over the years, but I know that for many, it has just put bigger and bigger barriers in the way of learning Flash.
agreed on all 🙂