Sunday, September 9, 2007

Silverlight - WTF/E?

I attended an excellent users group presentation[1] last week on the topic of Silverlight. I’ve been vaguely interested in Silverlight since I first saw it previewed at the Mix06 conference in Las Vegas last March, but honestly haven’t devoted many cycles to tracking (or learning) it in the months since then. Since I’ve been looking into WPF lately as a data visualization tool[5] I thought I should see more about what “the presentation tier technology formerly known as WPF/E” had to offer.

Andy Beaulieu delivered a great presentation, which included demonstrations and code samples of some very cool games[6] he’s developed using the Silverlight 1.1 alpha bits and a decent overview of the platform in general, with as much detail as you’d expect to get out of a 90-minute session. I came away from the session with a few impressions/thoughts/questions in mind:

  • What’s with the name? Usually Microsoft has the habit of having the coolest code names during product development, like Avalon or Indigo, and then replacing them with lame and boring product names closer to RTM, like WPF and WCF. But with Silverlight, Microsoft took the opposite tack – they called it WPF/E[7] for the first year or so and then replaced the world’s lamest code name with something relatively cool – Silverlight. Who would have thought they had it in them?
  • Silverlight 1.0 is pretty much worthless. Who wants to write and debug JavaScript code? Masochists, that’s who.
  • Silverlight 1.1 looks much more promising, since you can use real managed .NET languages to write your code, and not be restricted to JavaScript in the browser.
  • That last bullet says a ton – Microsoft is positioning Silverlight as a broad reach, cross-platform “Flash Killer”[8] that will run on MacOS, Lunix and Unix in Firefox and Safari as well as on Windows in Internet Explorer. That on its own is damned interesting from a company that isn’t always known for playing will with others, but that’s more of a “Microsoft watching industry analyst” sort of interesting. The thing that gets my blood pumping about Silverlight 1.1 is that it relies on Microsoft (working alone or with 3rd parties like the Mono Project people) porting the .NET CLR to non-Windows platforms. Holy crap! This has been one of those things that has been an interesting possibility since the CLR came into being, since the CLR itself serves as something of an uber abstraction layer, but no one really expected it to happen.[9] Since Silverlight 1.1 is still in Alpha it’s not yet clear how this will play out in the end, but let’s just say it has my attention now.
  • Even Silverlight 1.1 is just for play, not for building “real” applications. Why do I say this? Instead of replying in my own words, let me provide a quote from Adam Nathan, senior developer type guy from Microsoft. This quote is the first sentence from Chapter Four in his excellent book Windows Presentation Foundation Unleashed[10]: “No modern presentation framework would be complete without a standard set of controls that enables you to quickly assemble traditional user interfaces.” Note to the Silverlight team: Go talk to Adam. Silverlight lacks the basic controls that will be essential for building even the simplest business application, and based on the information I’ve seen even things as ubiquitous as a data grid are being presented as “partner opportunities” and not included in the core product from Microsoft.
  • Despite this, I can still see building “islands” of Silverlight content to be included in “traditional” ASP.NET web applications, so perhaps my “just for play” comment above isn’t completely fair. Still, the thought of having to mix-and-match more and more technologies to build an application seems like a step backward. Hopefully the Silverlight team will produce some best practice documentation even if they don’t produce a complete control set.

So I guess I’ll be keeping my eye on Silverlight as 1.1 gets closer and closer to RTM. As with WPF, I don’t know if I’ll ever write any production Silverlight code (or even if I’d ever want to) but it’s caught my interest if nothing else…

[1] Although Syracuse is a pretty small town, we have an excellent INTEA-affiliated users group which focuses on .NET development topics.[2] The CNY Developers users group is run by a local developer and MCT named Andy Beaulieu, and it was he who delivered this Silverlight session.
[2] Although I have been making an effort to introduce more SQL Server and BI topics with my presentation a few months back on SQL Server 2005 CLR integration and my upcoming presentation on SQL Server Integration Services.[3]
[3] Is it kosher to have a footnote within a footnote? Would that make it a meta-footnote?[4]
[4] I think this has to be ok, because I never meta-footnote I didn’t like…
[5] Not to give the impression that I’ve been spending a great deal of time with “real” EPF either, because I haven’t.
[6] One of them is a scrolling space shooter that uses the Microsoft Virtual Earth web service API to provide the background. You can enter lat/long coordinates or a street address when you begin, and battle invading aliens in the sky above your house, your school, your workplace, or as we saw last week, over the Syracuse New Horizons training center where the users group meets every month. I wish I could provide links to the games where Andy has them posted on his home page, but I’m typing this post at 35,000 feet en route to Atlanta, and I know that when I arrive in Seattle tonight at midnight I’m not going to have the energy to do much more than drive to my hotel and crash, so those links will have to wait for another day.
[7] Windows Presentation Foundation/Except for the stuff you really want.
[8] Although I’ll personally believe this when I see it – People said the same things about the Zune, that it would be an IPod killer, but all I hear from the Zune team these days is silence, instead of the steady stream of PR that I would be hearing if Microsoft really cared about owning the portable media player market. BTW, did you notice that I spelled it “Xune” in my last post? I haven’t heard anything about it in so long I didn’t even get the name right… For what it’s worth, I do think that Silverlight has a lot of promise, but Flash is entrenched and mature and such, and Silverlight has a lot of catching up to do.
[9] Kind of like it’s always been theoretically possible for developers to get dates, but it never really happens when you’re awake. ;-)
[10] This is one of the best technical books I’ve read in many months. Adam’s approach to presenting the capabilities of WPF is exactly what I would have asked for if he’d asked me: he introduces new concepts up front, then build on those concepts throughout the book, showing the reader what is new, what is interesting and how what they already know can be applied to the new tools and technologies, without wasting time explaining things that an experienced .NET developer would already know. Great work, Adam! [11]
[11] He also makes use of sidebars for out-of-band discussions and drill-downs almost as liberally as I make use of footnotes, which fits with my style of reading as well as it fits with my style of writing. Especially since he pulls it off better than I do…

2 comments:

CFRandall said...

Your use of footnotes has jumped the shark [1].

Stop it.

[1] See http://www.jumpedtheshark.com/index.jspa

Matthew Roche said...

Jump this.