29 May, 2008

Starting off with RIA

Posted by Bhavin Turakhia | (2) Comments

As one of the many companies working with RIA, I would like to share some of our processes we have begun using in percolating RIA within our organization -

Select a RIA technology

There are severalĀ  RIA technologies available to choose from. On the web you have Ajax/Flex/Silverlight. For the desktop you have AIR/WPF (though it is kind of a misnomer to classify AIR/WPF as Rich Internet Applications)

Given that Silverlight is just taking its first breath, and that the Silverlight player is not currently available on a large number of Desktops, I would currently recommend Ajax/Flex for a web app. Between the two there are various pros and cons. Flex has an advantage of being ubiquitously standardized, so you will not require to bother with browser compatibility issues in your Flex App. On the other hand there are various readymade toolkits available for Ajax/Javascript that abstract browser compatibility issues and provide a plethora of ready made components.

Standardize on an Ajax Toolkit

For Javascript/Ajax try and use existing libraries and toolkits rather than reinventing the wheel. jQuery and YUI look to be the most promising. Both toolkits offer rich and dynamic controls. Currently jQuery seems to be more popular. It is a good to standardize on one and we are currently leaning towards jQuery within Directi. For a detailed comparison check the bookmark I posted on our Wiki - Comparision of jQuery, YUI, Scriptaculous + Prototype, Mochikit and Dojo. jQuery also has a number of interesting books available.

Be prepared to change the way you think

Conventional HTTP applications have always been request-response-pagerefresh based, to the extent that as developers our thinking patterns are molded by the request-response-pagerefresh cycle. RIA turns this approach on its head, not very dissimilar from the event-driven programming models that existed in the desktop apps world.

If you wish to successfully build rich applications, be ready to shed your older conventions and notions and begin thinking in a different manner.

Encourage Self-Learning within the team

A few weeks ago I wrote an article on what I call the Flexi-Learning model that lists a few of the strategies that we have been adopting within Directi as a part of our training and knowledge sharing processes. Pursuant to that I have added a list of RIA books within our wiki on the Software Engineering Textbooks page. Use similar strategies within your respective teams to percolate information.

Browse as many examples as you can

The biggest hurdle with RIA adoption as I see it is that UI possibilities increase significantly. Given the myriad possibilities for representing a workflow within the browser canvas, the biggest challenge is to be able to come up with a creative way to provide a rich user experience. To me the first step is to figure out the various possibilities. While reading books can give you some guidance - another important step is to view as many examples as you can find. The jQuery website, Flex.org, Silverlight website, YUI website and other such websites have several sample applications, walkthroughs and demos that will not only serve as great catalysts for ideation, but also entertain you, blow your mind, excite you and encourage you to participate

Category : TechTalk

26 May, 2008

AIR vs WPF: Show me the money!!

Posted by Bhavin Turakhia | (2) Comments

I was thinking about AIR vs WPF (or Flex vs Silverlight) from another perspective today. If I wear the Adobe hat and Microsoft hat, I have to ask where is the $$$ in all of this (for Adobe and Msft).

Well firstly, both Msft and Adobe are selling the IDEs (or as they call them XXX Development Studio). But seriously - selling IDEs cant be big business.

Another revenue stream could be licensing the runtime specification for others to build their own runtimes (JDK style). While I may be totally ignorant about this - I don’t think either Msft or Adobe is doing much of this as of today. Some of the specification seems open and free. There is potential to begin licensing the runtime specs for non-PC devices such as mobile phones and set top boxes etc. However, given the competition, runtimes will likely be free for all devices and vendors (in this case Adobe / Msft) will likely go out of their way to have device vendors bundle their respective runtimes.

One more revenue stream would be self-created applications. This is much like Microsoft’s strategy with MS Office which has always been their cash-cow due to the platform ubiquity of Windows. Adobe is building a slew of their own products around Flex and AIR, and an increased adoption of their platform can result in additional revenue from their own applications. Offcourse this is always a sensitive area, since by building these applications they compete with the very app developers they want to attract to the platform. However Adobe has an advantage over Msft in this area due to the platform neutrality of AIR/Flex. Any app built by them is more attractive to an enterprise which has a heterogenous Operating System environment within the enterprise.

This brings me to the last potential revenue stream - an indirect revenue stream through propagation of the platform. Something that Msft has been very good at in the past. They made their fortunes due to the plethora of applications built in VB / VC in the good old days. The more apps that got built the more copies of Windows (and as a result Office) were sold. Here Msft has a distinct advantage. Every WPF adopter creates an additional boost in sales of Windows licenses. Unless I am missing something Adobe has no such incentive.

This indirect revenue stream appears to be significantly larger in scope than selling the IDE or licensing revenues or currently even their respective home-grown apps. If that is the case, then Microsoft has significantly more to gain by becoming a RIA standard as oposed to Adobe. This would in turn mean that Microsoft can afford to invest significantly more resources and $$s in the development of RIA as opposed to Adobe. Greater investment *may* mean more features, greater adoption and eventually platform dominance.

The one way I see for Adobe to counter this is to open up the platform and have the IBMs, Google’s, Yahoo’s, Sun’s of the world involved in AIR/Flex direction and development. This strategy has been very successful with Java on the server side (though I am sure Sun would have liked to get a greater piece of the action than it has) and if AIR/Flex is to become a default option for desktops/RIA, partnership with the rest of the industry will create the momentum it needs.

Category : 0-cosmos | TechTalk

12 May, 2008

Things I wish AIR and WPF had

Posted by Bhavin Turakhia | (7) Comments

This makes a great follow-up to my last post on the Paradox of Choice. Life would be simpler with a single platform :). Before I start a flame war on that subject let me quickly turn your attention to the real topic of this post. I have been grappling with deciding between AIR and WPF for internal application development and in all honesty, I’d like to have them both. Here are my short list of gripes (or on a more positive note, my wishlist for AIR and WPF)

Missing in AIR

  • Advanced socket manipulation functionality (ability to create UDP sockets, NIO etc)
  • Talk to any RDBMS
  • Multi-threading
  • Decent server socket libraries for building server applications (yes I know AIR is a desktop client platform, but given the Web 2.0 world, the line between a client and a server is beginning to blur considerably)
  • Accessing global keyboard shortcuts
  • Accessing native libraries (the kind that I get with XPCOM on XUL)
  • Ability to instantiate external applications
  • Greater control on the installer and installation process

Missing in WPF

  • Write once, run anywhere ie the ability to run on Mac/Linux (I have already confessed that this is a wish list)
  • A full-fledged HTML rendering engine (as opposed to having to instantiate an IE control with limited flexibility)

Hopefully folks at Msft and Adobe are listening

Category : 0-cosmos | TechTalk