Standards-based web, plug-ins, and Silverlight

As we drive toward MIX, we wanted to share our thoughts on the role of plug-ins in general, and Silverlight in particular, in the context of HTML5 and the future of the web. As we have been more vocal about our commitment to and investment in HTML5 as our direction going forward, we have received questions from the community about the future of plug-ins, and how Silverlight is viewed as part of an overall solution set. We’ll provide clarity, background and context below, but here is a quick summary:

  • For plug-in based experiences, we believe Silverlight delivers the richest set of capabilities available to developers today, making the choice of Microsoft technologies even more compelling.
  • For Windows Phone development, Silverlight and XNA are the core fundamental building blocks for building rich experiences that take full advantage of Windows Phone.
  • HTML5 is a solution for many scenarios, and developers should make the appropriate choice based on application needs, knowing that we have a heritage and a future vision of supporting a wide variety of technologies to meet those needs.

Now, more context. One of our goals is to provide a rich set of tools that support many scenarios. As skilled craftspeople (developers who count on Microsoft) require, we provide a rich set of tools to deliver the most complete toolbox on Windows (and at times other platforms). As developers know, different tools have different tradeoffs and this has been true throughout the history of programming. Some tools provide for rapid development, but fewer opportunities for expression or optimization. Other tools are best for large-scale team development, but less suited to individuals. Others might be best suited for cross-platform work, but do not exploit the underlying platform or hardware. Those of us that make development tools are always looking to provide as many positive attributes in a tool as possible, recognizing that even the state of the art tools cannot deliver equally across the board. Just as there are engineering tradeoffs in your software, our tools face the same challenges. We think it is pragmatic for us to be stating this and believe developers are informed enough to know that no tool does everything equally well. This is truer than ever before as the range of software, devices, and environments is expanding.

This leads to choices developers must make. While we often times work to provide guidance about what attributes different tools excel at delivering, we also recognize that developers sometimes want to hear the one best answer for a broad array of technical challenges. Sometimes we are not as clear as we can be about the different tradeoffs. When we are clearer, there can be some confusion over what appears to be a change in direction when really there was at worst a change in emphasis.

When it comes to emphasis, it is important to highlight the tools that hundreds of thousands of people use for their software on Windows—commercial software, line of business software, or platform software, on both clients and servers. These tools, C, C++, C#, and VB (to program against Win32, .NET, etc.) are the industry standard tools for a very broad and diverse set of developers and software (the broadest in the industry). The choices and tradeoffs in using these tools are reasonably well-understood and with Visual Studio we provide an industry leading development environment for these tools. We continue to invest significantly in these tools and are committed to bringing these forward as new generations of our platforms emerge.

While we have emphasized the role of HTML5 as the foundation of the recently released Internet Explorer 9 and have shown an unprecedented commitment to being leaders in HTML5 browsers, we have probably not emphasized enough the tooling for HTML5. We're going to emphasize that much more going forward as the clarity of feedback and the emphasis our customers want us to place on these tools for the professional toolbox is clear. It would be fair to say to the degree we did not emphasize the above we made up for it in our emphasis in Silverlight as a runtime (and by extension XAML).

When we first introduced Silverlight as a cross-platform, cross-browser plug-in for delivery of rich web experiences, web standards were not broadly able to support many scenarios that developers wanted to build. Two significant industry dynamics have taken shape since that time that cause us to emphasize the role of Silverlight differently as a key tool in the developer toolbox.

First, the world has changed from one in which people used a single device (primarily a PC) to one in which they use several, and many of the experiences on those devices are web-enabled in some form or fashion. Given that user experience is now a multi-device (i.e., cross-browser/cross-platform) experience, standards and reach play a more important role than ever, both for users and developers. Second, the evolution and maturity of web standards have resulted in HTML5 that will support many of those rich scenarios that previously required plug-ins. The market momentum behind adoption of HTML5 as the path forward for broad cross-platform reach continues to gather momentum, and with Internet Explorer 9 Microsoft is chief among those leading that charge.

Neither plug-ins nor standards-based approaches, however, represent the single answer to client development. In general, we know developers always want the best of everything, in a single tool, but at the same time recognize that is not a practical way to approach development. Developers need to make choices and tools will continue to evolve. We want to provide guidance and clarity, but recognize these decisions are always going to need to be made close to the code and close to the ultimate customer requirements. Today, plug-ins and standards play complementary roles, and as a practical matter there is no single technology to satisfy all the needs demanded by client development. While much has been written about a diminishing gap between the capabilities of HTML5 and capabilities provided by plug-ins, plug-ins will continue to evolve and so there will likely be a gap of some degree, and it will cyclically contract and expand. Contraction occurs as the standard specification “catches up” with the plug-in technologies, and then expands again as the next wave of innovation pushes the boundary further forward.

As part of the continued support for scenarios that require plug-in based capabilities, we will ship a beta of Silverlight 5 at MIX, with some great demos for compelling scenarios. And as we stated in the summary above, we believe Silverlight delivers the richest set of plug-in based capabilities available to developers today, making the choice of Microsoft technologies even more compelling in aggregate. At MIX, we’ll also talk about Windows Phone and the developer experience with Silverlight, XNA, and Visual Studio.

Finally, so our emphasis is clear—over the coming months we’ll be particularly demonstrative of our emphasis on HTML5, in Internet Explorer and in tools. HTML5 is a solution for many scenarios, but developers should make the appropriate choice based on application needs, knowing that we have a heritage and a future vision of supporting a wide variety of technologies to meet those needs.

Walid Abu-Hadba, Corporate Vice President, Developer Platform & Evangelism

Scott Guthrie, Corporate Vice President, .NET Developer Platform

S. Somasegar, Senior Vice President, Developer Division

Original Post Comment Archive.pdf