Silverlight vs. HTML5: Both are important to our future

Last week, three Microsoft Vice Presidents coauthored this post to clarify Microsoft’s position on HTML5 and Silverlight. The answer isn’t too surprising:  both are very important. This is consistent with two requirements we developers have heard since we first started writing software:

  1. This program should run on as many client devices as possible.
  2. This program should provide the best experience possible for the end user on his or her device of choice.

Of course, now, we’re adding a new requirement: users may have more than one device of choice. People carry smart phones, tablets, and laptops for different times in their lives. It’s important to me, as someone that spends much of my professional life using C#, that the choice between the reach of HTML5 and the richness of Silverlight is mine; Microsoft is not making one a better choice than the other. In some product scenarios, I can also choose to invest extra development time and money to support both. Each application is different, and it’s important for us to evaluate each scenario and each application to determine the right choice for our customers.

My own application usage (and yours too) shows what kind of a world we live in: On my phone, I use a facebook app to keep up with friends. At home, I visit the facebook website. I have specific client applications for twitter on my laptop and my phone. We use a chat application (which can be run in a browser) to communicate with co-workers. I’ve got a desktop mail client, a phone mail client, and I occasionally visit the web interface for email. All those experiences are important. The specialized applications provide a simpler and better experience for that single purpose. They also work much, much better on those occasions where I cannot get an internet connection. That’s where Silverlight shines. The websites are available on more different devices. They are easily accessible from a public computer, or a friends computer. That’s where HTML5 shines. Both are important.

Our customers expect us to help them make those same decisions. We need to assess their expected customer base. We need to make serious, thoughtful recommendations about how to provide the best experience for the greatest number of users at the least cost. Those tradeoffs are what engineering is all about. We’ll continue to create applications that use HTML and leverage a browser for the user experience. We’ll continue to create apps using Silverlight. We’ll create apps using Flex or Air for non-windows devices. The decision depends on variables that are specific to the application, and the expected audience.

In the same way, Microsoft is making investments in both HTML5 and Silverlight. They know that some customers will need the reach of HTML5  based applications. Some customers will need the richness of a Silverlight application. Some customers will need both. I expect that we’ll hear more about the HTML5 tools at MIX, because the Silverlight tooling is more mature, and already satisfies many application needs. I’m glad to see the HTML5 investment grow. In today’s world, it’s expensive to create an HTML5 application. The tools are not very mature, and the cost of development is greater than it should be. As the tooling improves, HTML5 will be less expensive. We can recommend a technology stack based on customer needs instead of development costs.

HTML5? Silverlight? Flex? How about all three? In the near future, it will depend on the market for the application, not the cost of development. That’s good news for us as software users and as software developers.

Created: 4/11/2011 11:05:28 AM

Current Projects

I create content for .NET Core. My work appears in the .NET Core documentation site. I'm primarily responsible for the section that will help you learn C#.

All of these projects are Open Source (using the Creative Commons license for content, and the MIT license for code). If you would like to contribute, visit our GitHub Repository. Or, if you have questions, comments, or ideas for improvement, please create an issue for us.

I'm also the president of Humanitarian Toolbox. We build Open Source software that supports Humanitarian Disaster Relief efforts. We'd appreciate any help you can give to our projects. Look at our GitHub home page to see a list of our current projects. See what interests you, and dive in.

Or, if you have a group of volunteers, talk to us about hosting a codeathon event.