This is a debate I’ve been having with a client over a Mac UI, and really only applies to my desktop UI design work. Not so much iPhone or web, but still an interesting discussion.
I’ve seen very few cases where a tab UI can work for multiple documents in a Mac app. Tabs are okay for browsers, though that debate is only personal taste. This gets tricky with document-based apps, especially when you need to be able to drag and drop items between documents. Notice that Coda, a tabbed UI and my favorite web IDE, doesn’t need this as much as most apps (usually). Adobe added a tabbed UI on Photoshop CS4. This really got in my way, since I need to be able to move visual items quickly between documents, and copy/paste is harder in Photoshop than in a text editor (the key being the drop cursor in a text editor, which PS doesn’t have). Drag and drop is to the Mac like deep-dish pizza is to Chicago. You need to have it, and you need to do it right.
Sure, I can drag the item up onto the document tab to (hopefully) switch to that document, but it’s not consistent on all apps and is often clunky when implemented if it’s even implemented at all. On Coda, I don’t mind it, since I don’t drag source code.
Alternative design: use an iTunes-like “source list” on your big master window, with all of your documents listed there. This design can vary based on your app, but it’s going to take more real estate than a horizontal tab bar. iTunes allows this, dragging between playlists. It feels more natural than tabs when I need to move stuff from point A to point B. Bonus cookie points if you can give it the “spring-loaded folders” style behavior. When I’m still holding down the button and hovering over the target, it “flashes” for a second, then switches to the view so I can drill down or pick the specific place to drop. The “flash” appearance adds a bit more visual hinting for the user than most of the tab implementations I’ve seen.
Ultimately, separate windows seems to be the quicker, easier option for users who are in a hurry, like me. It also allows more specific drops, rather than having to use a delay that the spring-loaded folders option would need to have (if you don’t have a delay before switching tabs, that can be another source of confusion).
I would rather that you, as a developer or designer, pick the best option for your app and stick with it, rather than making it a preference check box. Interesting note: TextMate opens new documents in a new window for me, but if I open a Rails project, it has a document list in a drawer (ew), and selected documents open in tabs. Of course, like Coda, you can control-click to break tabs out to new windows. It seems that text editors can get away with these different styles better than other apps.
Which style do you prefer? Which have you used?
Edit: Slashdot discusses this, but they’re so geeky about it that they’re not really thinking the way I am here. I still feel separate windows are better. I have dual monitors on my desk, and even my laptop has a huge screen, so space isn’t a problem for me.