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.
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?
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.