Thursday, September 13, 2007

Really Idiotic Approaches to RIA: Flex, Silverlight and JavaFX

I just waded through a good article in DevX by Alexey Gavrilov on building Rich Internet Applications with Adobe Flex, Microsoft Silverlight and Sun JavaFX. The article worked step-by-step through how to build simple web applications with each of these products.

I had expected that there was some connection between Web 2.0, open source and the leaders in RIA. Instead, I found a set of time-warp technologies, each embodying its own uniquely idiotic approach. For the sake of brevity, I will here summarize the crowning idiocy of each approach:
  • The fat-client approach. Microsoft has determined that the only problem with browser-based apps is that it doesn’t run fat client apps. Silverlight fixes that bug.

  • The supermodel approach. Adobe was so entranced with the beauty of Flex’s audio-video capabilities that they forget to add little things like the ability to work with strings or dates.

  • The once more with feeling approach. Sun decided to take another stab at making good on their most famous lie about Java, “write once, run anywhere.” Unfortunately for them, the Javascript Genie is out of the bottle.
None of these approaches supports Javascript as the primary scripting language. Don’t tell Adobe, Microsoft or Sun that Javascript is hot and that those crazy open source people are starting to assemble lightweight applications to run in web browsers.

Having said all this, the open source AJAX community has plenty of work to do in cleaning up its own house. The good news is that if this is what we’re fighting against, we have only ourselves to blame if the evil scientists win!


Anonymous said...

Silverlight 1.0's primary language IS javascript. Silverlight 1.1 does not have a primary language, you can use C#, VB, Python, Ruby, etc.

Flash's actionscript is related to ECMA Script (javascript) and can be programmed against the DOM and vise versa.

JavaFX is just a "me too" technology.

Christopher Keene said...

Although it might not be immediately apparent, I am not claiming that any of these approaches are bad from a purely technical point of view. I am only claiming that they have little in common with the overall themes of Web 2.0 in general and AJAX in particular.

I think the power of Silverlight is in allowing a windows developer to use a consistent UI, the Windows Presentation Foundation (or WPF, on which you appear to be an expert) for building both Windows-based and browser-based applications.

For an existing Windows/.NET developer, Silverlight seems like a great GUI builder choice. However, it is unlikely that someone truly interested in the best and most open AJAX approach would pick Silverlight.

Anonymous said...

I for one hope Microsoft continues to get a clue, and decides to go with majority web standards in Internet Explorer. It has been such a pain getting things to display/work in IE correctly (javascript/Ajax).

Christopher Keene said...

I would say chances are slim that Microsoft will decide to sleep with the enemy this late in the game.

As the market leader, they are best served by appearing to support the standards, but doing so in a way that really rigs the game in the favor of proprietary Windows APIs.

In that way, Silverlight is a perfect example of the Microsoft strategy - provide nominal support for AJAX while making damn sure that any existing Windows developer will have no interest in changing from WPF to AJAX components.

Anonymous said...

Well, it's also really idiotic that zillions of web developers are forced to reimplement all kinds of widgets (trees, tables, ...) over and over again because JavaScript/DOM simply sucks in this area...

Anonymous said...

Try using javascript for the screencast on your company's homepage and get back to us on this one!

Christopher Keene said...

To my two anonymous posters - although this post lambastes the proprietary, non-AJAX RIA players, I would be the first to admit that all is not peaches and cream in Javascript-land.

My very next post points towards what I think is needed to make the AJAX toolkits worthy contenders to become the next GUI builder heavyweights.

Yes, there need to be standardized widget libraries on top of Javascript, and not 12 different ones, just one clear leader.

By the way, Flash is great for multi-media screencasts. I'm not sure this is an area where Javascript should try to excel, but I am absolutely certain that Flash shouldn't try to take on Javascript in the programmatic arena.

Palmero Tom said...

You are right: Flex, Silverlight, ... shouldn't get all the Web 2.0 attention because these are the technologies behind Web 3.0 (and please don't tell me the semanctic web is 3.0 - the semantic web will probably be Web 5.0 or so).

Anonymous said...

You are an ignoramus. You need to write about something you know about like how to tie a pair of shoe laces together and take a picture of it.

Call AJAX what it really is: HTML/JAVASCRIPT/XMLHttp

Oh, that is new. What a nightmare to program in also. Get a grip dude! You are way out of touch on this one.

AJAX is tied to the same problems application (yes application, not content) web sites have had for a very long time. NO 100% cross browser compatibility. AJAX is just a new name for dynamic HTML.

Don't get me wrong. I love HTML. It is the best platform for content sharing and will always have a love for it. It just sucks for Internet applications.

Adobe, MS , et al do not want to replace HTML for Web 2.0. They want to redefine the tools we currently have to put applications on the sites that we see today.


Christopher Keene said...

Thank you for sharing – I just love it when the trolls come out to play ;-)

Let’s see if I can find any actual content in your post to respond to – bear with me, it might take a while.

I think you are saying that ajax is bad because it is not cross browser. Let’s examine that for a second. Cross browser at this point is really shorthand for “runs the same on Firefox and Explorer.”

When we parse that a bit more, we find that more than half of the cross-browser problems come from Microsoft’s poor implementation of the standards. And hey, whadda ya know, Microsoft benefits from its poor implementation by getting witless developers (present company excluded of course) to adopt their proprietary, Microsoft-only solution as a reward for Microsoft’s poor implementation of the standards needed to make ajax work!

You don't suppose they do that on purpose do you?

And if you feel that Microsoft should not be rewarded for this kind of behavior, but do not have the weight of the EU behind you to slap a $600M fine on them, you can always choose a different proprietary solution and get locked into Adobe forever.

So your proposal, if I understand it, is that this open-source thing is just a crock, that nobody will ever get the cross-platform right, and the sooner we all just capitulate and fold up our tents, the sooner the caps-lock trolls will leave us alone?

Let me get back to you on that.

Alek Traunic said...

who the heck is screaming "it is not cross browser" today, 25th of September 2007

geez.... last time I had to deal with anything of significance not working in a common browser was XSLT in Safari 2. Safari 3 (on WINDOWS!) supports it just fine.

Javascript works, Ajax works, seems only Flex or compiled language developers ever say they do not. This is not 1998 people... (and BTW IE supported XHR long before any other browser)

Christopher Keene said...

So just for fun I also did a post on the Webguild blog to keep the conversation rolling merrily along

WebGuild - User Experience, Developer Network, Internet Marketing

Harry B. Garland said...

If this is this a debate of Flex vs. AJAX ("JavaScript"), let me chime in.

Flex is an elegant framework for complimenting ActionScript 3's already highly-structured OOP. With Flex, you can implement advanced design patterns necessary for very large applications, just like desktop application developers have been doing for years.

JavaScript is a little bit behind because it is based on the same ECMAScript that ActionScript 1 is based on. But in fairness, it is catching up because Adobe contributed the ActionScript 3 engine to Mozilla to power the next version of the Firefox JavaScript engine.

Reference this press release:

Anonymous said...

Dude, you put out a blogpost calling Flash and Silverlight RIA developers "idiotic" and then you complain about "trollish" responses. You are just getting back what you put out there. Try to be a bit more constructive next time and you will get more positive responses. I really hope you don't have kids since apparently you need this kind of stuff explained to you.

The point of RIA is to make the browser experience better. When people point their browser to a website, they do not care if it is written in Flash, Silverlight, or DHTML, they just want a good experience. Most of the high-end brands in the fashion, design, and entertainment worlds have invested heavily in gorgeous Flash websites that could not be done in DHTML cost effectively or if at all.

What are you going to tell shops with a ton of Visual Basic experience, go learn JavaScript and Dojo instead of using Silverlight and the Microsoft tools they already know? Total nonstarter. People should use whatever tools they know to get the job done.

Anonymous said...

Just wonna say somthing here about getting locked into a proprietary solution, and the idea that this is a reason to use ajax instead of silverlight or flash.

Supposedly the problem your getting at is that your making a product that runs inside something else and rely on that thing for your product to work. So how is using flash or silverlight different from using a browser? Your still relying on a browser created by someone else.

So we shouldn't use flash cos it's proprietary. your locked in. if adobe decide they don't wonna support you anymore then your screwd. how is internet explerer or firefox any different?

Maybe you still use html 3, and sometime in the (near?) future IE decides it can't implent html 3 anymore if it wants to be able to implent html X and still have a small enough browser to download and install quickly. BANG the proprietary daemond hits you in the ass and your site don't work no more.

Not only that, but you are relying on all the other browsers aswell. Lets say we're bothered about IE, firefox, safari and opera. Thats 4 different proprietary solutions you have to account for all at once. All with different agendas. Realy, standards don't count for poop unless everyone implements them right (which it's not always in their interest to do so (MS want you in silverlight so IE don't work like firefox)).

At least with flash, adobe are acountable to you, they depend on you for their income. it's in their interest to keep you happy. What the pluck does microsoft realy care if your html 3 site stops working in IE??? Adobe have proven they care... They have a new AVM 2 for AS 3 but they didn't leave the AVM 1 out of the new flash player. They could have, and that would have forced all AS devs to move to AS 3 and buy Flash CS3 straight away.

So in reality, your in safer hands when you go 'proprietary' than you are when you go 'open web standards' cos no one is actually acountable for their implementation. And cos you have the controlled 'proprietary' environment, they are free to go further and make them better. You can't even play a simple video in a browser with out some other plugin. In my view, once a proprietary solution has a large enough penetration, you can say standard shmandard. 90% flash player penetration makes actionscript the broadest, most solid standard around.

Anonymous said...

I know these posts are pretty old but I found them after checking out WaveRunner. You really put you and your product in a bad light by calling millions of developers "stupid". I work in the enterprise and have just scratched your product off of my list of environments to explore.

Anonymous said...
This comment has been removed by a blog administrator.