I can write my application in classic ASP and satisfy all my requirements but do I really want to. There has been a lot of hype around Silverlight vs. HTML5. I started into the conversations with “The Future of Silverlight” from the Silverlight Team Blog and continued on to “Is Silverlight becoming a niche technology?”. There are some great arguments that for each technology but the piece of the argument that is missing is choosing the correct technology for the situation. It all boils down to the business requirements, technical infrastructure restrictions, the audience, and the comfort level of the development team.
The Business Requirements
If my requirements call for an application that needs a web component, a desktop component, a mobile component and offline capabilities. I am going to want to minimize the code that I write. In this situation I would probably go with Silverlight. If all I need is a web component then I can HTML (HTML, JS, CSS) and be done with it. You should approach each situation with the mindset that I am going to choose the best tool for the job.
Technical Infrastructure Restrictions
The article from the Silverlight Team brings up a good point around HTML5. When is the standard going to be finalized and published? How long will it take browser manufacturers to implement the standard and how standard will it actually be across the different browsers (here is a hint how standard is it now)? Finally how long will it take to get users to download the new browser (my Mom would still be on IE6 if it wasn’t for my last visit a year ago)?
Developer Comfort Level
“Silverlight share the same problem as any of .net technology…it is not reusable…if you put your time and energy, to learn some .net technology, for example asp.net, you can hardly reuse when learning some other web technology, for example php”
Really? When I use .NET technologies I separate my concerns, try not to repeat myself and all the other buzz words used to describe a great developer. My point is that if you follow good coding practices switching to another language/framework mean learning the syntax and capabilities of those frameworks. One of the main jobs of a developer learning the capabilities of frameworks and applying those capabilities to the problem at hand. Anyone can write code, it takes practice and skill to write an application!
It is great that these debates are ongoing. They help bring facts to the surface that we might not have otherwise known but we can’t loose site of the fact that the situation should dictate the technology.