I've been cruising around trying to understand Microsoft's Silverlight platform, after a post on Slashdot regarding ARAX (Asynchronous Ruby and XML) and the possibility (or is it probability) that developers will be able to natively use Ruby on the desktop rather than translating their Ruby code into JavaScript. After ending up at the developer documentation I finally "get" it.

From "Getting Started with Silverlight"

XAML is a declarative markup language that you can use to define the UI elements for your Silverlight-based application. When you create a new Visual Studio project, a Page.xaml file is created automatically. In the XAML file, you can create objects and define their properties using XML tags and attributes. For more on XAML, see XAML Overview (Silverlight 2).

So the Silverlight platform is a browser plug-in designed to support all major browsers (I installed in Firefox 2 with no problems whatsoever) that is interoperable with any Web server and uses XAML as its primary method of UI design. And apparently just as you can use ActionScript as a scripting method within Adobe's Flash for client-side application logic, you might be able to use Ruby to do the same within Silverlight.

While I "get" it, it isn't clear whether this attempt by Microsoft to go "cross-browser cross-platform" is going to work. Standards being what they are, it is increasingly difficult to enter an established market with new developer technology. Adobe's Flash was so successful because it was the first and, at the time, only RIA technology available. AJAX (Asynchronous Javascript and XML) has  been wildly successful because, like Flash, it was the only way to do what it did at the time it was introduced.

Subsequent technologies, toolkits, and libraries have all been based on that technology, enhancing it by building on it - not replacing it.

Now here comes Microsoft with a what appears to be a "fresh" idea, but is really just a Microsoft twist on already established technology. To be fair, Microsoft was working on XAML and the concept of RIAs more than three years ago, before AJAX became wildly popular. But the delayed release and subsequently poor reception of Vista put Microsoft behind the game in terms of this kind of technology. So rather than leading the market, Microsoft was now following it - and attempting to inject Microsoft-specific technology into an already moving market.

By courting Ruby developers, Microsoft may be able to turn what is definitely non-standard browser technology into a market leading move. Ruby certainly has momentum in the developer community, and many see JavaScript as too limiting for development of really eye-catching, flashy RIAs (Rich Interactive Applications).

The fact that Ruby and XAML aren't standards could be seen as a negative. And yet because they would both run within a plug-in - like Adobe's Flash - Microsoft may very well be able to pull this off. Being a plug-in and using non-standard technology hasn't hurt Adobe, after all. As long as Microsoft faithfully adheres to its cross-browser cross-platform support - something we know has been difficult for the software giant in the past and Adobe has managed to do - it could garner a significant chunk of mindshare in the developer community because it offers a choice without sacrificing compatibility and interoperability.

Developers are akin to religious zealots (at least I am and so are most developers I know) when it comes to languages, and those who prefer Ruby over JavaScript are likely no exception. If Microsoft can harness the power of preference, Silverlight may indeed become a challenger to Adobe's RIA empire.

Imbibing: Coffee