11 Mar 2012

What PC Operating Systems Can Learn from the iPad

Lion's full-screen mode was a big step forward, but it still feels bolted on to the classic window-based GUI rather than a rethinking from scratch like the iPad. Can we do better?

The main goal is to simplify, and get rid of things that were valuable incremental advances by themselves, but add up to too much complexity overall. So, rethink everything from the ground up, and simplify.

A big part of simplification is focusing on the common case. For too long, PCs have been designed only for power rather than also for simplicity. The point is not that the PC should be as limited as the iPad. Instead, the PC interface should be designed for the common case, while being flexible enough to also scale to complex tasks when needed. Blindly designing everything for maximal power and assuming that common cases are a subset of those doesn't work. It produces unnecessary complexity in day to day use. User experiences should be designed for the common case, while scaling to more complex uses when needed. This is just UX 101, and it's sad to see the PC fail this.

There are two aspects to simplicity: visual simplicity, which is how many visual elements do you have on screen at once?, and behavioral simplicity, which is what do you need to know to use this device? Both matter, and both aspects need improvement.

Menus are an example both of visual complexity and of catering to sophisticated use cases at the cost of simple ones. Only in fantasyland does each and every app have dozens upon dozens of items that need to be subdivided into menus. Most apps don't need the three-level overhead of a menu bar, menus and menu items. The menu bar makes more sense for Photoshop than for Notepad, but for every Photoshop, there are several Notepads. The PC is designed more to run Photoshop than to run Notepad, and that's a failure in terms of user experience. In fact, one could argue that the menu bar encourages gratuitous complexity, since it just invites you as a developer to add menu items (a menu with just one item looks odd).

With a menu bar, frequently used actions, like Save, are no longer visible on screen and directly clickable. So, you have to come up with another hack called a toolbar, which offers you a second, saner way to save your document. Why? Just have one option that works well.

So get rid of the menu bar, and leave it to the app to decide how best to display its UI. After all, app designers know their needs better than the OS designers. Don't impose this complex, bureaucratic structure on all apps. If an app really has a lot of actions and some structure is needed, the app designer can decide how to group them in a logical way for the app. An example is a reply button with a drop-down that lets you choose to reply all or to forward. Another example is Chrome's wrench icon, which makes far better use of screen space than a menu bar that stretches the width of the screen (and wastes two hot corners, at that). [1]

Windows in GUIs are another example of optimizing for complex rather than common use. In theory, you have any number of apps, and any number of documents in those apps open at once, and you want to be able to select an arbitrary subset of them to see at once, while adjusting the size and position and Z-order of each of them. Windows achieve that goal, but result in unnecessary complexity when that power is not needed. The iPad is a simpler, smoother, distraction-free and more emotionally satisfying device to use.

Bring pervasive full-screen to the PC — most apps should open in full-screen, except on huge monitors like 30-inchers. Default full-screen doesn't make sense for some apps (weather, Twitter, etc), so leave it to the app designer to choose whether their app should launch full-screen or windowed. But the expectation should be that most apps open full-screen (or at least support it, even if they don't open in full-screen mode by default). This is the opposite of the status quo, where all apps are windowed and a few support full-screen, and even if they do, they don't launch full-screen. Optimize for the common case, while supporting power uses.

Get rid of unnecessary visual elements on screen, things that have nothing to do with the task at hand. As I write this blog post, do I need to know that Dropbox is synced, or have a menu with no items relevant to task at hand (the Apple menu)? Do I need the ability to search my entire computer (Spotlight)? Do I need to know what all apps are running (Dock)?

The point is not that power uses should be sacrificed — you should be able to switch apps using Command-Tab, a hot corner, or the physical Mission Control key on the keyboard. Rather the point is that that power user-oriented UI shouldn't be on screen all the time, effectively shoving it in your face whether or not it's relevant to the task at hand.

The dock will naturally be hidden once most apps are full-screen, and there should be very few global notifications/menu bar icons/system tray icons  in full-screen mode. An example is Windows Phone 7, which shows you the wifi icon only when you're disconnected or connecting, and not all the time. Whatever the merits of this particular idea may be, the point is that we should be very judicious about global UI elements that appear on screen no matter what you're using. And the sweet spot is closer to iPad or Android than it is to OS X today.

With these changes, PCs will become more immersive, distraction-free devices. Isn't it odd that such a powerful platform as the PC doesn't do a good job at the basic task of reading text? Less clutter also means that we can use more productively use smaller laptops like the Macbook Air.

Finally, Apple should make OS X consistent with iOS whenever appropriate. For example, add a hardware home button to Macbooks. Isn't it backward that there's a dedicated keyboard button for Mission Control but not for the more basic task of returning to the desktop/home screen?

Similarly, get rid of the difference between the Launchpad and the Desktop. Make the desktop paginated, like the iOS home screen, and allow the user to put icons at a different position from the top-left. The second home screen onwards is the launchpad. Imagine an iOS home screen where you can add shortcuts to the first screen or place icons in the grid as you wish.

In fact, there should be a good reason for OS X to do something differently from iOS. Yes, OS X is a more powerful system, as it should be, but that's not a blank cheque for any kind of inconsistency. Instead, first see if the iOS UI is up to the task, and if it's not, see if there's a way to add power to the iOS base. This is important for many reasons: iOS is a fresh, clean start, while the Mac carries a lot of baggage, iOS is a simpler system, and you want to minimize confusion for people who use both iOS and the Mac. Provide power without complexity. I should be able to hand my mom a Macbook Air and say, "It's as easy to use as an iPad, but you can also do more if you want."

To summarize:
- Design for common use while scaling to complex use.
- Get rid of distraction.
- Most apps should open full-screen.
- Get rid of the menu bar.
- Make OS X consistent with iOS whenever possible.

[1] Three of the hot corners in a full-screen app should be reserved for the app, and only one for the OS.

No comments:

Post a Comment