Recent Weblogs

Links I like

Script Wars, Action vs. Java

I recently attended the Ajax World Conference in NYC. Ajax has taken on a meaning much different than its original acronym represented. Ajax is the idea of asynchronous calls to a web server from a web client, regardless of client technology or data format on the response. The speakers typically refered to applications and gadgets built with Javascript as Ajax, and application built in the Flash environment were typically refered to as Flex. So thats what everyone was saying throughout the conference, Ajax and Flex. I would say its probably a good branding promotion for Adobe to have everyone call it Flex over Actionscript but thats what it is, another flavor of ECMA.

ActionScript advantages

I've coded in both languages and I will say without a shadow of a doubt that Action Script (I will be refering to 3.0 in this document) has some clear advantages. First and foremost browser compatibly, once your user is in the Flash environment it doesn't matter what browser they came from, the flash platform is universal and there are no model incosistancies like you have with Javascript. Animation and non-rectangular shapes are two things that Flash handles oh so well natively which makes for a fast track to a smooth UI.

Javascript advantages

Javascript is the native programming language for many browsers, all GUI based browsers have support for JavaScript. Javascript builds DOM Objects which fit inside HTML documents which can be accessed via CSS. Your programming design now spans the breadth of 3 well established technologies, all of which the browser natively supports. Javascript is built in runtime only, which allows users to customize libraries through methods of composition.

ActionScript disadvantages

One of the most inconsistant models in the browser world is the flash detection model. IE has support only through variables in VBScript, its a mess that Adobe can't even properly address the Adobe's flash detection kit gets you 90% there but even then there are users that can break it. No DOM Model, something that I have relied on plenty of times in Javascript programming is the DOM, although Actionscript variables are strongly typed there is no DOM support, finding elements children is tricky and when you get into the question of "chrome" it gets even worse. Weak CSS implementation, the Flex library has a Style class but its abilities are limited to a one level listing of properties, most of which are inaccessible via the Style tag, important ones too, such as width.

Javascript disadvantages

Development can be a headache in Javascript, with a runtime only language its hard to catch "compile time" errors, mis-named variables to passing the wrong arguments to function calls. Firebug and other tools have been a great step forward in catching the "silent killers" but still it is a mile behind the experience you can achieve in the Flex Builder IDE. No class hinting on function calls or return types, I believe this to be a disadvantage and blessing but most figure this to be a pitfall.

The Middleground

Each technology is useful for many of the same tasks but a few questions I ask myself before building a web application are.

  • Who is the audience?
  • How big is the audience
  • How often are they going to use this?

If your audience is the AARP you're probably going to stick with some transparent Javascript. If your audience is the League of Young Voters, go for some flashy flash. Other considerations are.

  • How often is project scope expanding?
  • How many members are on the development team?
  • When is the deadline?
  • What features are already supported by either framework

Actionscript is by itself lacking a lot of UI functionality, thankfully Adobe has provided, for free the entire Flex Class framework which includes tons of controls and layout objects to assist in application development. For Javascript there is prototype which assists in native functionality and with Asyncronous requests but has little to do with rich UI components. People such as myself, Nitobi, Backbase and many others have been working to build a UI Framework like Flex. So frameworks have a lot to do with the battleground, but certainly do not predict the outcome of the war.

Comments

July 28, 2008David Christian Liedle

Thank you for this post - it was exactly the overview I was looking for. =)

August 23, 2008Practical Encyclopaedia

nice

September 18, 2008Güncel driver download sitesi - actual driver download site

Thanks

September 18, 2008GUcel driver download sitesi - actual driver download site

Thanks

September 27, 2008Games

Thanks

October 29, 2008figurin

Thank you very much for this information.
Good post thanks for sharing.
I like this site ;)

November 19, 2008monty

thanks

December 03, 2008Pearl jewelry

Thanks for great article mate..
is java complicated than .net??
i am new to this field.

December 06, 2008car wallpapers

Thank you for this post - it was exactly the overview I was looking for. =)

December 22, 2008nostalji filmler

Thank you very much for this information.
Good post thanks for sharing.
I like this site ;)

December 22, 2008Gazeteler

I like this site ;)

January 16, 2009airbag tamiri

thanks

January 20, 2009netlog

Thnks you !!

January 21, 2009almanya chat

thankssss

March 04, 2009Villon

Thanks

April 09, 2009silver jewelry

wholesale silver jewelry at www.casijewelry.com

June 07, 2009Matt Rabe

Thanks for the insight. I agree wholeheartedly with most of what you have said, with the exception of your statement about the Flash platform being universal (under ActionScript Advantages). I held this as a belief for quite a while, until Flash 10. Soon after it's release I had clients contacting me saying "my upload form is broken!!" They were referring to the implementation on their site of swfupload, whose compatibility broke with the release of Flash 10. Though I did not write the applet personally and therefore cannot attest to whether or not this issue could have been avoided by better scripting (and a subsequent release was indeed posted that solved the problem), this did shatter the idea in my mind that "once you're in the Flash platform your compatibility issues are gone."
I will state that I am strongly biased toward javascript for anything aside from those sites needing a real "flashy" interface... Even so, I do put a word of caution out that although the Flash platform is universally cross-browser compatible (assuming support for it...), the platform itself is prone to changing over time.

August 16, 2009eFrane

Great overview. But I there is something missing on the javascript side: There are several UI providing frame works. Personally I am a big fanboy of the dojotoolkit, but there is also the YUI and I believe I heard of others too. The *real* problem with them is, that when you get into UI creation with javascript, everything get's messy because of what you already wrote: it's a pain in the ass with no type hinting...and these kinds of things.
Nevertheless, I favor Javascript much over ActionScript/Flex because of it's more open character meaning that you don't need some proprietary tools like flash to execute it.

Name
Site
Comment
  CAPTCHA Image
Reload Captcha Image
Captcha