Before I begin, let me say in the interest of full disclosure, that Microsoft paid for my trip to Mix.
In the keynote, and in many of the breakout sessions, Microsoft demonstrated both Silverlight 1.0 (currently in Beta, due out this summer) and Silverlight 1.1 (currently in alpha, no release date announced).
As I see it, Microsoft’s strategy seems to be to release a product that creates media for cross-platform delivery through a browser as their initial offering (the inevitable comparison was to Flash). If this were all they were doing it would be interesting (allowing .net developers to achieve this functionality without learning how to work with Flash) but certainly not revolutionary.
In 1.1 however they add much of the CLR, the ability to program to Silverlight in managed code (e.g., , C# 3 and VB9) and much of WPF (read forms, text, etc.). This is big news, and the demos shown were very impressive. The obvious comparison again is to Flex, putting ORCAS / Visual Studio in a position to compete with Apollo and that was the big buzz.
Microsoft was eager to show that they have a designer product as well (see http://www.microsoft.com/expression/products/overview.aspx?key=blend) but I won’t even touch the question of the relative maturity or capabilities of that product vs. what Adobe offers, and never underestimate the ability for the landscape to change in a year in any case.
All of this is Interesting, intriguing but not revolutionary. And, admittedly, that was all they said. Now, let us speculate together.
First, right now they have said nothing about Linux except that they have no objection to having Silverlight run on Linux. I’m reasonably willing to bet a nickel that the Linux announcement can’t be far off (let’s remember that the Mac runs Unix).
But more interestingly, If Microsoft can deliver much of the WPF on, for example, Firefox running on a Mac (and, by the way, debug that in VS running on Windows!) then what happens in version 1.2 or 2.0? Two obvious questions arise: (1)why limit delivery to computers and (2) how far towards the margins will Silverlight grow?
The first question is easy: there is every incentive to deliver Silverlight applications to smaller screens (phones, PDAs) and quite possibly to devices we don’t currently think of as receivers of think kind of information (household appliances, GPS systems, home alarms?) I have zero inside info on this and so am free to speculate, but it doesn’t seem like much of a stretch to imagine “Today the Mac, tomorrow, the world…”
The second question is intriguing as well. If they can keep the footprint of Silverlight small enough, the load speed wicked fast, and the “wow” factor as high as what was shown at Mix, why wouldn’t you build your entire web application in Silverlight? If so, and you can write managed compiled code, why would you use Ajax anymore?
If we want to speculate at the edge of defensible, we have to ask: once the pipe is wide enough, why would you build in ASP.NET anymore?
Let’s look at the other side; if you can get the benefit of an application that runs on any platform with little penalty in layout, design, performance, capability, interactivity, etc., why would you build in a platform-specific and constrained library like WPF?
Thus, one can imagine a time, in oh, say, 3 years (??) when we’re writing once, using a combination of declarative and imperative programming with entirely managed code and very rich widgets, for delivery on every conceivable consumer product: any browser, any OS, any size device. Very nice, and perhaps, truly revolutionary.