So Build is happening this week, and unfortunately once again I’ll be sitting on the sidelines while all my peeps are having a blast (have a few drinks for me, guys!) But I thought I’d kick off the week with a few of MY expectations for what will be announced in Microsoft-land this week.
Laying the Cards on the Table
In the past, Microsoft CEO Steve Ballmer was quoted as saying that Windows 8 was a “bet the company” proposition. Well, the better part of 80k employees have been laying the foundation for this day since the moment Steven Sinofsky took over as the head Windows geek… and now they are going to officially show their hand. I have really high overall expectations, and I genuinely think Microsoft is going to blow everyone away. I don’t think many people outside of Microsoft truly understand exactly how the world is about to change… but Apple and Google have officially awoken the sleeping giant.
Some like to say that Microsoft is evolutionary while Apple is revolutionary. Well, I believe that this time around, Microsoft will present a number of individual evolutions that together will easily fall into the realm of revolutionary. And this revolution will vault them well past Apple for the first time in many years.
I should note that these predictions are not in order of importance or likelihood of happening: I believe the first 5 are definitely going to happen. Instead, they are laid out in a logical progression, with the latter building on top of the former.
Prediction #1: All Your UI Belong to XML
That’s right, I said XML. I didn’t want to lead with this one, but it turns out that everything relates to this fact in some way. From here on out, Microsoft is going to have two ways to build UI-facing applications: If you require compatibility across multiple ecosystems (Microsoft, Android, iOS), use HTML 5. If you require compatibility across the Windows ecosystem (Windows, Windows Phone, and Xbox), use XAML. That XAML will run on WPF (.NET Full), Silverlight (.NET Lite), or C++ (Windows Immersive) and will allow you to use a single UI markup language driven by whatever programming language you are most comfortable with.
HTML5 Everywhere, XAML on Windows
No longer will you be forced to rely on a designer to kick out the C code necessary to construct a UI, nor will you have to rely on MFC controls. The same XAML that makes Silverlight and WPF apps beautiful will be able to add the same simplicity for developers who want the speed of native code instead of the .NET Framework.
You can actually use XAML with C++ today, through Silverlight for Windows Embedded. Because that technology already exists, it’s not that much of a stretch to take it to the rest of the Windows Ecosystem. I believe the Native XAML platform is codenamed “Jupiter”, and my co-worker Bill Reiss, who is a Silverlight MVP, goes over this in a bit more detail on his new blog, XamlNative.com.
BTW, this idea is given even more weight by some of the banners up at Build: (via @danwahlin)
Prediction #2: One Codebase to Rule Them All
I don’t think Microsoft has been prattling on about the three screens for no reason. Windows, Windows Embedded, Windows Embedded Compact, and the Xbox all diverged from each other a long time ago Windows CE evolved from somewhere between the Windows 3.1 and Windows 95 codebases, while Windows Embedded started as a componentized version of Windows XP, and has evolved since then to Windows Embedded 7 Standard, which came out last year.
The non-consumer versions all had the capability of running on ARM, but separate teams were responsible for that code. There was no way to get that code into mainline Windows until the MinWin effort to refactor the Windows Kernel into clean layers (think OS-level N-Tier development). With Windows 8, I believe that effort will be finished. That’s why Windows 8 will run on ARM, and why the .NET Framework 4.5 will also have an ARM compiler and JIT interpreter. (As an aside, I believe that any .NET code that was compiled to “AnyCPU” will run on ARM without recompiling… but that is an educated guess).
Anyway, with Windows 8, it won’t just be the same marketing name on everything. I believe all flavors of Windows, including Windows Phone 8 and the Xbox 360, will be running on the exact same code. Just as .NET lets you use Compilation Directives to target different environments, all of the Windows code will be streamlined behind the scenes, and certain things will be added or excluded whether you are on ARM on the PC vs. ARM on the phone.
Among other things, the big implication here is that the phone platform will have the same security and stability as the Windows desktop does. This may elicit snickers from some people, but in this day in age, Windows is the most securely-developed and tested OS currently available.
Prediction #3: One Marketplace to Rule Them All
Each of the 3 screens will run Silverlight after October, when the Xbox Live Dashboard Update goes into beta. And each one of these screens will have an App Store to match.
Right now, Microsoft online store strategy is a disjointed mess. The Windows Phone Marketplace is fraught with technical glitches and design flaws that make it difficult to use as a developer. Simple changes to the description text require your whole app to be recertified, even if you didn’t upload new binaries. The Microsoft Store has its own e-commerce solution. And up until a month or so ago, Xbox Live Marketplace and the Games for Windows Live Marketplace were two separate systems.
But Microsoft still has a year before Windows 8 and Windows Phone 8 are released, so they have plenty of time to complete their re-alignment. These systems will need to go from serving 50M+ users, to potentially serving 1B+. That is an *enormous* deal, and potentially the world’s largest software undertaking. Can you think of any other service that currently has one billion unique users, or 1/6th of the planet’s population?
Making the online retail experience have a seamless back-end between the 3 screens and a cloud is very important, and that leads me to my next prediction.
Prediction #4: Write Once, Install Everywhere (in the Windows Ecosystem)
Long Zheng has already uncovered the APPX installation model, and how it affects Windows 8. It is very similar to the current Windows Phone 7 model currently defined in WMAppManifest.xml. Makes sense, sine the new file is called AppXManifest.xml. According to WinRumors.com, the packages will be XAP files (which Silverlight already uses, which is basically a ZIP file using conventions similar to the Microsoft Office Open XML package definition).
Now, it makes sense that this will be the way you build Windows 8 and Windows Phone 8 apps, and there has been plenty of speculation to that end. But I believe that the Xbox 360 will also support this format… meaning it is conceivable that the same app will run, unchanged, on all three screens of the Microsoft ecosystem.
This eats into the core of Apple’s distribution model. Developers write for iOS because they have reach… But what if you could write one app, and instantly be on 1B PCs, 60M TVs, and 3M phones? That changes the game pretty significantly. To my knowledge, you can’t currently have the same native app run on both iOS and OSX. How do you like THEM apples?
Prediction #5: Virtually Compatible
I’ve been on Microsoft’s case for quite some time about virtualization. At PDC 2005, during a dinner with the members of Team 99, Chris Anderson, Mike Kolitz (who later joined the Hyper-V team) and I got into a heated debate about leveraging virtualization to allow Windows to shed its’ compatibility kruft and pave a clean path forward. Microsoft had recently purchased the assets of Connectix, and Virtual PC was a wonderful opportunity to make that a reality. At the time, Chris said that the whole of Windows was legacy code, and that it was going to be too big an effort to be possible.
Fast forward several years. I was at CES 2008, and Windows 7 was on the horizon. I was speaking privately with a senior level Microsoft employee about the ever-deepening reach of virtualization in the Windows Client. I went on and on about how much I loved Hyper-V, and how it should be integrated into Desktop systems to enable the same kind of backwards-compatibility scenarios. With multicore system flourishing, it shouldn’t be difficult to have another version of Windows running in the background. In response, he went on to talk about how Hyper-V would not be in Windows 7, but that it would make it into “Windows 8”. Since this part has thus far proven accurate, I have no reason to believe what I am about to relay is not.
He spoke about a compatibility scenario that was quite interesting. He talked about using similar techniques as the .NET Framework to create a “Sandbox” for applications, where the app could request any version of a DLL that has shipped with Windows, and that the OS would be able to load it up and execute it within the context of that application alone. When I told Rafael Rivera about this conversation, he said it sounded a lot like ‘Project Drawbridge’. The way it was described in Mary Jo Foley’s article, it didn’t sound like it was terribly far along… but I think it’s actually closer than they made it seem.
If this is true and in Windows 8 (which is possible, based on the conversation I had with this VP) this would be truly revolutionary for not just Windows, but the entire OS space. Microsoft’s competitive advantage is in its dedication to compatibility. What if, instead of shipping a bloated OS with tons of code that exists for no other reason that to maintain compatibility with old software, Microsoft instead shipped an OS that was able to grab the right OS-level DLLs from a secure web service (or Windows Update, whatever), on the fly? What if your app that only ran in XP could run as a native Windows 8 app, but using Windows XP DLLs? That would be truly incredible.
Prediction #6: Visual Studio 2012 CTP with .NET 4.5 & HTML5 Support
It has been a while since we’ve gotten new bits for Visual Studio, so I fully expect to be running the latest VS2012 bits before the end of the week. Those bits will have support for .NET 4.5, new Azure programming models, Silverlight 5, new Immersive controls, and debug support for XAML Bindings in WPF, and lots of other goodies. I want MS to put out so many bits that I go over my Comcast bandwidth cap for the month. *fingers crossed*
Now for the less certain predictions. These are things that I think will happen given the climate, but I don’t have much information to go on.
Prediction #7: Time to Screw With the SKUs
Ok, this part isn’t going to be announced at BUILD. Another VP at Microsoft once told me (I’m paraphrasing), “The SKU system has been made into a science. After 30 years of selling Windows, we know how to do it. And whatever you do, you never screw with the SKUs.”
Well, I think that is about to change. The evolution of the Windows Kernel over the last 6 years (thanks to the MinWin refactoring project) will finally allow for something that critics have been complaining about for AGES: Windows 8 will ship with a single SKU. Tearing the kernel apart and reorganizing it has finally allowed for systems to be truly separate. Having a single, built-in marketplace will allow Microsoft to offer functionality to exactly the people that want it.
The threads for this evolution have been there since Vista, with the componentization of the SKUs themselves, leading through to the ability to purchase in-place SKU upgrades in Windows 7. With the recent announcement that Windows Media Center, a staple of the Windows ecosystem since they released a Media Center SKU (XP Media Center Edition, was NOT going to ship in the Windows 8 Developer Preview… it only makes sense to me that Windows is being slimmed down to a single SKU with a number of add-ons.
Think about it… say you only want to be able to join a domain and run Media Center… should you have to pay $289 for a full version of Windows Ultimate, when you pay $99 for Windows, $29.99 for the Domain Connectivity Pack, and $29.99 for the Media Center Pack? Of course not. I’d be more than willing to pay for only the features I use.
Prediction #8: Mango will be released, Apollo will be demoed.
The rumor mill is heating up that Mango will go live on the 15th. You’ve got a bunch of developers in one place, so why not drop the final Windows Phone 7.1 SDK bits, and open the floodgates of Mango to the world. And while they are at it, they just might demo builds of Windows Phone 8 that are known to be floating around internally. I think if they are going to demo “Write Once Install Anywhere”, a phone demo would be killer.
Prediction #9: TV Everywhere
With Microsoft finally letting loose the existence of Mediaroom clients for Media Center, Silverlight, and Windows Phone… I have a feeling that Live TV without a tuner on your Xbox is only the beginning.
Prediction #10: I Will Be Begging Pathetically to Buy a BUILD Tablet
This one is pretty self explanatory. Anyone wanting to unload their BUILD hardware (tablet, laptop, whatever) for some cash should message me on Twitter. If it’s a tablet, I want one, and am willing to pay for it.