I’ve been experimenting with Flex 2, Adobe’s Rich Internet Application library built on Flash 9 over the last few months and am impressed. For a very long time Flash was developer unfriendly. That has changed. Flex Builder is a respectable IDE, and Actionscript 3 is based on JavaScript 2 which feels very similar to developing in Java/C#. It’s even nicer in some ways. You can use dynamic typing for prototyping and then switch to static typing when you want compile-time checking. Adobe has also released the Flex SDK, so you can also develop Flex applications for free.

For me, the big technical downside to Flash based applications is that like a Java Applet your application is wrapped in a binary object that is embedded into the web page. That means that search engines can’t easily index it, and as a user you run into weird issues where keys that normally work in web pages don’t work when you’re using a Flex application. The whole experience is somewhat like viewing a PDF on a web page—it works okay but feels slightly off.

Silverlight, Microsoft’s competitor to Flash, is more web browser friendly. It uses XAML, an XML-based format, for describing the user interface and leverages the browser’s JavaScript engine for programming. Instead of binary embedding, it’s all text, which means you can write Silverlight applications in any text editor or even generate them dynamically, and have the resulting page indexed more easily by search engines. From a technical standpoint Silverlight is currently inferior to Flex, especially after dropping CLR support for 1.0, but overall I really like the vision of Silverlight.

Rich Internet Applications are the future, and the battle is on for the platform they will be built with. If the history of cooperation between web browser vendors is any indication, Ajax is unlikely to evolve quickly enough to stay competitive with Silverlight and Flex. Unfortunately for Microsoft, the use of Flash by sites like Youtube and MySpace means that 84.3% of browsers already have a runtime installed that supports Flex 2. If I had to make a bet right now, my money would definitely go on Flex.

Ashish Shetty, a Program Manager at Microsoft recently asked for candid impressions of Silverlight. What I’d like more than anything else from Silverlight is for it to become a non-proprietary alternative to Flash. Microsoft has a real opportunity here:

  • Release the Silverlight specification as a open patent-free standard
  • Release a Silverlight implementation (minus the multimedia codecs) under the Microsoft Permissive License.

This would be a radical departure for the company and I don’t see it happening. But opening Silverlight would likely fulfill Bill Gates’ vision of seeing Silverlight technology ‘absolutely everywhere’.