In this highly detailed article which originally appeared on his site, programmer and game industry veteran Casey Muratori takes a long, hard look at what Windows 8's changes will mean for developers not just immediately, but down the road.
For the first time in the history of the PC, Microsoft is rolling out a new Windows ecosystem for which they will be the sole software distributor. If you buy Windows 8, the only place you will be able to download software that integrates with its new user interface will be the official Windows Store. Microsoft will have complete control over what software will be allowed there.
Microsoft has stated that applications for the older desktop interface will remain unaffected by these policies. As long as they only use applications that run on the old desktop, users will still be able to buy, sell, develop, and distribute software without interference from Microsoft. Many Windows users have taken this as an assurance that the open distribution model that they enjoy today will still be available in future versions of Windows, and as a result, there has been far less public concern about Windows 8 than there might have otherwise been.
But how realistic is the assumption that the Windows desktop will still be a usable computing platform in the future? And what would be the consequences were it to disappear, leaving Windows users with only the closed software ecosystem introduced in Windows 8?
To answer these questions, this volume of Critical Detail examines the immediate and future effects of Microsoft's current certification requirements, explores in depth what history predicts for the lifespan of the classic Windows desktop, and takes a pragmatic look at whether an open or closed ecosystem would be better for Microsoft as a company.
Game of the Year 2032
According to PC Gamer Magazine, and many sources which agree, PC Game of the Year 2011 was Elder Scrolls V: Skyrim. In a move that surprised absolutely no one, Skyrim for the PC shipped on Windows, not MS-DOS. Even if the developers had wanted to, they couldn't have shipped a modern PC game like Skyrim on DOS because none of the past 15 years of graphics hardware innovation is available there. It's absurd to even consider shipping commercial consumer software on MS-DOS today.
Hypothetically, let's assume it becomes equivalently absurd, 20 years from now, to ship consumer software on Windows desktop. There are no desktop games in 2032, much like there are no DOS games in 2012. Everything runs in some much more refined version of the Windows 8 modern user interface.
Because no software can ship on this future platform without it going through the Windows Store, the team that built Skyrim would have to send it to Microsoft for certification. Then Microsoft would tell them if they could ship it.
Do you know what Microsoft's answer would be?
I do. It would be "no".
Your app must not contain adult content, and metadata must be appropriate for everyone. Apps with a rating over PEGI 16, ESRB MATURE, or that contain content that would warrant such a rating, are not allowed.
And that's the end of it. No Skyrim for the Windows Store, unless of course the developers go back and remove all the PEGI 18-rated content.
That's 2011's Game of the Year, banned from the Windows Store. How about 2012? With several highly anticipated games yet to be released, it's anybody's guess which game will be selected. But a random sampling of internet predictions suggests some of the leading contenders are Max Payne 3, The Witcher 2, Mass Effect 3, Assassins Creed 3, Call of Duty: Black Ops 2, and Borderlands 2. Of the four of those that have already shipped and been rated by PEGI, how many could be shipped on Windows Store?
Now, there are certainly many people out there, perhaps even the majority, who believe that games aren't culturally relevant. They are not great art, they might say, and therefore it is irrelevant if a major platform prevented their dissemination.
In the interest of illustrating the importance of an open platform more broadly, let's give our games a cultural facelift. Let's pretend we magically have a bunch of games with content equivalent to no less than the Emmy nominees for 2012 outstanding drama series: Boardwalk Empire, Breaking Bad, Mad Men, Downton Abbey, Homeland, and Game of Thrones.
Odds are that Downton Abbey would be the only one to clearly pass the PEGI rating test, but even if somehow the rest of them did, they'd be banned from the store for a variety of other reasons, such as section 5.3:
Your app must not contain content or functionality that encourages, facilitates, or glamorizes illegal activity.
Your app must not contain content that encourages, facilitates or glamorizes excessive or irresponsible use of alcohol or tobacco products, drugs or weapons.
or section 5.8:
Your app must not contain excessive or gratuitous profanity.
This vision of a future Windows heavily censored by Microsoft is chilling. But how likely is it to actually occur?
For Windows RT, the version of Windows for low-power tablets and phones, this future begins on October 26th. Each and every Windows RT device sold will only be able to run software from the Windows Store, and all Windows Store apps must follow the certification requirements quoted above, as well as dozens more. Windows RT users won't have 10 or 20 years before they can no longer play the world's most highly acclaimed games on their Windows devices. Those games will have been forbidden from day one.
But for Windows 8 and Windows 8 Pro, the versions that most desktop users will have, the timeline is not yet certain. Unlike Windows RT, these versions include the classic Windows desktop that still supports open distribution. Is it possible, then, that desktop users will never have to experience this future?
A brief examination of Microsoft's own history suggests quite the opposite.
Anatomy of a Microsoft Platform Shift
In the late 1980s, much of the consumer computing world was already using graphical user interfaces. Machines like the Apple Macintosh, Commodore Amiga, and Atari ST had grown dramatically in popularity, and each shipped with a modern graphical operating system pre-installed. PCs, on the other hand, still typically ran MS-DOS, a command-line environment where applications had to individually implement their own rudimentary interfaces.
Despite this drawback, the PC was nonetheless flourishing. Because it was an open hardware platform and had achieved wide adoption in the business space, many of the era's most famous productivity programs -- like Lotus 1-2-3 and WordPerfect -- treated MS-DOS as a flagship business platform.
Then on May 22nd, 1990, Microsoft shipped Windows 3.0. This version of Windows could do something no previous version could: it could run MS-DOS programs alongside native graphical apps. For the first time, people could run standard business applications without leaving a consumer-friendly interface. The Windows GUI itself may not have been as flashy as what was available on other platforms, but it gave people the option of using just one OS for everything, and customers wanted that. Adoption rates soared.
Over the next five years, Microsoft continued adding new APIs to Windows. Although people still developed MS-DOS programs, it became increasingly difficult to ship a business application that didn't integrate with things like the Windows font manager, printing services, standard dialogs, and rich clipboard. Customers came to expect these things, and MS-DOS applications simply couldn't use them.
As most apps either transitioned to native Windows versions or became defunct, games were the one major holdout. They lived and died by performance, and couldn't afford the overhead Windows introduced. But eventually Microsoft found a way to give games the hardware access they needed, and slowly but surely, native Windows games became increasingly common. By the time Windows 2000 was introduced on February 17th, 2000, only 10 years after the release of Windows 3.0, running MS-DOS programs had gone from the key feature that made Windows what it was to a tacked-on compatibility mode only meant to support legacy software. MS-DOS as a platform, and any programs still tied to it, had faded into obscurity.
On July 22nd, 2009, nearly two decades after the release of Windows 3.0, Microsoft introduced the version of Windows most of us use today, Windows 7. If you try to run an MS-DOS application in Windows 7, you get a dialog box that says:
You may still be able to run the program, but you'll have to download and install a special "Windows XP Mode" package from Microsoft's website or use third-party emulation software to even try.
The Return of 1990
The PC's situation in relation to consumer computing is very much the same today in 2012 as it was in 1990. On the PC, we are still using the "Windows, Icons, Menus, Pointers" (WIMP) interface that has been standard for almost three decades (if only on PCs for two). But on the rest of the world's popular computing devices -- smartphones and tablets -- WIMP interfaces no longer exist. OSes like iOS and Android have replaced WIMP with touch-centric interfaces, much as the Macintosh and Amiga eschewed command lines for GUIs in the 1980s.
But on October 26th, Microsoft will release their first touch-centric operating system, Windows 8. Rather than jettison WIMP entirely, they have chosen to include it as a subset of their new touch interface. Just as Windows 3.0's interface ran alongside MS-DOS, Windows 8's new interface will run alongside a traditional Windows 7 desktop.
Also just like Windows 3.0 and DOS, the integration between the two is largely superficial. Some parts are integrated, but most parts aren't. You can create tiles in the new UI that launch programs in the old UI, just like Windows 3.0 could have icons that launched DOS programs.
But just as DOS programs ran in a special container window, and couldn't do things like opening other windows, presenting dialog boxes, using fonts, or transferring graphics to the clipboard, desktop apps are segregated in a special container desktop in Windows 8, and they can't access most of the new Windows 8 UI features.
For example, desktop apps can't be part of edge-swipe task switching. They can't be snapped to the side as sidebars. They can't participate in charm interface elements like extended search or share. They can't present lock screen notifications. They can't use live tiles. And these are just some of the features in this version of Windows. Who knows what new features Microsoft will add in future versions that will make desktop apps even less able to compete with native apps?
In short, the desktop in Windows 8 is where MS-DOS was in Windows 3.0. This brings us to a pivotal question: if Microsoft is as committed to the new Windows 8 user interface as they were to the GUI of Windows 3.0, what will desktop support in Windows look like going forward?
If you believe that history repeats itself, the answer is unambiguous: it will be relegated to obscurity in 10 years, and it will cease to exist outside manually installed compatibility software in 20.
Now, clearly, any prediction about the future is uncertain. Many people out there probably don't believe there's any way the future of desktop computing looks like a much-revised-and-refined version of the new Windows 8 UI. But if you take a step back and realize that people thought the same thing about Windows 3.0 when it came out, I hope you can appreciate how real a possibility it is.
The Promise of Windows 8, Dead on Arrival
For present-day developers, the world of consumer computing pre-Windows 8 is a bit of a mess. There's iOS, a platform where you can't ship anything native without the haphazard and capricious permission of Apple. There's Android, a pleasantly open platform plagued by mismanagement of hardware specifications, lack of commitment to native code support, and the threat of being seriously damaged by obstructionist patent lawsuits. And then there are platforms like Blackberry, WebOS, Kindle Fire (based on Android), and Nook which have yet to see adoption in significant numbers.
Enter Windows 8. It's designed for touch input, has well-specified hardware requirements, features a well-documented native code interface, can be used directly as a development environment with no need for cross-compiling, and yes, it's backed by a notoriously devious company which holds a patent portfolio five times the size of Apple's. So if Apple did try to take the same litigious approach with Windows 8 that they took with Android device suppliers, we'd see a return salvo of infringement claims so massive it'd bury Apple's fancy new headquarters in obtusely worded paperwork.
Perverse as today's computing landscape may be, this could actually be a step forward for developers. Assuming developing for Windows 8's new ecosystem followed the same rules as developing for the old one, any developer could simply install Windows 8, develop software that targeted the consumer touch market, then distribute it for free or as a paid piece of software via their website or a third-party distributor. Fewer platform headaches, no unreliable provisioning requirements for testing, no weird developer fees or subscriptions, and most importantly, no domineering Apple standing between developers and their customers.
But there's just one problem. Microsoft has decided not to make the new Windows 8 ecosystem follow the same rules as traditional Windows. Unlike the transition from MS-DOS to Windows 3.0, Microsoft isn't planning to expand the Windows ecosystem. They are planning to bifurcate it.
The problem begins with the Windows Store. If the name makes it sound like the Apple App Store, that's because it essentially is the Apple App Store. It's a centralized distribution mechanism that Microsoft controls which allows end users to purchase software from a catalog of titles explicitly approved by Microsoft.
This, by itself, might not be all that bad. There are valid arguments against the owners of a platform controlling the default marketplace for that platform, but if the platform allows people to develop and distribute software freely outside the store, then other companies can bypass the store altogether. Developers can distribute their software through other channels, or even provide competing stores, reducing via healthy competition the danger of abuse or obstruction by the platform owner.
However, it is clear from Microsoft's publications on Windows 8 that in order to participate in the new user interface, you must distribute your application through the Windows Store. That means as of October, Microsoft itself will become the sole source of software for everything you run on a Windows machine that isn't relegated to the older desktop ecosystem. Unlike the historical transition from MS-DOS to the Windows GUI, although the old platform (the Windows desktop) will likely remain open, the new platform (the Windows 8 UI) will be closed. This will put Microsoft in a wholly new monopoly position: that of sole software distributor for the majority of the world's desktops.
Now, this is apparently a point of some contention. Perhaps because Microsoft has not made a bigger deal about it in their press releases, not everyone believes that distributing software for the modern UI will require developers to get Microsoft's permission. But they are wrong. In order to set the record straight once and for all, a complete, thoroughly researched analysis of Microsoft's official publications on the subject is included as Appendix B to this article. It demonstrates that there is no method for developers to distribute modern UI applications to the internet at large without receiving explicit approval from Microsoft.
So, with that in mind, it's time to ask the fundamental question: if the new Windows 8 interface does come to completely replace the desktop, and Microsoft has complete control over what software can be published on that new interface, how dramatically would this affect the future of Windows? Will games designed for adults be the only casualties of a closed Windows, or is there even more at stake?
The Future Could Be Anywhere
But just because Microsoft has done a terrible job defining the boundaries of the new ecosystem, does that necessarily mean that the only alternative is to make the ecosystem completely open? Couldn't Microsoft simply set new, better guidelines?
The answer is not unless they can see the future. And not just in a broad sense, but literally see it at full resolution, with clarity on every last detail. In the absence of such perfect foresight, how could any company possibly dictate the rules for future software without accidentally prohibiting things on which revolutionary new software might rely?
The reality is that even the world's most successful companies are rarely able to accurately predict the future. Computing history is littered with examples. Digital Equipment Corporation, once the second largest computer company in the world, failed to foresee the desktop computing revolution and now no longer exists even in name. Silicon Graphics, once the world's leading 3D graphics hardware company, failed to foresee the consumerization of that hardware and was eventually forced to declare bankruptcy.
Despite thus far avoiding a similarly dire fate, Microsoft's track record on predictions is no better. As Bill Gates famously admitted in the late 1990s:
Sometimes we do get taken by surprise. For example, when the internet came along, we had it as a fifth or sixth priority.
- Bill Gates, speaking at the University of Washington in 1998
And Microsoft's subsequent change at the helm hasn't brought with it any improvement:
There's no chance that the iPhone is going to get any significant market share. No chance.
- Steve Ballmer, in an interview with USA Today in 2007, where he predicted the iPhone would capture "2 or 3 percent" of the smartphone market
Without accurate knowledge of the future, by definition the only way to avoid accidentally prohibiting innovation is to not meaningfully prohibit anything. So the only certification requirements Microsoft could draw up that would fully support the future would be ones that effectively certified anything developers could possibly create.
At its heart, that is the very definition of an open ecosystem.
A Small Concession
For any developer keen on creating the breakthrough software of the future, it should be abundantly clear that the closed nature of Windows 8's new ecosystem will be catastrophic for the platform. There's no question it should be opened. But developers aren't the people in charge of the policies for Windows 8.
So the more relevant question might be, can Microsoft afford to change course and allow Windows 8 apps to be distributed by anyone, not just the Windows Store?
Taking the long view, Microsoft can't afford not to change course. They are already behind in every consumer market category beyond the desktop, so there's no room for error. If a new software innovation comes around and, say, Android is its primary platform because it has open distribution, that could easily lead to another "lost decade" for Microsoft as they once again play catch up.
But corporations today don't usually take the long view. Short-term profits and shareholder opinions are pressing, immediate concerns, and Microsoft is a public company affected by numerous outside interests. So the question becomes, can Microsoft allow open distribution in Windows 8 without sacrificing revenue?
Surprisingly, the answer is that there will be little or no revenue sacrificed from allowing open distribution in Windows 8. That may sound absurd, but if you read Microsoft's publications carefully, you will find that it is true. Although Microsoft has closed the distribution system of the new Windows 8 ecosystem, they didn't close the payment system. From Microsoft's own developer agreement:
In-app Commerce. You may elect to support purchasing options from within your app. You are not required to use Microsoft's commerce engine to support those purchases. If you choose to use Microsoft's in-app purchase commerce engine, purchases will be subject to the terms of this Agreement, including without limitation the Store Fee and licensing and roaming requirements.
As strange as it may sound, if a developer offers a limited application for free in the Windows Store, they may then sell, directly in the app, an upgrade or unlock to the full version for which they can accept payment directly. They do not need to pay Microsoft 20-30 percent royalties as with a Windows Store purchase. Thus any developer who wants to use a non-Microsoft payment system is free to do so. The only thing they can't do is use a non-Microsoft distribution system, such as their own web page or store.
So it is almost impossible to conceive of a circumstance where Microsoft would lose significant revenue by opening the distribution system since it has already opened the payment system, and substantively all the revenue comes from the payment system. The only revenue Microsoft would still make from the store for an application that did not use their commerce engine would be the variable one-time application fee of less than $100 per app (not per purchase). The Windows Store would have to lose 10,000 to 20,000 apps to open distribution every day in order for this to amount to even 1 percent of Microsoft's revenue. For reference, the most popular app store in the world, Apple's, is estimated to receive a total of fewer than 500 per day.
Furthermore, the potential for migration of Windows Store customers from Microsoft to third party providers wouldn't be any greater under open distribution. Anyone using the Windows Store as currently specified will be able to create an account with a third-party payment processor as part of any in-app purchase that supports it. Once they decide to make such an account, they can trivially use that account to pay for any other in-app purchase in all apps that support the same payment processor. The inertia of purchasing through a third party is only present the first time the user needs to use it. Open distribution would be no different. The Windows Store would remain the default source for Windows 8 apps, and only once the user decided to install and create an account with a third-party distribution source would the Windows Store lose its inertial advantage.
Thus Microsoft has almost no financial incentive to disallow open distribution. Presumably, there must be other concerns underlying their decision to keep distribution closed. Is it to mitigate the threat of malware? Is it to prevent piracy? Is it to better manage their brand? Until Microsoft is explicit about its goals so its decision can be assessed against them, we can only speculate on the motives, and all the likely candidates have other straightforward solutions that don't involve draconian policies like forcing users to only install Microsoft-approved software.
Where We Go from Here
Experimentation on open platforms is one of the primary sources of innovation in the computer industry. There are no two ways about that. Open software ecosystems are what gave us most of what we use today, whether it's business software like the spreadsheet, entertainment software like the first-person shooter, or world-changing revolutionary paradigms like the World Wide Web. It will be a much better world for everyone if this kind of innovation continues.
Developers, consumers, and even Microsoft should want the next 20 years to look like the last 20: year after year of great new and previously unattainable things, brought to you by motivated, creative developers who were free to go wherever their vision took them, knowing full well that if they made something great, there was no barrier between them and disseminating it to the world.
With Windows 8, Microsoft is in a pivotal position to help make this future a reality. They could become one of the primary forces fighting to make tablet development as open as desktop development was under traditional Windows. They could take market share from the completely closed (and thoroughly dominant) iPad, and help restore to that space the freedom to innovate that developers lost when Apple imposed its restrictive policies.
Or, Microsoft can ship Windows RT, Windows 8, and Windows 8 Pro with their current policies in place, and be just another player in the touch device space, with their own set of ridiculous hurdles that severely constrain software possibilities and waste developer time with ill-conceived certification processes.
Why take this risk? Why not bend over backwards to give developers an open platform, so that each and every one of them will be not just supportive, but actually enthusiastic to help Windows make inroads into the tablet space?
The success of Windows 8 in the tablet and phone space is far, far from a sure thing. Does Microsoft really want to go into that battle without some of their biggest assets? Do they want the likes of Valve, controller of over 50 percent of all PC game sales, deciding to throw their weight behind Linux because the Windows 8 ecosystem completely prohibits third-party app stores like their flagship Steam? Do they really want the launch of Windows 8 plagued by story after story of notable developers coming out against the platform? And above all, are they willing to risk alienating developers to the point where they actively promote and foster competing operating systems as their flagship platforms because Windows no longer offers them the freedom to develop and distribute their software the way they choose?
Hopefully, for everyone's sake, they will realize the only sane answer to all of these questions is "no".
This appendix provides some brief statements about Windows 8 which were not explicitly covered in the article.
All versions of Windows 8 are closed for Metro apps, not just Windows RT. Although aggressively disputed by a number of people outside Microsoft, the truth according to Microsoft itself is that no final version of Windows 8 will allow free dissemination of Metro apps outside of enterprise domains. I have documented this meticulously in Appendix B.
But even if Windows RT was the only version of Windows with a closed ecosystem, this would still be extrem