Labels vs. Folders in Gmail

Google Blogoscoped has a great interview with Kevin Fox, the former lead designer of Gmail, Google Reader, and Google Calendar, who now works on FriendFeed. Among the interesting topics and decisions he covers, Fox gives the thinking behind why Gmail was designed with labels, rather than the traditional folder concept that people are used to in email. When you hear his answer, it makes complete sense:

Ironically, labels is a great example of when it’s best to not rely on existing design patterns, since in this case that would give the users a false understanding of the feature. Conversations were the most fundamental difference between Gmail and prior email applications. By treating messages in the same conversation as a single entity instead of separate emails, we gave users (especially users on mailing lists and those who get a lot of email) some real power.

The problem is that conversations meant we couldn’t have folders. The logic went like this: If you move a message from the Inbox into a folder and then another message came in on the same conversation, the conversation would pop back in to the Inbox (as it should). Should it
still be in the folder as well? It’s very inefficient to move it back in to the folder each time, frustrated that it keeps popping out. And if it stays in the folder and the inbox, then how do you get it out of the inbox? If you throw it away it would throw away the conversation from everywhere, or maybe it should just throw it away from the Inbox and remain in the folder, in which case if you really wanted to delete something you’d either have to find it in all folders it was ever placed in, or you’d have to have some sort of ’super delete’ which, as it turned out, was a far more troublesome difference to grasp than that of multiple-inclusion folders (which is what labels are).

So instead of deleting from the inbox, or re-moving, you could ’archive’ the conversation (whether or not it was in another folder) and it would just take care of it.

Another way to look at the problem is if you have filters set up to put messages from certain people or with certain keywords in folders, the same conversation could appear in multiple folders because one message put it in ’family’ and another put it in ’vacation’. Then you have the same problem of a single item appearing within multiple containers that people have been trained to understand only hold originals or copies, not aliases, and you run into the same confusion with some users trying to delete out of a folder to keep a conversation in another folder, or expecting it to vanish from everywhere. Either way you’re going to have a huge number of users who either can’t delete or are accidentally deleting, which was a much bigger problem than calling them ’labels’ and teaching them about multiple-inclusion..