At my company we are having a debate on whether to embrace HTML5 or to go with Silverlight for a new dev project. I think the choice is pretty obvious.
The project is starting now, well in about 2 months. This is the main reason that I believe the choice is obvious. If the project was a huge one, with a year or more planning ahead of it, before any code was written, I would admit that there would be a little more consideration needed, but even then I think that the choice is still pretty plain to see.
I have nothing against either technology. Well, let me rephrase that, I have nothing against the technology behind Silverlight and the conversations, proposals, conceptual tests and beginnings of the standards that will eventually make up HTML5.
Don’t get me wrong, I don’t hate HTML5, I actually really like what I have seen. It really seems, from what I have seen in demonstrations, to open up a great set of options for developers and allows them a much more robust interaction with the users than the previous HTML 4.01 standard permits. The key word in that last sentence is ‘demonstrations’ because, at this point, that is really all there are, demonstrations and announcements by browser makers that they will support the standards.
My big problem is that I am old enough and have been in the industry long enough to remember the adoption of the HTML 4 standard and the HTML 4.01 standard after that. It took literally years for browsers to come to grips with how they would render and support that standard and even today, there are discrepancies with how some of the most standard HTML 4.01 elements render in the different browsers. That is also after the ‘standard’ had been set years ago. HTML5 is nowhere near set as a standard and from what I have heard and read, the ratification of the standards could actually be several years away.
For anyone who needs proof that this is a long process, consider that the W3C started working on the HTML5 standards in 2004 and they have missed every deadline in the recommendation stage so far. At this point, the editor of the HTML5 specification, Ian Hickson, expects the specification to reach ‘Candidate Recommendation stage during 2012 and in a recent interview, he states that the full W3C Recommendation could be as far away as 2022 or later, but that many parts of the specification are stable and could be implemented in products.
There is no doubt in my mind, nor in the minds of anyone that I have spoken to that this standard will be infinitely more complex and detailed than any specification before it. That may, in fact, help to curb some of the issues we even still have with browsers rendering the standard differently as they currently do with HTML 4.01 and help it to be adopted more quickly. This is most definitely a great thing, and may help in the stable and standard adoption among browsers, but the time it takes to create such standards means that this technology is not yet ready for mass use, not by a long shot.
I am not saying that you cannot develop in HTML5 now, I am aware that there are small projects all over the place that are pushing ahead with what is available now with the HTML5 APIs and the existing standard set. What I am saying is that, for businesses, this is too far into ‘bleeding edge’ for me to recommend it at this point. There is too much danger that a large business project would be left with large sections needing to be rewritten once the standard is actually finished and no business wants to incur that additional cost.
Silverlight, on the other hand is a robust, stable, cross platform, cross browser development framework that offers both in the browser and out of the browser user interfaces. Microsoft has taken their time getting out of the gate, but, in true fashion, when they came to market with a solution, it was thought out, detailed, and robust. Silverlight is capable of generating whatever user experience a developer, or a designer, wants and keeping it consistent across a wide host of environments.
Microsoft has dedicated a very talented team to developing the next and future versions of Silverlight and its development tools. They have supported it very strongly and determinedly with no signs of that support weakening any time soon. If you want more proof of that, check out the recent Silverlight Firestarter event that Microsoft recently put on.
Silverlight has a whole host of mature, low cost or free tools to help developers. This, plus an assortment of third-party tools and extensive support via online blogs, user groups, forums and MSDN support files means that you will not spend a lot of time and money needlessly in your Silverlight development.
I have not yet seen a single thing presented in HTML5 that I have not seen done similarly or better in Silverlight. I have found Silverlight in the browser, out of the browser and on the phone to be a fantastic, stable experience.
I am sure that HTML5 will be fantastic and a great experience. It may even do a majority of what everyone is expecting from it. It may eventually even be rendered exactly the same in each browser, but that time is at least a year away.
So if someone asked me today what we should develop in for a new project now starting in 3-6 months, HTML5 or Silverlight, I think the answer is pretty obvious. HTML5 has a lot of promise, but Silverlight lets me keep my development promises now.