By John Gruber
Square Reader SDK lets you use Square hardware to take payments in your app.
I don’t think there’s any hyperbole in Microsoft’s claim that this is “Windows Reimagined”. But it’s not so much that Windows 8 is Windows reimagined, but Metro that is Windows reimagined. It’s truly a whole new concept in how a computer interface should look and work.
Metro is to Microsoft what iOS is to Apple — starting over from scratch, carrying no legacy baggage or expectations. Windows 8’s “Desktop”, the traditional Windows interface, is like Mac OS X. The big difference, obviously, is that Apple has clearly separated the two, and Microsoft has put them together.
I’m no more interested in the Windows 8 desktop than I ever have been in Windows, but Metro is definitely interesting. I’ve been thinking all along that I’d rather Microsoft have let Metro stand alone as a next-generation OS, separate from Windows. (Like with Windows Phone, the name “Windows” is no longer even apt, as the Metro UI doesn’t use any actual, you know, windows.1) I’m hung up on the question of how any OS that lets you do everything Windows does could compete with the iPad, because the iPad’s appeal and success is largely forged by the advantages that come from not allowing you to do so many of the things Mac OS X can do.
One big example: On the Mac and Windows, a lot of stuff is always going on in the background. Once launched, apps stay running, consume CPU time, and hold onto RAM until the user quits them. On the iPad, very little is going on in the background — only essential system services — and apps get no CPU time and are eventually flushed from RAM when they’re not frontmost. These restrictions prevent the iPad from doing all sorts of things a Mac can do. You can’t use an iPad as a media server. You can’t screen share or remotely log into an iPad. You can’t use an iPad as a web server. An iPad app can’t work on a lengthy task in the background while you do other things in the foreground. But an iPad runs for double-digit hours on a single charge with a lightweight battery and never even gets warm let alone hot.
Tradeoffs. Mutually exclusive tradeoffs. Separate devices are required. You can’t force Mac apps to follow iOS background processing restrictions without eliminating all the good and useful things we ask Macs to do in the background. You can ask Mac apps to behave like iOS apps, which is what Lion’s Automatic Termination feature does, but it has to be opt-in. And you can’t give iOS apps even the option to run continuously in the background without sacrificing battery life and foreground app performance. But that’s how Microsoft has positioned Metro for tablets — a modern touch interface that carries the full CPU and RAM consumption of Windows as we know it. That have-your-cake-and-eat-it-too attitude is what I didn’t get with Microsoft’s positioning Metro as its answer to the iPad.
But it occurred to me while watching Jensen Harris’s Metro overview at Build that Microsoft might be sandbagging us on this. It’s so obvious that you can’t have your cake and eat it too on iPad-caliber devices. So my big what-if realization is this: I think Metro will only run alongside the traditional Windows desktop on Intel PCs. On ARM devices, there will only be Metro. Microsoft might call it “Windows” but they call everything “Windows”. To put it in Apple-centric terms, it’s going to be as if Mac OS X could run iPad apps, but iPads could still only run iPad apps. Metro everywhere, not Windows everywhere.
Microsoft hasn’t come out and said this (at least that I’ve seen), but they do seem to be hinting at it:
Speaking at Microsoft’s Build developer conference, Windows chief Steven Sinofsky flatly ruled out the possibility of the company offering support for legacy Windows applications with Windows 8 on ARM.
“We’re not going to port the installed base of x86 applications to ARM. They don’t take advantage of the things that make ARM a great architecture,” he said, referring to the power-efficiency of ARM-based processors in mobile devices such as tablets.
I had been reading statements like this as meaning that they wouldn’t be doing Rosetta-style emulation of x86 software on ARM (I’m not even sure that’d be possible, performance-wise, but then again, I didn’t think Rosetta was possible either), but that developers would be able to recompile traditional Windows apps for ARM. Now I’m thinking what they mean is more profound: that on ARM, Metro will be the only Windows interface.
It’s worth noting that Metro is more than just a new look, and more than just putting touch first. Metro apps have similar restrictions to iOS apps. According to Jensen Harris, for example, Metro apps will get “about five seconds” after they’re no longer on-screen before the system puts them into a suspended state. There’s no file manager. Users no longer quit (or, in Windows parlance, exit) apps explicitly. These tradeoffs sound familiar?
So I hereby amend my punditry. Windows 8 with the full Windows desktop will never be an iPad rival. But a version of Windows 8 with nothing but Metro looks like an excellent design for an iPad rival.
Thinking about it, isn’t window an odd word choice for what we call movable, stackable, resizeable content regions in a user interface? Other than being rectangular they’re not like real-world windows at all. I suppose they’re like a metaphorical window onto your content, but that’s a stretch. I’m having one of these moments here like when a familiar word suddenly looks totally weird and wrong. ↩︎