Hawkeye on Silverlight

While I was crusing the zoo with the family on Monday, everyone else was focused on the big announcement coming out of MIX. Short version of the press release: the next version of Silverlight contains a small, cross platform CLR. As you might imagine, this is somewhat significant. Check out reaction from TechCrunch, Sam Gentile and Scott Hanselman.

A year ago, I wrote “Where else should the CLR live?” At the time, I was talking about XNA (which had just been announced) though I was aware of the plans around what I think is now officially called CoreCLR (got the name from Scott’s post). The first time I heard about this, it literally floored me. Part of me is surprised that in the year since then the news didn’t leak and no one figured it out. I mean, doesn’t it seem sorta obvious, in retrospect, that a Silverlight should run on CLR? I mean, if we can shrink the CLR down to fit on a watch, getting it into the browser seems like a no-brainer. On the other hand, it’s such a huge departure from “Windows, Windows, Windows” that I wonder if most people had (have?) a hard time wrapping their mind around it.

(Actually, in searching for CoreCLR, I discovered this post from last summer basically confirming “the CoreCLR team working on the Macintosh version of the MiniCLR that’s going into WPF/E”. So it did leak, but it seems to have been met with significant skepticism and didn’t make much news. )

Now that you know all about Silverlight and CoreCLR, go back and re-read my Virtuous Cycle of Virtual Platforms post. Especially the last paragraph (complete with the bad grammar):

If the end user isn’t committed to a virtual platform like Flash, then who is? The developers who build software for that virtual platform. This is Virtuous Cycle of Virtual Platforms between the platform and developers instead of the platform and users. In the old model, developers go where the users are. In the new model, users go to where developers are. And developers go where they can be most effective.

Silverlight vs Flash looks to me like the next big platform war competition. It’s just getting started, so you can’t say with any certainty which platform will be “most effective”. But early Silverlight reviews are pretty impressive. TechCrunch’s Michael Arrington wrote that Silverlight “makes Flash/Flex look like an absolute toy”. That doesn’t erase Flash Player’s head start in the RIA space, but it certainly makes catching and surpassing Flash sound feasible. I suspect most people didn’t think that sounded at all feasible last week.

Of course, while catching Flash may sound feasible, Microsoft is a long way from achieving that goal. While the point of my earlier post is that that market penetration doesn’t provide much advantage in the virtual platform market, Adobe does derive significant advantage from shipping nine versions of Flash while we haven’t quite shipped the first version of Silverlight yet. Also, while I’m fairly sure the number of .NET developers far exceeds the number of Flash developers (anyone have hard numbers?), I would also expect that the number designers using Flash far exceeds the number of designers using Expression (given that MSFT only just shipped Expression on this week). I believe an important facet to the Silverlight / Flash platform competition will be a race to woo the competitor’s core constituency. Can Microsoft woo more designers with Expression than Adobe can woo developers with Flex? We’ll see.

I’m also curious to see how people’s perspective of Adobe’s Apollo project changes in the wake of the Silverlight/CoreCLR announcement. From my perspective, both Microsoft and Adobe are trying to unify web and desktop development. Not surprisingly, each is trying to unify around the model where they’re stronger: Apollo takes the web development paradigm (Flash, HTML, AJAX and JavaScript) to the desktop while Silverlight takes desktop development paradigm (WPF, CLR) to the web. I’m sure you can guess which paradigm I think will be more successful, but how will the market react? Again, we’ll see.