Keep Your Eyes On The Road

35 commentsWritten on September 18th, 2010 by
Categories: Opinions

There's been a lot of talk recently in the blogosphere and the twitterverse about the future relevance of Silverlight. Many people are questioning or debating whether or not it's a 'dead' technology considering how important HTML5 is going to become in the next couple of years. I don't think it's going to be 'dead' anytime soon, but i do think there are some very important factors you need to keep in mind before committing to develop new products in Silverlight.

I'd like to make it very clear that i'm not anti-Silverlight. A year ago i wrote a post called "5 Reasons Why Silverlight Is My Preferred Web Development Platform", which i hope will prevent the Silverlight fanbois from labeling me as an uninformed Silverlight basher. I've also never been a HTML/CSS/Javascript enthusiast so the things that i will say below aren't based on any preference for a certain technology or language. If anything, my current opinion on building Silverlight vs HTML apps is strictly based on observations of what's been going on on the web in the past couple of years, and how i've seen the software development community change gradually over the past few years.

One of the most important factors in your decision to use Silverlight or HTML/CSS/JavaScript for new products is the long-term strategic importance of the product. If the product you're going to build is not going to define the future of your company, your organization or your endeavor, then there's nothing wrong with going for Silverlight. There are a lot of benefits that come with choosing Silverlight and as long as none of the downsides are a problem for your situation, then it might very well make a lot of sense for you to build your product with Silverlight.

If however, your product is supposed to become the basis of your long-term success, then the choice of Silverlight over HTML/CSS/JavaScript is short-sighted and ultimately flawed for a number of reasons. The first of which is that Silverlight is a proprietary technology in the worst possible way. Its future will be determined by a single company who naturally hold their own best interest at heart, and not yours. As long as it makes sense for them to keep improving Silverlight, they will and you can benefit from that. As soon as it no longer makes sense for them, the technology will become increasingly irrelevant. Obviously, that is a risk that you face with any kind of technology. Sticking with open standards and open source software might very well result in the same outcome but there is one tremendously important difference here: with Silverlight, you have no migration path.

With Silverlight, your product runs in a browser plug in. It doesn't look like a normal website nor does it behave like one. You are forever tied to Silverlight in your client-side code. If you want to migrate to other technologies, which is not as uncommon or unlikely as you may think it is now, your only option on the client-side is to rewrite from scratch in a different technology. Depending on how much functionality your product offers, this might be a very large undertaking and it could take quite a while before you'll get any financial benefit of the large investment that this will no doubt require.

You might be thinking: well, i'm surely not expecting to migrate to other technologies, so your first point is moot to me. But consider this: over the past few years, we've seen an ever increasing popularity of a variety of open (as in: non-proprietary) technologies. I don't think anyone can reasonably argue that there's little or no truth to that statement. But i will make the following claim, which is something i'm sure many of you will disagree with: non-proprietary technologies tend to innovate and improve faster based on real-world requirements from developers who are using those technologies. Proprietary technology only improves and innovates when its proprietor has an incentive to do so. And what a proprietor considers to be an incentive to further improve a technology might not always correspond with what its real-world users truly need or are asking for. I hope i don't need to point out that Microsoft has a history of halting improvements/innovation in their products if they feel secure enough about a certain product's ability to generate recurring income.

By now i'm sure i've lost quite a few of you already. But i will go even further: a lot of developers are increasingly moving away from these proprietary technologies in favor of open technologies. Well, at least the developers that truly matter. They yearn for continuous improvement in not only their own skills but in the technologies that they choose to use as well. I obviously expect more and more developers to start looking at non-proprietary technologies for exactly that reason. I'm not saying that will happen this year, or next year or even the one after that. But i do think that there will be a strong shift towards non-proprietary technology about 5 years from now. And again, keep in mind that i said that it's important to consider all of this when your product is your basis for success in the long-term. And again, there is no migration path when you choose Silverlight and i don't expect that there ever will be one.

There are two more important things to keep in mind. How many success stories have you seen in the past couple of years that were based on proprietary technology outside of the enterprise systems space? There are only 2 that i can think of. The first is iPhone/iPad development. Objective-C might not be truly proprietary, though in practice it does turn out to be so. The operating system is also proprietary. Yet neither of these has prevented or had a noticeable effect on the success of iPhone/iPad development. The second example is YouTube which is (or at least was for a long time) dependent on the proprietary flash plug in. If you have other examples, please leave a comment to mention them because i'd really like to know. On the other hand, i think we can all name quite a few really successful sites and products that are based on non-proprietary technology, no? This is inherently related to what i mentioned earlier about developers that matter moving increasingly to non-proprietary technology.

And last but not least, you need to think in terms of 'devices'. The success of the iPad is a fantastic example of how important the 'device'-story of your product is, or at least will surely become. Websites built in Silverlight or Flash don't work on the iPad. Yet, the iPad is a hit. People love using it and are using it for a variety of things. Products that were based on HTML/CSS/JavaScript worked on the iPad without their creators even having to think about supporting a device like the iPad. They just work. And they work on smartphones as well. Gone are the days were the internet is solely used from computers and laptops. Mobile devices will become an increasingly important market and it would be unwise for anyone to base their long-term success on a technology that has such hard limits as to what kind of device the user must use in order to be able to use your product.

If you're going to build a product for the long term, you're undertaking a journey. And in any journey, it's important to keep your eyes on the road because you can never know for sure what will or what won't happen during that journey. You do not want to be forced to a sudden standstill because you weren't paying attention. Nor do you want your vehicle at some point in the future to prevent you from following the direction you need to follow.

  • Pingback: 5 Reasons Why Silverlight Is My Preferred Web Development Platform | The Inquisitive Coder – Davy Brion's Blog

  • http://JustinAngel.net justin angel

    You’re like the French revolutionist looking an a lynching mob saying “My people, tell me where are you going so I may lead you?”

    You talk about long-term investments in your individual career, but your arguments only hold up for yesterday. You haven’t bothered explored tomorrow.

    I’m sorry, but these arguments don’t hold up.
    Silverlight was a plugin 3 years ago, Silverlight was proprietary 3 years ago, Mobile devices were picking up speed 3 years ago, nothing in arguments is new. You act surprised about things we all knew years ago. And you’ll act surprised in a year from now for tech X, and 2 years from now for Tech Y, and 3 years from now for Tech Z.

    If you make life altering decisions based on what other people have told you think – you deserve what you’ll get.

    – Justin Angel
    (Harsh, but I’d prefer honesty as my policy on this one.)

  • http://davybrion.com Davy Brion

    @Justin

    If i visit your site on my iPhone, i’m asked to download and install Microsoft Silverlight. When i click that link, i get redirected to a Microsoft site which says that my current platform is not supported. Granted, the word plugin isn’t used on the page, but the fact of the matter is that i can’t access your site properly with the device that i’m currently using. Unfortunately, that currently makes your site useless to me. Even worse, this device is quite popular.

    Would you mind expanding on how Silverlight is no longer proprietary? Is there a way that i can influence Silverlight development without working for a Microsoft premium or platinum partner (or whatever the hell they call it) and _asking_ for changes (and then hoping that maybe, just maybe i will be listened to)? Can i submit patches for the endless list of memory leaks that me and my coworkers need to deal with on a continuous basis? Do i have a shot of actually getting those patches accepted?

    As to your comment about mobile devices picking up speed 3 years ago, that only highlights how sad the silverlight story on these devices is. They started picking up speed 3 years ago as you said, and the technology you are defending still doesn’t work on it!

    As for this being a life-altering decision… that’s ludicrous. I mean yeah, if you’re basing your career and your identity on one piece of technology as you appear to have done, then it is. That however is your problem and not mine. I didn’t make a choice like that because i think it’s a foolish one.

    Btw, i just tried your site on my desktop. It’s a mac, and i use Firefox as the browser. Your site took a long while to load, is quite unresponsive and i can’t scroll through your articles for some reason.

    Here’s a hint Justin: most other sites supported scrolling on a variety of platform 3 years ago. Yours’ still doesn’t

    It’s ironic that your very own site is the perfect embodiment of one of the points i tried to make. I thank you for that, since it sure as hell provided me with a good laugh.

    And since you appreciate honesty so much, i honestly would like to know:
    were you sober when you wrote that comment? they truly come across as ramblings of a drunk.

  • Hybridweb

    Justin Angel, that’s only one way to read the article. Of course it has to be historical in nature. Maybe the intended readers aren’t aware of these points.

    Another might be to consider these issues before proceeding. If you aren’t bothered by the issues, then proceed.

    Davy why do we consider Silverlight as only a web technology? Maybe, assuming it survives, it will be a great technology for delivering and running lightweight to mid weight apps on the desktop, alleviating the usual nightmares of installation and maintenance.

  • http://davybrion.com Davy Brion

    @Hybridweb

    i actually do think it could be useful in that context and mentioned that 18 months ago:
    http://davybrion.com/blog/2009/03/cross-platform-net-business-applications/

    so yeah, as a _desktop_ technology, i think it does have a lot of benefits but as a web technology, i just don’t think it’s a good choice in the long-term

  • Hybridweb

    Sorry, I should have looked back at your previous posts.

    Yeah, the web is the web and the desktop is the desktop. Perhaps they’re immiscible, but at least they can share the internet. RIAs etc.

    What I really want to know is whether there is any substance behind the recent revelations that WPF is dead (but doesn’t realize it yet), and Silverlight is in jeopardy (http://www.riagenic.com/archives/363). THAT would be enough to push many developers (perhaps me) away from MS and to the open source world.

  • http://martin.aatmaa.net Martin Aatmaa

    Actually, I think Justin is making a good point.

    This debate has been raging for years (and years), long before even Silverlight existed:

    * In browser: plugin vs native
    * Desktop: Local vs RIA
    * Control: Vendor-lock vs Open
    * Standard: Open vs Proprietary
    * Reach: Cross platform or not
    * Compatibility: Device segregation
    * Programmability: Rich vs Light

    etc.

    I think the most balanced response has always been “right tool for the right job”, and that continues to hold.

    Sure, the balance may be shifting or swaying, but an outcome is not nearly as conclusive nor imminent as we tend to believe.

  • BDM

    Hmmm, some good points. I know of a company that has placed high stakes on SL for its product strategy… ;)

    As for the “ramblings of a drunk”: it’s a bit harsh, but I’m with Davy on this one. I really like developing in silverlight, but it does have its downsides. Some of this issues are pointed out in the post, and then there’s Justins rather vague and confusing comment. “We all KNEW this stuff years ago”, well… Congratulations! You really convinced me with those razor-sharp arguments :)

    Anyway, I’m really curious how everything will look in a couple of years. We will be working with technologies that don’t exist yet. Silverlight 8 or HTML 7… It’s important to keep the “fanboy and hater” stuff out and to constantly evaluate all alternatives.

    Finally: I think most silverlight-based personal homepages tend to be very good… As examples of how to make a slow loading and user-unfriendly website, that is.

  • Pingback: Tweets that mention Keep Your Eyes On The Road « The Inquisitive Coder – Davy Brion's Blog -- Topsy.com

  • Oleg

    “basis of your long-term success”

    What is your long-term success? If it is success of application you write right now – well, we saw how in last three years all major applications were rewritten in Objective C – technology that has been outdated since 90s. The long-term success of application is defined by underlying business model not by the technology.

    If by your long-term success your mean your own validity as a programmer-for-hire – here I would be probably agree with you. SL is not the best choice for strategic investment. But for that matter neither any other specific technology. HTML5 will be outdated too. At the very moment it will be finalized, I am afraid.

  • http://davybrion.com Davy Brion

    @Oleg

    I wasn’t talking about ones own validity of a programmer-for-hire, though i agree it’s important not to limit yourself to one technology. That is, there’s nothing wrong with focusing on .NET for instance, but sticking to it when other technologies might be more suitable is not exactly a smart long-term choice.

    What i did mean with long-term success is that the application is going to be used for quite some time, and you want to make sure that you can keep it evolving without too much pain during all those years. And yes, HTML5 will indeed be outdated, as will it’s successor at some point. But the transition between those newer versions will always be easier than it will be to transition from Silverlight to HTML.vNext. And perhaps more importantly, you will be able to do it in a manner that is largely transparent for your users, meaning that your investment in the newer technology starts paying off much sooner than it would if you had to rewrite the whole thing, as you would have to when faced with a move from Silverlight to a true web application.

  • http://budts.be/weblog Teranex

    Davy, you just said what I have been saying for years. Now I hope some other people at the company you work for will finally start to understand this…

  • Danyal

    I agree that Silverlight is not in a good place right now. For me it’s because it is not a stable enough environment to commit to. It needs a very high-profile website to take it on, like Youtube did with Flash.

    Also Adobe may be a slightly quirky company but you can bet that they will fight tooth and nail to further the adoption of Flash. With Microsoft you never know whether you might wake up tomorrow and find that they have decided to make your entire CV obsolete. They always seem to be have a replacement technology in the oven.

    Justin’s website is a good example of one that probably should not be made in Silverlight. It does not really have anything you can’t do with a standards-based approach. A Flash or Silverlight website has to offer something special or else it’s not worth the loss of being able to middle or right click with the mouse.

    I would venture that Flash is not going away. But also that there is not much room for many alternatives to Flash.

  • http://davybrion.com Davy Brion

    @Danyal

    i really wouldn’t recommend Flash for those important long-term projects either, for the same reasons why i wouldn’t recommend Silverlight

  • http://www.clr-namespace.com Tau

    Come on you HTML guys, don’t be scared of Silverlight. It’s not going to move you cheese.

    I think Silverlight is a great technology for example to extend the reach of a Windows based business application made in WPF. I don’t think it’s well suited as the only technology to make an entire public facing website – same as other browser plugins.

    I’m kind of tired of the scare tactic arguments… HTML5 will start off as a standards-hell, then it will become a stable standard and after that it will become obsolete. Just like HTML4. Browser plugins will continue to play the role they play and evolve along with the standard.

    What’s the fuss about?

  • http://www.riagenic.com Scott Barnes

    Silverlight is neither dead nor is it alive, it’s really about how Microsoft internally invests between the two entities. It’s all well and good to project rainbows and sunshine around how Microsoft looks to strategically think about the long-term future(s) but in reality, if you’ve ever sat in on the planning for these products etc you’ll come to the sudden realisation that majority of the time there is no strategy and its mostly tactical responses to both market immediate needs or competitive reasoning (even then its kinda hairy). The point is, having both HTML5 and Silverlight compete internally isn’t a bright idea for Microsoft and the two teams really need to make sure they are in-sync more with their futures – so having two seperate teams report under two seperate org tree’s is a reciepe for internal fighting as you then have to leaders in a pissing contest over who has right of way :)

    WPF however needs more marking so in a sense Silverlight,HTML5 and WPF need to be positioned carefully and accurately as the moment you leave one hanging the moment i ends up being “foxpro” or “windows xp” – A Weekend at Bernies corpse where everyone parades it as being alive but its really dead and all have yet to figure out a way to bury it?

    My 2c.

  • http://www.riagenic.com Scott Barnes

    p.s
    sorry about the spelling / grammar keyboard i am using atm is a little dodge so you have to thump the keys hard or you miss letters ;) hehe.

  • http://www.thecodebakery.com Web Technology News

    Nice article. I’ve always questioned Silverlight and I’m not a MS fan (apart from their OS which is OK) so it was interesting to first read your article about why you saw a future for it and now this article. It’s good you can change your mind about technologies – be it if someone argued with you or not, as long as you’re open minded.

    “But consider this: over the past few years, we’ve seen an ever increasing popularity of a variety of open (as in: non-proprietary) technologies”.

    - Free and open software has always been here since the start of the net. HTML for example is a free, open standard. It’s nothing new.

    I hope you find more light in your journey – and I mean that in a friendly way :)

  • http://davybrion.com Davy Brion

    “Free and open software has always been here since the start of the net. HTML for example is a free, open standard. It’s nothing new.”

    I know, but what i’ve noticed goes a lot further than just HTML/CSS/JavaScript… a lot of companies are increasingly relying more and more on non-proprietary technologies for many different purposes. I think that trend will only continue.

  • http://www.thecodebakery.com Web Technology News

    One more thing..

    Silverlight might be a great technology but you have to install a plugin and I believe it only works on Windows.

    Being a great technology doesn’t mean it will be adopted by everyone. The implementation is awful and they’re way too late (compared to Flash). I’ve never seen Silverlight anywhere. It might be useful for an Intranet but that’s probably it.

    If Silverlight isn’t adopted by the masses then the wages for finding someone with this knowledge will be huge compared to someone who does Flash or HTML/Javascript. Companies will refuse to pay he high wages once they discover there is a free and more standard practise for doing the same thing.. then the job market for Silverlight will slowly fade away.

  • http://davybrion.com Davy Brion

    No, it works on the Mac as well, and in theory it should also work on Linux using Mono’s Moonlight plugin… though i’ve never tried it on Linux so i can’t comment on how well it works there

  • Alex Simkin

    @Davy Brion

    “…it works on the Mac as well, and in theory it should also work on Linux…”

    This part won’t survive for sure. In my oppinion Silverlight will survive as a Windows only platform for business applications with rich (tight) Windows Server/Desktop/Phone/Office/SharePoint/Dynamics/MSSQL/etc. integration.

    Silverlight is not a platform for general purpose web-sites, though Netflix.com can prove me wrong.

  • http://none Thomas

    Ok, I have to react on this because it truly hurts!
    Quote: “But i will go even further: a lot of developers are increasingly moving away from these proprietary technologies in favor of open technologies. Well, at least the developers that truly matter”

    Every day there are thousands of developers doing what they do best. Some of them will be better than others, but it doesn’t have to do anything with the technology they work with! Maybe in a small company that you work in, you can get to choose the technology as a developer! mostly working on new projects I guess? But in a large company, there are more things to keep in mind why a specific technology is chosen. And the main criteria isn’t alwyas (sadly that is, I must admit) technical!

    So before claiming that developers that truly matter go for open technologies, open up your eyes a little further!

    Regards
    Thomas

  • http://davybrion.com Davy Brion

    @Thomas

    i should’ve phrased that differently… with those that ‘truly matter’, i mean the developers that are able to bring change on a larger scale, and i do believe that very few of them will stick with .NET

  • http://blog.dathan.org Dathan Bennett

    Just for the record, StackOverflow is implemented (or at least it was as of March 19) written using LINQ to SQL, which I think fits your definition of proprietary technology. I’m not sure if that fits your purposes for this discussion because the proprietary technology isn’t client-facing, but it’s definitely an example of a website that’s successful using proprietary tech.

  • http://davybrion.com Davy Brion

    @Dathan

    yup, that is a good example… but the usage of linq-to-sql could be replaced with something else without any user ever having to know about it.

    with silverlight (or flash), there’s no such option

  • http://twitter.com/seagile seagile

    Davy,

    it’s good that you are this passionate (keep it that way). I can only assume that you are disgruntled with how (certain) things go in .NET land. Each developer worth his salt – irrespective of her/his technology belt – goes through various stages before being able to look back and down on things from a higher perspective. In this post, that’s exactly what you are doing …

    I’ve always tried to stay away from these kind of discussions. They tend to be honest (as in coming from the heart), useful, biased (we’re human after all), but never complete in the global scheme of things. Only time can tell what the future holds … the rest is speculation.

    Exciting times are coming as this industry surges through its next evolution – try to relax and enjoy the ride.

  • Slo

    Hi,

    First of all I want to make clear that I’m a .NET developer, and yes I earn money with Microsoft technologies. I think Davy made a good point as I’m in similar dilemmas every day in my job. As time goes by I’m really going towards open-source stuff, as I’m discovering the drawbacks of closed systems. I saw someone mentioning Linq to SQL. That is actually a good example where a choice for a certain technology brings you to the end of the road, as Microsoft announced not to support it in the future. And on the other side why is Microsoft support important to me? If I choose EF and not NHibernate, do I get anything better? Can I call someone in Redmond and say “Hey the generated SQL i see in the profiler is crap can you do something about it”? No, I can’t. The fact is Microsoft is not doing any innovations with its products, and there are far better solutions to some technologies out there.

  • Pingback: igorbrejc.net » Fresh Catch For October 4th

  • George

    Thank you for this article. A lot of good information. However, for those companies that want and need RIA type of quality (i.e. Silverlight) you did not offer any solutions. You gave me a lot of issues and problems but did not offer me alternatives. Can you perhaps offer one alternative as good as Silverlight; that is Open – standard and all of the above? Thank you.

  • http://davybrion.com Davy Brion

    @George

    we’ll have to wait and see how it goes, but HTML5 appears to be a good candidate

  • Babbler

    Nice article,
    We are in decision making time in my company and I am an MS developer while the boat tends towards GWT.
    I believe the answer for the current confusing point of time is trying to look ahead and allow evolving to any direction the future will bring. For MS developers I guess the best bet is ASP.NET MVC. It’s main feature is supporting a variety of views. It can be Silverlight fed up with JSON “views” or ASP.NET forms HTML with JQUERY that will work on any current browser. Writing complex views with state will benefit most current users with Silverlight while IPad guys that don’t need real web app just a viewing tool or forms tool may get there through HTML views and all be happy.
    Code may seem to be duplicate but still we are talking about different ways of using the applications so it is reasonable to address them in different manner and not to downgrade usability for all just to be able to run on few IPads.
    It seems to me that MVC is good tech for the unpredictable future we are facing. It is proprietary but this can be an advantage at server side.

    What do you think?

  • http://davybrion.com Davy Brion

    @Babbler

    i agree… the output of your ASP.NET MVC code isn’t proprietary so you have the freedom to go into whichever future direction you want to, and you can support whatever device you need.

  • Brian Eflin

    I realize I’m late to the party, but wanted to put my $0.02 in anyway. Very interesting article especially in light of the previous post regarding the benefits of SL. Perhaps the distinction we should make is between website development, especially public facing ones, where HTML5/CSS3/JS are clearly the right technology 90% (or more) of the time and LOB apps and RIAs where Flex and SL may have the advantage? Even with the advancements of HTML5/CSS3, the five benefits of SL you listed in your previous post still are largely not resolved with HTML5/CSS3. And until we have one dominant browser again (which will be never again I hope), you’ll still be dealing with different implementations of the standard forcing you to either code for each browser implementation or to the lowest common denominator. Neither of those options is very appealing. Certainly libraries like jQuery help, but still don’t solve the CSS rendering issues.

    You asked how many success stories I’ve seen in the past couple of years that were based on proprietary technology outside of the enterprise systems space? Well you mentioned YouTube. I’ll throw in Netflix, and Hulu using SL and Flash respectively. I could also mention the last couple of NCAA tournaments and Olympic games both used SL. For any media distribution I think HTML5/CSS3 have a ways to go as long as producers of the media want to protect their IP. And I don’t know why they wouldn’t since that’s how they put food on their tables and pay their mortgages. That’s why HTML5 work fine for YouTube, but probably doesn’t at Netflix and Hulu.

    And then there’s the iPad that blows up all arguments for Flash and SL. It is an interesting time in which we find ourselves. Certainly there is no easy solution to all of the issues.

  • http://twitter.com/technige Nigel Small

    Obviously I’m replying to an older thread, but as you’ve just tweeted a link to it, I feel a bit justified in doing so :-)

    I completely agree with your points on the lack of certainty regarding proprietary technologies. I regularly use a mixture of platforms and it’s important to me to make sure that the software which I use operates correctly and consistently regardless of O/S and/or browser. This is generally a more important concern than the license or source code status of the product.

    As an example, my “default” platform is currently Ubuntu but I have chosen to use Dropbox for cloud storage instead of Ubuntu One. The former works perfectly on all three O/Ses whereas the latter only functions under Ubuntu Linux (as not particularly well in my experience either). Dropbox also works quite nicely on my Android phone!

    With regards to Silverlight, I think I’ve only ever come across one website which required Silverlight. At the time, I attempted to try to get Moonlight working so as I could use the plugin, but after several hours of getting nowhere, I gave up.

    Operating systems and browsers evolve steadily. Standards such as HTML evolve more slowly and require a greater degree of backwards compatibility as it’s these which are so important for interoperability. If Microsoft were to produce software for Linux, I’d be more than happy to consider using it. But as things stand, 98% of their offerings require Windows and I’m afraid I don’t want to be constrained in that way.