I've been playing with the Windows 8 Consumer Preview since it was released, and have gotten very familiar with it. While I find Metro to be a pleasure to interact with, I'm convinced that Microsoft is about to make a mistake with Windows 8. In short, I have a feeling that Windows 8 is about to become the new Vista.
Metro is actually a great operating system / UI layer, and Microsoft deserves a lot of credit for innovating in a space that has become somewhat homogenized. It's fast, slick, and fun to use. But if there's one thing I'd like readers to take away from this post, it's this: Metro should not be a a replacement for the desktop, and does not belong on laptop or desktop computers.
To really understand Metro, I think it's important to understand the problems that Microsoft is trying to address. I don't work for Microsoft, so I don't have any inside knowledge, but I suspect the following was largely the inspiration for the direction of Windows 8:
- The rise of Apple. When you look at the raw statistics, it's clear that Windows is still dominant, but when you look down the road, it's also clear that the trends are very much in Apple's favor. I work in the software industry, and it's incredible to see the complete lack of interest in Windows among technical and developer communities. When I look around the office, visit partners, and attend conferences, it's actually rare to see PCs now. You can easily spend several days at a conference with thousands of participants and not attend a single session where the speaker uses a PC, and in fact, not see more than a handful of laptops that aren't MacBooks.
- Consumer disinterest in Microsoft devices. I actually really love the Windows phone, but it's clear that Microsoft has yet to reach critical mass in the device market. I believe there's room for a third player (in addition to iOS and Android), and if anyone is going to be that player, it's probably going to be Microsoft, but they have a lot of catching up to do.
- Backwards compatibility. I think many Mac users wonder why Windows hasn't made bigger strides over the years when compared to OS X, but it's important to remember that Apple had the advantage of completely starting over again with their operating system. Back in 2002, the world didn't rely on Macintosh computers which meant that Apple had the luxury of essentially starting over while causing minimal disruption. Microsoft is in a very difficult position with Windows; I'm sure they want to innovate, but at the same time, so much of the world still runs on Windows that Microsoft can't just start over. In this respect, Microsoft has become a victim of its own success.
Windows 8 is clearly designed to address these three problems. It's meant to appeal more to consumers, to be tablet-friendly, and it's meant to be the foundation of an entirely new and modern platform that doesn't have to be backwards compatible with almost twenty years of code. I can appreciate what Microsoft is trying to, however I don't think they're going about it in the right way.
The biggest problem I have with Metro as a desktop replacement is that I consider it to be a massive over-correction. I think Microsoft is well aware of how much Macs have resonated with consumers, and have therefore tried to out-Apple Apple. In my opinion, that's a mistake for two primary reasons:
- One of the biggest strengths and advantages of Windows is that it's universally known. There are very few computer users out there who aren't familiar enough with Windows to be able to successfully use a Windows machine. In fact, although Macs have a reputation for being intuitive, I see a great deal of people who have switched to Macs only to be far more confused than they ever were with their PCs (I know this for a fact because I frequently get asked by friends and family to provide support for them). Metro, as nice as it is, entirely discounts this huge advantage that Microsoft should be leveraging as much as possible.
- Windows is still considered the workhorse of the business and enterprise worlds. It absolutely needs to become more consumer friendly, and could be improved in dozens of ways (a topic for a future post, perhaps), but I don't think the answer is to throw away the portions of Windows that do work really well.
Although I really like Metro, I think that its emphasis over the desktop -- and the treatment of the desktop as essentially "legacy" -- are going to prove detrimental to the Microsoft platform. Here's why:
- All the Metro apps I've seen (and indeed all the apps I can imagine being developed in the Metro style) are consumer-oriented to the point of seeming almost frivolous. The apps most frequently highlighted and demonstrated focus on things like casual games and social networking. There's been no mention or demonstration of applications like Word, Excel, Outlook, Photoshop, Eclipse, etc. What about complex business dashboards? What about IDEs? How would one even build a Metro-style application using nothing but Metro?
- Metro's windowing model (referred to as "snap") is great for tablets, and in fact, probably represents the best multi-tasking tablet model I've seen. However, it's hugely underpowered for desktop use. In a environment where multiple monitors are common (I use a 27" and a 24" at the same time), and where machines have enough processing power and memory to run all the applications you care about simultaneously, the idea of moving to such an overly simplified windowing model feels like a big step backwards. Just to compose this blog post, I have more windows open and more tasks going than I feel I can accomplish effectively with Metro.
- Switching between applications in Metro is aesthetically satisfying, but impractical. Cycling through applications in a linear fashion is probably the worst and least efficient way to find the application you're looking for, and having to use a gesture to see a list of applications on the left side of the screen (many of which frequently look the same as thumbnails) is also not practical. Thankfully, Alt+Tab still works, but the primary way most users switch between applications (the taskbar) is gone.
- Switching back and forth between Metro and the desktop is the opposite of "fast and fluid" (Microsoft's words for how the Windows 8 experience should feel). I'm sure that Microsoft recognizes that this is less than ideal, and I believe they think it's only temporary. Desktop mode appears to be there primarily for legacy applications since the world needs time to rewrite their Windows apps as Metro-style apps. However, if you accept that the Metro application model is insufficient for many types of applications (namely the types of applications Windows is best suited and known for), then it follows that those apps won't be ported for some time, or possibly can't be ported at all. I think the idea is that those applications shouldn't be ported so much as reimagined in the Metro style, and I admit that reimagining application experiences is a good exercise, but that said, I'm having a very difficult time envisioning myself editing video, writing code, using a complex business dashboard, or doing professional design work in the world of Metro.
- Tiles are great on Windows phone, and I think would work well on a Windows tablet, however they're not that useful on the desktop. It makes sense for icons to be dynamic and to convey more information than just the application they represent, however it doesn't make sense to sit and watch email subjects scroll by one-at-at-time in a tile, or watch your friends' status updates come and go, or see one or two upcoming events in the calendar tile. Remember, this is a powerful desktop or laptop computer we're talking about here. In the time it would take me to watch a few emails scroll by in a tile, I can switch between my email, calendar, and twitter clients. On tablets and phones, moving between applications isn't quite as fluid, so I think tiles have more value, but on a desktop, I don't feel they improve my productivity or my general experience. (Tiles are essentially widgets, and to my knowledge, there has never been a widely accepted or successful widget model. Consider Dashboard, Windows Gadgets, Yahoo! Widgets, etc. Probably the most successful are Android Widgets -- again, on mobile, not on a desktop.)
I completely appreciate the "fast and fluid" experience that Microsoft is going for with Windows 8, however in its current form, it feels more confusing and overly reductive. It's difficult to switch between applications and to arrange and interact with multiple applications/windows simultaneously; and switching between desktop and Metro-style applications (which, even in the best case scenario, we will all probably need to do for the next five to ten years) is clumsy and inconsistent.
I've seen a lot of people predict that Apple is going to replace OS X with iOS, and they point to several new features of OS X as evidence (the App Store, Launch Pad, etc.). I don't believe that's true. I think Apple is taking a very balanced and practical approach which dictates that they incorporate features of iOS into OS X only where it makes sense (and vice versa), but I don't think Apple will combine both operating systems into one. Apple seems to have a clear understanding that a desktop needs much more powerful and flexible features and interaction models than tablets, phones, TVs, etc. In my opinion, the best computing model is one in which all the devices you use have operating systems, UIs, and interaction models that are appropriate for that device's form factor and for its intended purpose with data being seamlessly shared between them. My interpretation of Windows 8 is that Microsoft tried to anticipate Apple combining their operating systems into one, and tried to beat them to it. However, I think they've beaten Apple to something Apple isn't interested in doing, and that actually represents a big step backwards in computer interaction and productivity.
The good news is as much as I believe that Windows 8 is the wrong direction, I also believe it's relatively easy for Microsoft to fix. As I mentioned previously, Metro is a great tablet operating system which Microsoft did a fantastic job on, however in order for it to reach its potential, it needs to be branded and distributed slightly differently. Here is what I believe represents the correct model for Windows 8:
- Metro should only be for tablets, and for computers that convert between tablets and laptops. Only if a device doesn't have a keyboard and mouse should it be in Metro mode.
- The default mode for laptops and desktop computers should be desktop mode. The start button should be restored, and users should never be forced into the Metro experience. If they choose to use their computer in Metro mode, I think that's fine, but the desktop shouldn't be treated as a legacy mode which the operating system is constantly trying to get you out of.
- Devices that are both tablets and laptops (convertible devices) should switch back and forth between Metro and Desktop modes as appropriate. I think this would become an extremely popular computing model / form factor that Microsoft could dominate. I would love to have a powerful laptop (running Windows in Desktop mode) that I could undock and use in Metro mode when I'm away from my desk. This is what could give Microsoft the advantage on devices that they're looking for, and that they desperately need.
- Data and configuration should be shared between Metro and Desktop modes so that it's possible to switch seamlessly between the two easily. In other words, if I configure my email client in Desktop mode on my laptop, then undock the screen and convert it into a tablet running in Metro mode, the email application should already be configured, and all my email should be ready and waiting.
- Windows Desktop needs to become a more modern operating system. This is a topic for another post, but Windows needs a lot of work to make it feel as modern and polished as OS X. That's not to say that OS X is fundamentally a better operating system (I used both OS X and Windows 7, and I like them both), but if you really know and understand both environments, it's hard to argue that OS X doesn't feel one to two generations ahead of Windows in many ways.
From a technical perspective, what I just described isn't that much different from what Windows 8 is today, however I believe it would make all the difference between Windows 8 being a huge success and something that Microsoft can build on for the next ten to twenty years, and being an albatross which Microsoft will spend the next ten years trying to undo.
One thing the model I'm proposing doesn't address is Microsoft's desire to sunset a large portion of the Windows code base (which is just an assumption, but probably a pretty safe one). As I mentioned earlier, I think Windows 8 and Metro is a result of Microsoft's desire to break away from the confines and limitations of backwards compatibility. Rather than just breaking old applications or telling developers that they have to build new Windows apps, I think Microsoft's strategy is to make developers excited about reimaginging their applications as Metro experiences (and, of course, giving them an easy way to distribute and monetize their apps through the Windows 8 app store). As someone who has had to deal with the frustrations of a very old code base, I completely understand Microsoft's position, however I don't believe that Microsoft's objectives are in alignment with their end users' needs. Windows 8 is meant to be a kind of compromise -- a stopgap measure -- however in many ways, I believe it is the worst of both worlds.
In order to deal with the issue of backwards compatibility, I would recommend that Microsoft simply start making some tough decisions about Windows Desktop and the APIs they support. They need to deprecate APIs, add new APIs, and eventually even break old non-compliant applications. I understand that Microsoft needs a new platform on top of which they can build and innovate for the next twenty years, and I would love to see a dramatically re-factored and even partially reimagined Windows Desktop -- even if meant not being able to use all the same apps I'm using today. Throwing away applications in the name of progress is acceptable; throwing away so much of what we've learned about computing, and so much of the flexibility and power that we've come to rely on, is not.