Making a business case for Silverlight
I've been thinking a lot about Silverlight lately, for a lot of reasons. What really put me to task was my boss asking me what its impact is and if he should care about it. That certainly changed my approach and purpose for thinking about it.
As one typically does, I started by Googling around for opinions and analyst comments. There really aren't a lot of great objective opinions out there. There's a whole lot of "Flash roX0rz, Silverlight and M$ suX0rz" nonsense, written largely by Flash developers. That's not helpful, but it got me thinking a lot about Flash. I've spent a lot of time with Flash lately, experimenting with some stuff and getting to know it a little better. As an animation tool, it has a certain level of familiarity for me because I was using Adobe AfterEffects way back in 1999 to animate video. I remember the first time I saw the Flash tools, thinking that Macromedia totally ripped off Adobe (ironic since they've since bought them). What has been less obvious in my experimentation is how they arrived at the programming model. That's where I get hung up the most.
But I think that's the point at which I started to wonder if it was entirely appropriate to consider Flash and Silverlight competitors. Yes, they're both displayed via browser plug-ins, but Silverlight is an opposite in many ways to Flash. It's a UI/software platform that happens to do animation. When you define it this way, you describe it as a solution to different problems. At that point it doesn't seem like a versus debate anymore. And if you cut out the versus part, and therefore the platform religion, I think you get a clearer picture to consider.
That picture has a lot of clear pro's and con's. On the upside:
- You can build rich UI with minimal pain to solve complex UI problems. The easy control nesting and rendering tweaks make this so silly easy.
- Your .NET developers can start using it right now. They mostly get the programming paradigm today, with some exceptions that books and tutorials will address.
- You can code in Visual Studio, which by most accounts is the world's best IDE. Not saying everyone agrees, but my cross-platform friends feel strongly that it's true.
- The player is a pretty easy download.
- Even though it's still beta, the NBC Olympics site was a pretty good case study in how well it works.
- The code isn't a time line thing, so it's not so weird to traditional OO code monkeys.
That said, there are also some valid concerns:
- Penetration is a mystery. Sure the Olympics helped, and we can only assume that once it ships it'll get pushed out by way of Windows Update, but having to download a plugin sucks. If this site is accurate, that's not a bad start for beta software.
- Adobe AIR/Flex folks are even more nuts than people making PC/MAC flamewars. Like it or not, that influences people.
- The primary design tool is Windows-only, and I'm not sure if designers would even like the tool. If Expression Blend is built on WPF, one can only wonder that if Silverlight, a subset of WPF, can run on a Mac, how hard would it be to get ALL off WPF running on a Mac? Yeah, I'm talking .NET on a Mac.
- It hasn't shipped yet. (Well, v1 did ages ago, but I think we can agree the "real" release is v2.)
From the developer angle, it's hard to argue against it. From the designer angle, it's a toss up leaning slightly against it for Mac shops (especially those who haven't upgraded to Intel machines). From a business angle, you've got the idea that you can leverage existing talent to build stuff and pit it against end user adoption. At the end of the day, it seems that the best you can do is wait and see for some point after v2 goes RTM.
Of course, if you're a developer, you probably already can think of a great many things to do with it today, and I think it's important to get out there and try that stuff. Deep zoom is a killer feature, and we could only make it more interesting by finding more novel ways to use it. But there I go making it religious again!