Why I Hate Spaces

12/12/07

First in a series of upcoming rants about usability in OSX Leopard.

So Leopard has this virtual desktop feature built right in, called Spaces. There were a couple of different third-party programs that did this — the one I used to use was called “VirtueDesktops,” which I was pretty happy with. It doesn’t work in Leopard, and the developer has killed the project — how can you compete with something that’s built right into the OS, after all?

The problem is, Spaces is broken. Fundamentally wrong. I’ve given it a chance, I’ve been using it for weeks now hoping that my problems with it are just a matter of being habituated to a different tool, and that I’ll get used to the new paradigm — but I’m starting to realize that this isn’t a habit problem, it’s a design problem.

The idea of virtual desktops is that you can have separate workspaces for different tasks, so you can be running a bunch of applications at once without having a zillion windows cluttering up the same screen. I use one desktop for my calendar and email; another for ahem coffee breaks, so it’s got a newsreader, itunes, and a couple of web browser windows; two others for work: I’m usually working for more than one client, so I’ll have one desktop for each project (which usually means both of them will have a couple of finder windows, a web browser, a terminal window or two, and the set of project files that I’m working on open in BBEdit. That way when I’m done working on project A, I can just switch to desktop B and everything I need for project B will be right there.)

The thing to notice, there, is that I’ve got web browsers in at least three of those desktops, terminal windows in at least two, BBEdit in at least two. They’re all open to different things, depending on the task they’re related to, but they are the same application. This was no problem in VirtueDesktops. But Spaces doesn’t like it at all.

The thing about Spaces is, it’s designed on the assumption that you’re using your desktops for different applications, not for different tasks. If you’re in desktop A and switch to an application that happens to have a window open in desktop B, Spaces will automatically drag you to desktop B.

If that application happened to have windows open in desktop C, D, and E as well, then Spaces takes a guess at which one you wanted, and often as not collects all those windows into whichever space it just dragged you to, where you have to sort them out manually back into the desktops you wanted them in. Occasionally it’ll even jump you to a different space for no apparent reason at all — I’ve been in situations where I was in space A working on a file, and every time I hit “Save,” Spaces would jump me to space B (which was empty). So I’d switch back to space A, work a little more, hit save, and hello here I am in space B. And, my favorite: this was the result when I tried opening an excel spreadsheet the other night:

I’m not driving, it’s doing that all by itself. Kept going for three minutes or so before it finally decided which space it wanted to be in.

Okay, that’s obviously a bug, fine; so is the randomly-sometimes-collecting-all-your-windows-into-one-space thing; so is the fact that sometimes the file drawer attached to BBEdit windows gets stranded on a different space than the file window itself; so is the fact that sometimes windows just get lost in space; so are the numerous other issues I haven’t mentioned because this is already too long and ranty. Bugs can be fixed, and I assume Apple will get around to fixing these.

But the underlying problem — automatically switching spaces — isn’t a bug. It’s a design decision.

It seems pretty innocuous at first, even helpful — but it means that it becomes virtually impossible to separate your desktops by task, if you happen to need the same application for more than one task. You can prevent the automated jumping-around by locking each of your applications to a specific space — which makes it impossible to use the same app in two spaces. Or you can set certain applications to show up in all spaces — which negates the purpose of Spaces altogether, as it brings back the window clutter virtual desktops are designed to avoid in the first place, and still makes it impossible to separate your windows by task, since now the windows aren’t separated at all.

Effectively, Spaces is a glorified version of “Hide Other Applications”. As designed, it’s not a real desktop manager — and since this was the deliberate design, it might never be. And since it’s built directly into the OS, third-party developers are going to be less likely to step in to fix the problem.

Up next: Time Machine: I can’t see what I’m doing with all this candy in my eye! Or, possibly, Stacks: What the fuck were they thinking?!