WTF you got against Silverlight?!

Nothing.

Friend of mine, and Silverlight MVP, asks me why I’ve become The Anti-Silverlight. I’m actually not on a crusade to bash Silverlight. My “issue” per se is not so much the technology but how it’s being sold.

Despite the recent outburst of Global amnesia, some of us recall how Silverlight, which originated from WPF/E, a subset of WPF, was about bringing rich user interfaces to the web. It was about, and I quote “lighting up the web”. Rich User Interface? Silverlight. Vivid user experiences? Silverlight. Video? Silverlight. And might I add, there was a lot of emphasis placed on video…

Of course, fast-forward to today, and things haven’t gone so much according to plan. And with recent changes, it looks less promising.

Now, some of us that have been doing web development for some time, and have suffered the pains of cross-browser compatibility, JavaScript (the copy/paste snippet joke language), CSS (the “crap, I moved a DIV and all hell’s broken loose” language), have also seen the advances in these fields. Not to sound repetitive, but jQuery for example has not not only made JavaScript fun, but opened our eyes in seeing how powerful this so called “joke” language actually is. CSS has become easy. I actually really dug into CSS after learning jQuery and realized how stupid I was to ignore it for so long.

Frameworks such as ASP.NET MVC (for context, I’m sticking to .NET), MonoRail and others are proving that the whole abstraction that WebForms provided didn’t work that well, and have made web development in .NET more productive, maintainable, testable, and consequently fun. 

There are many web sites now being developed using nothing more than HTML4, JavaScript and CSS and being done so very productively, and providing a very rich user experience. We have applications that work “offline”. We have applications that are keyboard centric. Cross-platform? If by platform we mean not only browsers but operating systems, yep, we have that too! Easy deployment? Yes sir! That one is actually inherent to the whole “web thingy”.

So we’ve managed to successfully create Consumer and Line of Business Applications. And now, with HTML5 coming, we’re also going to get video and more!

Yet despite all this, recent posts about what Silverlight is most suited for, are selling these same points as benefits of Silverlight, as if somehow implying that none of this can be accomplished with existing technology.

Some say “Sure, I can also program in Assembly and not use C#”, to which I reply "Open your eyes". Using HTML, jQuery and CSS is by no means less productive or harder to do than learning XAML, MVVM and asynchronous programming.

Now, having said that, if you prefer Silverlight, whether or not you’ve even tried alternatives, that’s great. I have absolutely no issue with people choosing to use Silverlight or any other technology for that matter. What I don’t agree with however is promoting technologies in the wrong way.

Of course, some now say that Silverlight was never about taking over the web, or lighting it up for that matter. It has always been about Windows Phone and Desktop applications. Wait?! Wasn’t this a subset of WPF?

13 thoughts on “WTF you got against Silverlight?!

  1. Dave Lane

    As a web developer who doesn’t run MS Windows on any machines (just a VM with Win XP for testing web apps in IE6-9 – it is far and away my most detested task in my job), why would I ever even consider using Silverlight? Many Devs I know use either Linux or MacOS for web app development. Very few serious developers I know in NZ use Windows as a development platform. Microsoft has completely lost that entire (growing) developer market segment.

    I inherently distrust Microsoft – they too routinely screw their developers by shifting/abandoning technologies out from under them, particularly in the area of cross-platform support. I’d never ever choose Silverlight (or .Net) because it’s totally tied to MS, and is covered by patents they’d use to screw anyone not toeing the MS line if their beancounters decided it would lead to better returns to their shareholders. Given my lack of trust for them, of course their OSP holds no cred whatsoever.

    From my perspective, it’s HTML5, jQuery, Canvas, and SVG that are the growing platform. Windows Phone 7 will be stillborn because few developers will see a value in learning Silverlight (quite likely having to shift to entirely different development environment to do so) just to develop for it. Microsoft is sagging badly, developers are leaving its technologies in droves, and a mono-platform Silverlight just isn’t compelling.

    Reply
  2. Laurent Bugnion

    Yes it was a subset of WPF, and still is. Silverlight was meant from the start to be a cross-platform compatible version of WPF. Keyword here is "cross platform", not "web browser". The fact that it started on the web is just a step in the way. In fact it was clever, since doing so allowed the Silverlight runtime to be installed on about 60% of connected devices in a short time, where we can now leverage it for out-of-browser applications. Why should that be a contradiction to "WPF everywhere"? Applications do run in many more places than web browsers. In fact, the evolution is rather to get out of the browser. I have to think hard to find the last application I developed that didn’t connect to the internet in one way or the other.

    Silverlight applications now run on phones, kiosks, top sets, PCs and Macs (in or out of the browser, the later case becoming more and more important for firms like us) and more will come. We will continue to use Silverlight to enrich web pages with features that are not possible otherwise, but this is not the main use case for Silverlight anymore. Of course, it will take time for "standard" HTML5 to reach a penetration sufficient for firms to risk moving their assets to this technology, and in the mean time, Silverlight will continue to be a valid alternative.

    As for those who think that Silverlight was ever a threat to HTML/CSS/JS, they just need to get over it. That was never the case, and this use case is fading as we speak.

    Laurent (Silverlight MVP)

    Reply
  3. Phil Leggetter

    Having been developing for around 10 years with the majority of that time spend writing complex JavaScript I feel that I can justify my opinion that I still think that Visual Studio + .NET provides one of the best development experiences you can get. And, for me, this still makes Silverlight potentially more productive than HTML/CSS/JavaScript. The main problem is developing JavaScript can still be tricky and you can spend a lot of time running your code in Firefox and using Firebug to determine where that error occurred. Jumping between your IDE and the browser takes time and developing in Silverlight with Visual Studios integrated and, I’m going to stick my neck out here, superior debugging things are a lot more productive.

    I’m still waiting for somebody to develop that killer JavaScript-focused IDE.

    Reply
  4. JM Alarcón

    Hi everyone:

    The main issue with Silverlight, as a starter, is that it is not truly cross-platform (CP).

    Sure, it is CP by design, and we have this great Linux implementation called Moonlight, but as long as Microsoft don’t really acknowledge that Linux exists and supports Silverlight there, it’s not going to be the hype it should have been. If it should have been really CP from the very beginning, things probably would have been different.

    And if the focus is really about CP development: why not "simply" make the .NET Framework multi-platform? Mono does a good job but it’s not supported by Microsoft, and is a pitty because Microsoft in fact already develop all the nitty-gritty details of the platform under FreeBSD (the famous "Rotor" implementation).

    So everything Microsoft does seems more an Ostrich-like sales strategy to dig the head in the sand and not to acknowledge the existence of other OS and browsers, than a real-world, objective, way to conquer the app-development market. Microsoft is really concerned about the Windows and Office market share, and not about developers or development tools (except in Windows).

    Java’s "write once run everywhere" (unfortunately often translated into reality as "write once, pray everywhere") is an interesting thing to have in .NET, and if Microsoft do that sometime soon they would probably swamp the market. But if they take their time as with Windows Phone, they are proably going to fail.

    Maybe Silverlight is a good beginning for that…

    Cheers!

    Reply
  5. Ian Smith

    I think the thrust of this is correct, although there’s perhaps a certain amount of "rewriting of history" going on, as always happens where those who’ve spent significant time and effort with one technology feel threatened by another.

    As I heard it at the time when "WPF/Everywhere" was "announced" at PDC it was one guy in Redmond still trying to make his mind up about what it should be, so to imply this was what hooked people initially is a little disingenious. Silverlight WHEN ANNOUNCED with its proper name hooked those who wanted to do superior video to what Flash offered. And it required JavaScript to be used.

    Then, as pointed out, the message became "light up the web" and developers (like me) who just didn’t like JavaScript but loved .NET got interested in being able to write client-side code with familiar tools and languages). "Use it for real line of business apps" was certainly part of the marketing push for Silverlight 2 (remember that famous NHS demo?). Most developers saw beyond the marketing and quickly found the quality of what was there (poor controls, no printing etc) and decided they’d wait until the technology had become somewhat more mature. Sadly for Microsoft they’ve waited a longer time than anyone really expected and now HTML 5 (or talk of it, exacerbated by the effect of the iPad and alternatives to Windows Phone 7) has become the new toy on the block.

    So yes, "Now ready for line-of-business apps" has been the headline item for each new release since, but was only a reality with Silverlight 4. Of course Microsoft made a big bold statement when Microsoft announced Silverlight 4 NOT at their web dev conference Mix as expected but at PDC where Ray Ozzie announced it was "Microsoft’s premier UI". That message appears to have been mostly ignored by developers but the message was there for those prepared to listen to it, Microsoft just screwed up on repeating it loudly and long enough. The fact that it got undermined somewhat at MIX10 with the keynote emphasis on IE9 and HTML5 is just another example of a "fumbled ball" where Microsoft and Silverlight are concerned.

    Developers can argue forever about whether Silverlight makes you more productive. It certainly makes ME more productive than HTML/CSS/JavaScript but that’s after 18 months of being a lot LESS productive. The ideat that it was going to immediately make developers far more productive thatn "toy" JavaScript or "spaghetti-code encouraging" ActionScript was always Microsoft "spin" but we should be used to that by now.

    Alas, Microsoft failed to deliver on their "line of business" vision quickly enough, and most of the time didn’t seem to really believe it itself, whether through endless sites promoting Silverlight that still used Flash, its traditional silo development that just guaranteed pain for developer trying to work out the "right" or "best" way to do something, and completely mixed messages about how to do such basic stuff as navigation or a "simple" pattern like MVVM etc

    The mobile story is interesting. I heard a Microsoft employee "thinking out loud" recently that maybe Silverlight was the reason developers weren’t jumping on board WP7 development in bigger numbers, rather than being the reason they WOULD rush to it. The reason for that of course is the complexity of Silverlight you allure to. Every 6 months we get a new "getting started" initiative but the long-promised (18 months ago!) "Best practice guidance" to deal with the overly complex number of approaches is still missing (and PRISM v4 beta seems to be making the situation worse rather than addressing it).

    The Silverlight developer, especially the average "web" developer needs to understand not just MVVM (and then decide which of 20+ different framework approaches to it should be taken), but has to weigh up IoC vs MEF, really understand LINQ and, as you mention, asynchronous programming (although this is an issue for AJAX implementations too, so I’m curious as to why you single it out).

    Of course those who’ve invested a lot of the past 2-3 years in getting to grips with it are going to "hate" on those criticising it and proposing HTML 5 is the "better" solution, just as those who hate Microsoft will take joy at pointing out how fake the advertised take-up has been and exaggerating the ease with which different scenarios can be achieved with other technologies.

    It’s just yet another pillow fight, the irony being that just as Silverlight has started to really get its act together (we even have decent books rather than obsolete blog articles to teach us it now!) newer, far more "open" (hah!) shiny toys are showing up left, right and centre and stealing its thunder.

    Reply
  6. Jack

    Watch the Expression Blend demo from the New York launch.

    It’s on this site: http://www.microsoft.com/expression/in-action/

    You need to get to the right video (the keynote) and the right point in it (52 minutes – it has a marker clearly labelling it Blend).

    Watch that.

    Then could you put together a similar video where you build that kind of experience using HTML and JavaScript for today’s browsers (about 60+% of which are Internet Explorer).

    Jack.

    Reply
  7. Joe

    "JavaScript (the copy/paste snippet joke language),"

    Stopped reading right there. How about you fail to understand the power and flexibility of this object oriented dynamic language.

    What I see is the inability of some developers to learn the web platform and embrace it.

    Reply
    1. Estevez

      Joe: java is a nice object oriented, c# is a nice object oriented, javascript … is a gnome in this aspect.

      Reply
  8. Estevez

    Now, I’m doing my first development in SL. (3, and 4)
    Currently I feel silverlight is still in beta status.
    But I like it. I’m a little bit M$ fanatic.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s