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.

Writing code in the context of a temporal structure (the time line) is weird and unnatural. It feels like it was just glued into it because they couldn't think of anything better. It becomes even more frustrating because the predictive typing (can't call it Intellisense, really) isn't very good, and debugging isn't much fun either. Oh, and ActionScript is essentially JavaScript, which I'm sure causes pain for a lot of people. Then there's the issue that Adobe hasn't done a good job of selling Flex as a "real" IDE, and honestly I've never even seen it. Despite all of this, it's easy to appreciate the power that Flash has. For something that started as an animation tool and grew into UI/software platform, it's not terrible.

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!

8 Comments

  • Good post. Just one clarification...

    "...and we can only assume that once it ships it'll get pushed out by way of Windows Update"

    Not likely. It may become a Microsoft Update but not a Windows Update...at least according to a recent event I was at. After the browser wars, MS has to be really carefull what it pushes out through the Windows Update that could potentially compete with other technologies.

    MS needs to do exactly what was done to proliferate Flash--only faster.

  • I don't think it's *that* wild of a generalization. I see it all over the Web.

    Regarding Javascript, I just don't know very many people who like working with it. Debugging it is no fun and the lack of type safety drives people nuts. That's not to say that there aren't people who love it, I just don't think very many of them are .Net people.

    I understand the difference between Flash and Flex, but I don't think it matters as they both get you to the same place. I don't see how that changes my opinion or weakens my argument, especially since I'm not arguing against Flash in general. I just don't care for it or feel it's the best tool to solve certain problems. It's easy for me to say that since I make a living with .Net, just as it's easy for Flash people to say that Silverlight won't solve the problem they have.

  • Good Post.I just have a concern on playing silverlight on other platform.Like browsers on Linux and MAC.
    Silverlight is very new in market and will be matured as time passes and then we should compare the market share of it.

  • Current builds work fine on the Mac. That's what I used for my Olympic viewing. As for Linux users, I'm sure it would hurt their feelings, but I'm not concerned about a rounding error in my traffic stats. ;)

  • ActionScript 3.0 includes extensions to JavaScript including optional strong typing. Since you haven't used Flex, which is now in version 3.0, I wonder why you feel capable of comparing Flash and its development and design tools to Silverlight? You should also consider that the Flash player includes things that Silverlight does not. For example the ability to capture and stream audio and video, hardware accelerated video, 3D graphics, and limited peer-to-peer communications.

    If you're a .Net developer then you have a natural predisposition to Silverlight. Why pretend what you've written is based on anything else?

  • I'm not pretending anything, why are you so defensive? This isn't a case against Flash, as much as some observations about why I don't care for it as much.

    The strong typing in Flash is optional, and it doesn't do you a lot of good until runtime. Silverlight has things Flash doesn't as well, so it depends on what your needs are (if Flash has "limited peer-to-peer communications," Silverlight has the full sockets namespace available to it).

    Flex isn't part of the CS, so I haven't used it. That was one of my points... why would I?

  • Your replies to comments vs. your claims in the article are a joke. As much as you mention the Mac/PC fiasco being parallel to the flash/silverlight argument your replies only seem to show you as one who cannot see his own bias and ignorance towards the situation. You mention the features and lack there of as a reason why flash is bad, or why 'you just don't care for it' and then when people reply showing you why your views are flawed, you reply with a who cares attitude as if what they say had nothing to do with your arguments when they are actually directly attacking your logic/arguments.

    For example, you mention Flex as if its just an IDE and go on about how flash forces you code in the timeline. Then when someone replies pointing out your mistakes in that logic, you reply with why does it matter when they all 'get you to the same place'. Thats contradictory. Your arguments are not based on the flash player, swf files or plug-ins, its based on the development of flash. So the fact that both tools 'get you to the same place' has nothing to with your argument or his, they are about development. Your just being blind to your own ignorance/bias and are coming off as arrogant.

    And understand I am not a flash or silverlight developer and I have no bias towards either tool. I am a software developer. I just see your replies as arrogant and blind to your own bias furthering the situation of having a lack of 'great objective opinions out there'.


    You: "Silverlight roX0rz, Flash and Adobe suX0rz"

  • Another defensive post. Did I ever present any of this as anything other than my opinion, colored by own experience? I'm arrogant because I have an opinion? You've contributed nothing.

Comments have been disabled for this content.