Thinkpiece: Rich Internet Applications (RIA): Dojo (et. al), Flex, Silverlight...

I am a fairly typical developer style bloke, I think. I enjoy new challenges, I want to produce sexy apps, I want my users to be happy. I do not want to spend days tweaking non-debuggable javascript on that pile of poo, Internet Explorer 6, after getting something working in Firefox (and its lovely Firebug) environment. I dont want to have to perform the same tedious crap for Internet Explorer 7, and no doubt, Internet Explorer 8. To be fair, Microsoft recently admitted that Internet Explorer 6 was a pile of poo itself, and have taken a public stance to embrace standards, etc. Techtonic plates have shifted in my planetary mass of cynicism, but as usual, we'll see what gets delivered. Of course, in the meantime, we have over half of the browser users out there using the incredibly brain-dead Internet Explorer 6. (You can tell I dont like this).



So far so boring. But - we're under enormous pressure to supply really cool intranet and internet applications - ones that look good, perform lots of on-screen validation (reducing server round-tripping) and so forth. Rich Internet Applications, in other words. Apps that just need a browser. Not Gates's one, not Firefox, not Job's one, not Opera. Any browser. And this application better work well, unchanged and unmolested on all of them.



Now, this is where the javascript frameworks step up to the plate. Dojo, jQuery, EXT, Prototype, MooTools, and a thousand others. Mostly 'open source' projects with one or more contributors. No big vendors in there breaking things, and lots of vendors linining up to support stuff. IBM and Dojo, etc, etc. This seems to be the future. But, from a practical, business development point of view - hold on there. Even Dojo v1, with its amazing framework of helpers, still doesnt have an IDE. I as a new Dojo programmer am expected to hack raw javascript source to do funky stuff. Javascript, remember, thats almost impossible to debug on Internet Exploder v6. But hey - we can do it in Firefox/Firebug, and pray that it'll run fairly unmolested in Internet Exploder. Okay. And some folks are doing some amazing stuff in this space - fantastic news. This is a likely contender to be the future.



But I ? Well. I'm less impressed. I find if I have to spend three days hacking Javascript to fix something (as I did last year with QuickR), I'm far less impressed. This isnt a Mash-up - this is a Screw-up. So perhaps frameworks - whilst amazing and deserving of our support - perhaps just arent there yet for the typical business developer. Someone who's supposed to mash-up business applications from existing components quickly and easily. Not someone who spends days debugging javascript (typically).



Okay, so I'm looking for something better. Something with an IDE, where I can lay out forms, fields, define on-screen validation, and hook em all up to my datasources. Domino, SQL, SAP, whatever, using Web Services or Jason/AJAX calls. Simply, easily, reliably. Is there a solution out there for this ?



So far, I've seen Adobe Flex Builder v3, and I've heard of Microsoft Silverlight. I'm playing with Flex at the mo, and building test AIR applications, which I can then embed onto web pages using exactiy the same techniques as I would put Flash objects on web pages. So far so good. Costwise, the Flex Builder is about $250 - so its within reach of most developers, and it uses javascript and something called Acrobat ActionScript. And so within a few minutes of scratching my head and downloading a trial copy, I have some bits and pieces of form, which I'm quite impressed with. Adobe also claim that the whole Flex thing will go or has gone open source, and you can use a free 'Flex' XML tool to build these applications should you so wish. In terms of capabilities, I can put a large number of controls (tab bars, hidden sections, progressive disclosure, all field types, etc) onto a very tightly controlled UI (which can use diferent themes) very quickly. I seem to be able to use Web Services and Jason/AJAX to retrieve information. So far, I'm impressed (as you might be able to tell). Needless to say, if the platform can display the Flash run-time, then it'll probably work with this. (Which rules out the iPhone, for some odd reason).



Microsoft Silverlight - I've not looked at. However, I fundamentally have a problem in picking a platform that comes from the same bunch of muppets that gave us this issue in the first place. I also have an issue with the usual Microsoft approach to these things: Build three very crap versions in quick succession, give it away for free, then drop it from the roadmap for eight years. Look what they did to Internet Explorer. So. Someone would have to hold a gun to my head before I considered this as a replacement for any form of anyone elses' framework. I realise this is hardly a fair, tolerant and even handed comparison, but I'm not a fair and tolerant guy when it comes to law-breaking billion-dollar companies. I'm sure someone will take offense to this - writing off a whole new generation of MS technology in this manner, but I'm willing to stick with my opinion on this one. I would be happy to eat my hat if I'm wrong in five years, as this would indicate Microsoft were being ran by grown-ups at that point in time.



So there we have it. Frameworks work but may require far more work than you might wish to invest, Flex appears to be another solution to Rich Internet Applications, and the current chair-throwing Microsoft aint welcome in my world...