Saturday, September 29, 2007

No Silverlight for You

I attended an MSDN talk this week on Silverlight. It was given by Microsoft evangelist Anand Iyer. If you've been to any Microsoft developer centric events in the Bay Area, chances are that you've got to listen to Anand. He's an excellent speaker and this week's talks were no different. One of the things that makes his talks so good is the honesty. There's no BS, marketing spin.

My chief interest in Silverlight is as an "RIA" technology. I put RIA in quotes because there are different interpretations of that acronym. I was used to a definition similar to the one in Wikipedia: Rich Internet Application. The key in this definition is bringing a desktop-like experience to web applications.

Microsoft's definition is different. They call RIAs: Rich Interactive Applications. To them it is not about web applications with a desktop-like experience. It's about media. This may seem like a minor point, but actually it's the only point worth mentioning to me. It was the most important thing I took away from Anand's speech: Microsoft is only interested in rich media when it comes to Silverlight.

This seemed contradictory to me. After all, they've made a big deal about bringing the CLR to Silverlight 1.1. But Anand was crystal clear on this. If you want to build web applications, then you should be using ASP.NET and all of its great AJAX goodness. You can use Silverlight, but it's going to be very difficult as this is not the focus of Silverlight.

Indeed this message is consistent with the use of Silverlight. You can create a Silverlight application in Visual Studio 8, but you're going to be editing XAML, i.e. XML. Essentially you're creating low-level vector graphics commands wrapped in XML. One of the other attendees at the MSDN talk asked Anand if there is any kind of nice designer that was going to be built in to Visual Studio to make this easier and the answer was "Yes there will be a design view, but it is awful. You need to use Expression Blend."

And there it is. If you want to do Silverlight work, you need Blend. This is a tool made for designers and is not even available to MSDN subscribers. This tool is not meant for developers, and thus Silverlight is not meant for developers.

It's only meant for designers. It's only meant for creating animations or embedding video, etc. That's all Microsoft is going for. Imagine if Adobe got rid of Flex and said "you have to use Flash CS3." That's Microsoft's position.

Again with CLR support built into Silverlight, you might think that it's just a matter of time before it becomes a developer platform. But from what Anand had to say, it's going to be a long itme. There's not going to be developer support in Silverlight 1.1 and Visual Studio 8. VS8 won't be shipping until February and Silverlight 1.1 won't be shipping until next summer. Given that, I would have to guess that it will be at least two years before Silverlight becomes something that can be used by developers. That's truly disappointing.

2 comments:

Anand Iyer said...

Hey Michael,

First, thanks for the nice words.

> Microsoft is only interested in rich media when it comes to Silverlight.

Rich media is a huge focus for us right now, with Silverlight 1.0. The reason being that Silverlight uses (VC-1) to deliver rich media, is unparalleled in its capabilities. As you mention, with the introduction of the CLR, we are definitely adding more capabilities, and this means developers can take advantage of the platform to do more in the browser. Given the constraints of time in my talk, it is just immensely hard to cover all of the "why", the "now" and the "future". As an evangelist (and I'm sure you'll appreciate this), we try to focus a lot on current technologies, which is very important to us and the community. So, long story short, media is a huge focus for us because that sets our platform apart. However, with the CLR in 1.1, we take what you can do with SL to a whole new level.

> You can use Silverlight, but it's going to be very difficult as this is not the focus of Silverlight.

This is also not entirely true. The reason its is going to be difficult to do any classic web dev with Silverlight at the moment, is because of the lack of controls. However, there are sample toolkits out there for these controls. And with 1.1, we will be releasing these controls on a more periodic basis. You can also develop ASP.NET Ajax controls with Silverlight and leverage those. It doesn't necessarily have to be one or the other.

I'd also try to break this down by scenario - what exactly are you trying to accomplish, right? What are you trying to develop. Answering that question can help me answer yours about which platform to pick.

> This is a tool made for designers and is not even available to MSDN subscribers. This tool is not meant for developers, and thus Silverlight is not meant for developers.

Sorry if I wasn't clear about this - but this is not correct. I may have not stated this correctly, and there may have been some miscommunication. Expression Blend *IS* available for MSDN subscribers. Please see ScottGu's post : http://weblogs.asp.net/scottgu/archive/2007/04/03/expression-added-to-msdn.aspx and Soma's post : http://blogs.msdn.com/somasegar/archive/2007/04/03/listening-to-your-feedback-expression-and-msdn.aspx

> There's not going to be developer support in Silverlight 1.1 and Visual Studio 8.

That is not correct. Silverlight 1.1 includes the CLR in the browser - to develop these rich applications, you could use a CLR-based language for your XAMl code behind. To support that, you'd use Orcas/Visual Studio 2008. I'm not sure what you mean by there will be no dev support for VS8, however?

Developers are one of the main reasons we decided to invest in the rich interactive app space. Our developers have been wanting the ability to exercise their existing skills and know-how to create richer web experiences. We continue to invest heavily in Visual Studio. But by no means is Silvelright *not* meant ot be a developer tool. I'm not sure if you got to stick around till after the event where I demo'd a Silverlight 1.1 media app that had plenty of C# code behind. You can find the tarball here ; http://msdnevents.com/resources/2007-summer-resources.aspx

Thanks again for the nice words, and I hope I clarified any questions or concerns that you had. Silverlight is a phenomenal platform. I felt like I may have left you with the wrong opinions (mostly my fault), and I wanted to correct those. I hope I've answered your questions and/or concerns. Please feel free to email or call me if you have any further questions.

ai

Michael said...

Thanks for dropping by Anand and for some great retorts. When I say that there is no "developer support" in Silverlight, I mean the kind of support that most developers have come to expect from Microsoft tools. That means controls build in to the tool, with a visual designer. Just compare what it would be like to develop an RIA using ASP.NET vs. Silverlight. And again, by RIA I mean the rest of the world's definition, not Microsoft's.

I am curious as to what you mean by "develop ASP.NET Ajax controls with Silverlight and leverage those" ... I really have no idea what this is supposed to mean.

As for me, I'm not trying to develop anything in particular. I was at the talk on "official" business, i.e. representing my employer, eBay. It would seem like it's possible to build things like you see at http://flex.org/showcase/ using Silverlight. Right now I would have to say it would be pretty painful to do that.