With HTML5 promising native support for video and animation, what can developers expect from Silverlight in the months to come?
Developers' excitement about the U.S. rollout of Windows Phone 7 on Nov. 8 was tempered by growing questions about the future of Silverlight, the Microsoft rich Internet application (RIA) and Windows Phone 7 development platform.
Uncertainty in the developer community was initially sparked in March by Microsoft's release of the Internet Explorer 9 Platform Preview, which centered on HTML5, the next version of the HTML standard for creating text and elements in Web sites. HTML5 is a giant leap forward with support for inline video, audio, animation and other interactive features provided today by browser plug-ins such as Silverlight and Adobe Flash.
Recently, anxiety has been heightened by reports of alleged internal conflicts at Microsoft about HTML5 versus Silverlight, ambiguous messaging and blog postings, and less emphasis on Silverlight technology outside of Windows Phone 7 development at the 2010 Microsoft Professional Developers Conference (PDC10) in October.
The Silverlight 4 beta release, which added functionality that solidified the RIA platform's viability for line-of-business (LOB) apps, was a major highlight of PDC09. Silverlight 4 shipped in mid-April, topping off a three-year tear of rapid releases since the technology was introduced in 2007.
During that time, many Visual Studio developers have come to rely on the plug-in for uniformity across Web sites and browser implementations, and they've applauded the Microsoft .NET Framework productivity offered by Silverlight, which features a subset of the .NET Framework and the CLR. More than 600,000 developers are developing for the platform, according to Microsoft.
"I really don't think HTML5 and Silverlight are competing for the same plot of land," says Todd Anglin, chief evangelist for Telerik Inc., a toolmaker for Silverlight and Windows Phone 7, among other Microsoft technologies. "I think there's a future where Silverlight and HTML5 continue to coexist and technologies like Windows Phone 7 only underscore that reality. HTML5 and related technologies will be perfectly suited for building the rich, standards-based Web, and I think eventually as HTML5 solidifies and as more and more browsers uniformly implement [it], Silverlight may be used on occasion to provide greater degrees of richness in the browser. But for the most part, the rich Web will be done through HTML5."
Criticized over the years for failing to conform to World Wide Web Consortium (W3C) and International Organization for Standardization (ISO) standards, Microsoft with Internet Explorer 9 seems to be addressing those concerns, with aggressive support for HTML5 (including 2D rendering with Canvas), Cascading Style Sheets 3 (CSS3) and Scalable Vector Graphics (SVG). The goal is to enable developers to use the "same markup" across browsers.
"Internet Explorer is the dominant browser and everybody hates it because it's not compliant with any other browser," says Rockford Lhotka, principal technology evangelist at Magenic. "On the other hand, I use a lot of browsers and none of them are compliant with each other, so I think that criticism of Internet Explorer is a little false."
Internet Explorer 9 and its support of GPU-accelerated HTML5 were spotlighted during the opening segment of the PDC10 keynote by Microsoft CEO Steve Ballmer and VP Dean Hachamovitch, who's in charge of Microsoft browser efforts. In September, when the Internet Explorer 9 beta was released, Microsoft announced that Bing and Xbox 360 will support HTML5 compatibility -- in some instances replacing smooth streaming and Silverlight -- in an effort to lower costs with the ESPN3 video application. Windows Phone 7 at launch does not support HTML5.
"It's clear that the expectations of all of us for the Web are raised," says Lhotka, who identifies himself primarily as a Silverlight developer. "We expect more from our Web sites. For Windows to continue to be a compelling OS, it has to come with a compelling browser that can do all this stuff that we want the Web sites to do -- so Internet Explorer 9 makes all the sense in the world in terms of making sure that Windows remains a very good Web client."
Microsoft, he says, has to have a dual strategy of supporting the Web in a very powerful way, while simultaneously supporting smart client development.
"If the browser is the client technology and everybody is only building apps for the browser, then Windows becomes irrelevant, right? Clearly, they're not going to do that," Lhotka says. "'Windows development' now all of a sudden doesn't just mean Windows. It means Windows, Windows Phone, Windows Embedded Devices -- they've [even] decided that it includes the Mac. Silverlight is clearly a great technology for enabling that type of development target."
Shift in Strategy
Microsoft's failure to communicate that Silverlight is no longer viewed as the primary cross-platform runtime solution for .NET developers came to a head at PDC. Comments about a shift in Silverlight strategy made by Bob Muglia -- president of the Microsoft Server and Tools Division -- during a PDC interview were reported by longtime
Microsoft watcher Mary Jo Foley in her All About Microsoft blog.
Silverlight is the development platform for Windows Phone 7, "sweet spots" in media and LOB apps, and a cross-platform runtime solution for some OSes and browsers, Muglia explained in the interview.
"But HTML is the only true cross-platform solution for everything, including [the Apple] iOS platform," he reportedly said, according to Mary Jo Foley's Oct. 29 blog, Microsoft: Our Strategy with Silverlight Has Shifted."
Various interpretations of Muglia's comments went viral, which ignited an uproar on the Web and Twitter. The aftershocks even reached mainstream media outlets such as The Wall Street Journal. The resulting confusion has forced some developers to face tough questions after working to convince management and customers to commit to Silverlight technology.
"[W]e've been hit by a big wave of questions," says Louis-Philippe Pinsonneault, a senior .NET developer at consultancy RunAtServer Inc. and a Microsoft MVP in Device Application Development. "My company, RunAtServer, is seen as the local leader in RIA and Silverlight applications, so we had to reassure our customers that Silverlight is there to stay. We had some customers who put projects on hold. But once the customers understood the real meaning of the 'shift in strategy,' everything went back to normal."
Many Silverlight devotees remain unfazed. "Certainly the spin on what was quoted by Mary Jo was shocking, but the reality I think is not nearly so sensational," says Lhotka. "Anyone who stopped and thought about it would realize that Microsoft has invested an amazing amount of resources and energy into making Silverlight a primary development target for Windows, for the browser, for the Mac, for the phone, for embedded devices. So the idea that just on a whim they would go, 'Oh yeah, HTML5 will actually become real in about three to five years, so we're going to bet the whole company on that.' I mean, that's crazy."
Andrew Brust, chief technology officer at Tallan Inc. and Redmond Review columnist for Visual Studio Magazine, says Microsoft's Silverlight strategy had to change to account for HTML5. "But the phrase 'our strategy has shifted' made it sound like Silverlight was being explicitly de-emphasized. And even if that were true, I'd be surprised to hear someone pronounce it so directly," Brust says.
Scott Guthrie, Silverlight lead and corporate vice president of the Microsoft Developer Division, addressed Silverlight concerns in his blog in early November. He reiterated that Silverlight is a strategic technology for Microsoft and that the company's investments in the technology focus on three core areas: client apps inside and outside the browser, apps on devices (Windows Phone and Windows Embedded) and media solutions.
Guthrie explained: "Where our strategy has shifted since we first started working on Silverlight is that the number of Internet-connected devices out there in the world has increased significantly in the last two years (not just with phones, but also with embedded devices like TVs), and trying to get a single implementation of a runtime across all of them is no longer really practical (many of the devices are closed platforms that don't allow extensibility). This is true for any single runtime implementation -- whether it's Silverlight, Flash, Java, Cocoa, a specific HTML5 implementation or something else."
IDC analyst Al Hilwa agrees with that assessment. "The world has actually changed in the last three years in this one important respect: application platforms are proliferating like wildfire. And in such a transformative age where this proliferation might get worse before it gets better, it's going to be impossible to support all platforms," Hilwa explains.
Hilwa notes that many key platforms restrict the use of layered platforms above them. Both iOS and Windows Phone 7 follow this model.
"What I'm hearing from Microsoft is a perfectly sane strategy, which is to target a specific set of platforms and do them well," Hilwa says.
Silverlight will continue to be multi-platform, but use a different approach than when it was first introduced, says Pinsonneault. "Since Silverlight 4, Microsoft has introduced some functionality, which is only available for a specific platform. COM is an example," he says. "So I'm not surprised that they decided to offer platform-specific functionality. This is the real meaning, in my eyes, of the 'shift in strategy.'"
Pinsonneault says Silverlight and HTML5 are still complementary technologies, similar to Silverlight and HTML4 today. "Yes, HTML5 provides an easier way to display video and animation than previous versions. But when we talk about live streaming video, Silverlight is the product of choice. HTML5 is good for sites, Silverlight is good for applications," he says. Several content providers rely on Microsoft Windows Media and PlayReady DRM platforms, which are supported in Silverlight.
[Click on image for larger view.]
"The media support in HTML5 is a breakthrough relative to HTML4, but it's rather primitive compared to Silverlight -- or Flash, for that matter," agrees Brust. "And I expect that 'delta' in media capabilities might grow in size."
Silverlight was always intended to be an RIA platform and RIA really means interactive LOB apps, says Magenic's Lhotka. "It's more compelling than Windows Forms or some of the older .NET technologies because it has simple browser-based deployment and, yet, has all of the smart-client capabilities that we want."
Magenic is building several enterprise apps for customers in government and large organizations that run in the browser. Many of these projects were started in Silverlight 3 and then transitioned to Silverlight 4. The apps support things like geolocation mapping and terrain analysis, and are often used by people who are managing data in the field. Silverlight makes real-time field validation and other functionality a lot easier to build.
Magenic also used Silverlight for Windows Phone 7 -- a subset of the Silverlight technology that's closer to Silverlight 3 -- to build and market a consumer-facing app in the Windows Phone Marketplace. The Windows Phone 7 app, GuestList, is a front-end to a Web service called Eventbrite for running user groups, conferences or meetings. It allows you to check people into the event as they arrive.
"Client development -- even rich native development for a platform like Windows Phone, I think -- needs something that goes beyond HTML5," agrees Telerik's Anglin. "It needs something that has more access to the local processor, has more access to the local system APIs. I think that's where the Silverlight future lives in the .NET space, as more of a replacement for what we might call traditional client application development with Windows Forms and Windows Presentation Foundation and other technologies of the past. Silverlight comes in to replace that model, giving us the true desktop-like development experience while taking out the sort of overhead that has existed in the past for desktop application deployment."
Anglin says Windows Phone 7 is a case in point. The Windows Phone Marketplace is an ideal platform for selling Silverlight applications that target the native capabilities of the Windows Phone 7 platform in a way that HTML5 is "frankly incapable of doing," he says. "We see it on the iPhone. We see it on the Android. So this is definitely played out in other mobile environments as well," he explains.
Scott Guthrie is expected to talk more about the Microsoft vision for Silverlight -- and what's coming in the next release -- when he gives the keynote for the Silverlight Firestarter on Dec. 2, an all-day educational event that will be streamed live and also available on-demand.
One area that developers are anxious to hear more about is the roadmap for additional convergence between Silverlight and Windows Presentation Foundation (WPF), which Microsoft promised at PDC09. "I think that convergence has to take place," says Brust. "This, too, involves strategy that's still evolving. But unification will come, at some point."
In 2009, Microsoft said that convergence would take two or three releases, recalls Lhotka. "They can't just break; they've established WPF and Silverlight user bases. But you can see it from Silverlight 3 and .NET 3.5 to Silverlight 4 and .NET 4 -- there's already a substantial convergence between Silverlight and WPF."
Microsoft is continuing to bring some key features of WPF into Silverlight. "Microsoft now suggests [you] start by creating a Silverlight application, and then switch to WPF if some features are required, because it's easier to move from Silverlight to WPF than vice-versa," says Pinsonneault. "In the next version of WPF, it will support hosting of Silverlight applications."
Lhotka would like to see Microsoft adopt a unified programming model, with a common Silverlight core and desktop, Web and Phone extensions. "WPF hopefully will end up having the Silverlight core with lots of extra goodies to make Windows development really a lot of fun," he says.
Silverlight 4 still lacks key functionality such as client-side storage of data -- also a hotly debated issue on Silverlight for Windows Phone -- and internal reporting capabilities. Workarounds to build reporting engines such as the rudimentary printing subsystem and Office integration (Excel) introduced in Silverlight 4, or browser integration with SQL Server Reporting Services, are not adequate. "For most of us, that's not really what our employers are paying us to do," says Lhotka.
Developers can use Visual Studio 2010 and Expression Blend to build Silverlight applications, but many still find Blend intimidating. "There are features of Blend that I'd like to see in Visual Studio," says Lhotka. "I think the minimum bar for an app is higher than it was, and so things like basic animations and transitions -- we need some way to tap into that from inside Visual Studio."
Lhotka also thinks there's a lot of room for improvement in the Visual Studio XAML Designer. "I have confidence that we'll see major improvements," he explains. "What we've got is perfectly good, but not great, and I want something great."
Brust wouldn't be surprised to see direct HTML5 support and related tooling in Visual Studio for ASP.NET applications.
"Microsoft isn't a monolith. It's a big company, accommodating a variety of opinions," he says. "And I think that variety includes some diversity of philosophy around .NET versus native code and HTML5 versus RIA and client technology like Silverlight and WPF. I think the two will coexist, as I think they should. The exact configuration of that coexistence is still evolving, and so are Microsoft's internal opinions on the matter."
IDC's Hilwa praises Microsoft for supporting HTML5, which he says is an important transition that will define the Web over the next 10 years. "The fact that we won't have intense HTML5 browser wars is a good thing, and everyone should breathe a sigh of relief," he says.
"However, HTML5 won't do a lot of things," cautions Hilwa, "and the envelope on what is doable by devices will continue to move inexorably higher and in ways that standards will never keep up with. Plug-ins to browsers will continue to bring these capabilities to the Web world and also provide synergies with off-browser application development models. In that sense, I see Silverlight as a strategic evolution of WPF as applications continue to transform to Web architectures."
Brust advises developers to tell clients the same thing he's telling his Silverlight RIA customers: "Be careful, keep your eye on this situation as it develops and resolves itself, and avoid putting too much stock into any prediction that features hysteria or drama."
Lhotka agrees. "I look at what happened in the media and the twittersphere as a blip," he says, "because if you step back and look at what's been going on for the last three years or so, there's been this steady embrace of Silverlight across all these different platforms and things that are really strategic to Microsoft's overall direction."