A few weeks ago I was in the Telerik cafeteria at our world headquarters in Sofia, Bulgaria, and a colleague walked up to me and asked: "Is Silverlight dead?" I replied: "No, but it has seen better days."
Many people in the IT industry assume that HTML5+JS is the future of software development. While it would be easy to say HTML5+JS is the absolute future of software development, HTML5+JS still has its limits coming from its roots as a rendering platform with some scripting, communication attached. While I feel HTML5/JS will be huge and have a place in every developer’s toolkit (just as HTML4+JS (AJAX) does), to build true LOB applications, you will need more power, just as you do today.
HTML5+JS is finding its sweet spot with media, interactive content apps on the web (think Google Maps) and cross platform apps for mobile devices. While Microsoft is fully embracing HTML5+JS, I can never see them making it their main development strategy; Microsoft would never cede its development strategy to a standards body or a 3rd party. Realizing this, Microsoft is going to have a development platform that embraces and extends HTML5+JS, just like .NET/ASP embraced and extended HTML5+AJAX.
I think that all of the recent focus on HTML5+JS by Microsoft is to hook the non-Microsoft developers who know nothing about Silverlight or .NET on the Windows 8 Tablet and get them building apps to compete against Android and iOS. I believe that what will evolve is that for the developer ecosystem is that HTML5+JS will primarily be used for building "apps" on the Tablet, but not for "real" line of business applications on the Web, “native” Windows, and XBox.
Is Silverlight Dead?
One popular blog talks about a new native user interface library, DirectUI, that builds on top of the native Direct2D and DirectWrite APIs that were introduced with Windows 7. According to the blog, a new platform code named "Jupiter" is part of Windows 8 and is a "Native XAML" runtime that runs on top of DirectUI.
If the blog about the Native XAML and DirectUI/Jupiter project is true, then re-org of the XAML team makes complete sense. In case you missed the leaked news, the XAML runtime team at Microsoft is moving to join the Windows team, the XAML runtime team for Windows Phone 7, Xbox, and browser plug-ins is moving to the Windows Phone 7 team, and the XAML tools team will remain in the Microsoft developer tools division.
To me, this looks like Microsoft doubling down on its XAML strategy, not abandoning it. By putting the XAML runtime team under Windows, Microsoft is making XAML part of the core operating system. This is huge. Anything included as part of the Core OS is treated as royalty inside of Microsoft. It also means that any XAML based application (either in WPF or Silverlight) will run natively as part of Windows, opening up the door to even faster performance. (History buffs may recall that this was the original vision of XAML, aka Project Avalon, that was presented at PDC 2003. Better late than never? ;))
The Future: Native XAML
I see XAML as a native part of Windows 8, Internet Explorer 10, Windows Phone 7, and Xbox- the common thread that unifies development for the Microsoft stack, even more so than .NET (which does not fully run on all of these platforms) If HTML5 gets fragmented, as it surely will, I can one day even see a native, hardware accelerated runtime of XAML being released for the Mac (there already sort of is one), Android, iOS, and maybe even Linux sometime in the future.
Notice that I have not been saying "Silverlight" or "WPF,” but instead “XAML.” It is more than possible that WPF and Silverlight will merge into "Silverlight+" or something like that, but XAML is the star. Since the XAML runtime has moved to Windows core and is no longer part of .NET, a "Silverlight" app that is deployed on the web, can run natively on Windows and take advantage of the local system and hardware, blurring the difference between WPF and Silverlight. It’s a natural evolution since the WPF and Silverlight teams at Microsoft were really one big team at this point.
Since the Silverlight brand is popular and has a cool name (something Microsoft never seems to do), I have a feeling that Microsoft will leverage the Silverlight brand when releasing "Jupiter". I expect to see one native XAML runtime and development environment ship as part of Windows 8, effectively merging WPF and Silverlight.
I don't see Silverlight as being dead, but rather reborn bigger and better. Instead of being its funeral, the Build Conference will be Silverlight and XAML's graduation party.
At Telerik, we are also going to double down on our XAML strategy. Since the beginning, we have always had only one XAML team with one XAML code base, so our WPF and Silverlight share the exact same codebase and our Windows Phone 7 tools are a subset of that codebase. We see Native XAML as a massive opportunity and will continue to support our XAML tools now and in the future. We’ve recently released a beta of our XAML controls that features a Persistence Framework and DataServiceDataSource as well as some spectacular Data Visualization controls. Our XAML tools, including Windows Phone 7, will ship the Q2 release later this month. We have our Q3 release scheduled later this year which should include some great new charting capabilities, new DataSource controls, and a ZIP compression library.
We will continue to make improvements to our XAML tools, including our Windows Phone 7 controls and our Facebook application, telerik fdeck, built on top of WPF and look forward to Native XAML’s long future.