{December 26, 2010} Activity-oriented vs Application-oriented workspaces

I don’t normally comment on other people’s software… but… a little while ago, opensuse was wondering whether KDE apps would work with these Gnome Shell requirements. Last time I checked, their “Activities” sounded like virtual desktops, but now they’ve returned to an application-based shell. This in sharp contrast to Plasma Desktop’s increasingly Activity-oriented workspace.

So what does that mean? Well, in gnome-shell, windows are organized by application – by the binary that spawns them. All your firefox windows are grouped together, all your okular windows grouped together, etc. You can still group windows on virtual desktops, but alt-tab is application-based, so as soon as you’ve got more windows than screen space you may as well have everything on one desktop.

In plasma-desktop, windows are organized by activity. This requires a bit of work on the user’s behalf (creating and switching between activities), but I have all windows for my odfkit work grouped together, all school windows grouped together, etc.

Obviously I think my way is better :) but I do have reasons for this, and I think it’s worth sharing them. I think that grouping by application is.. well, application-centric, application-developer-centric. It puts the branded applications – Firefox, Okular, etc. – front and center. This is easy to implement, and great for app devs’ egos, but I don’t think it serves the user very well. Why should they care that pdfs are opened in Okular, but jpegs are in Gwenview? (especially when some pdfs are just glorified images…)

Grouping by activity, in the KDE sense, is fundamentally user-centric. It puts the activity the user is doing – researching a paper, working on a project, reading comics, etc – first. The applications used to accomplish this activity are incidental, mere implementation details. The user might not even know their names, referring to them as “the web browser” or “the news reader”.

I’m a little doubtful about the gnome-shell assumption that applications shouldn’t be run more than once, too – but then, I’ve stopped using regular app launchers at all. These days I type stuff into krunner, usually a url… or dolphin, if I want to find a file… or I click links. I’ve set konqueror to open links in new windows, because activities make tabs almost obsolete. :) My regular apps stay open all the time – well, so long as that activity is open. :) Organizing my windows this way is *so* much nicer, I think I’d already go nuts if I had to give up using activities…

Anyways, since gnome’s choices seemed like big mistakes to me, I decided it would be polite to actually talk to them instead of just ranting in a blog. ;) I visited their irc channel for a few days, and although I don’t think I found any of the core gnome-shell people, I did find some people who were able to explain their motivation.

Apparently, they wanted to solve the problem of applications being started more than once when they’re not designed to. They do have their own gobject equivalent to KUniqueApplication, GApplication, but not all apps use it, so they’ve still got some apps where it’s possible to have two instances and Bad Things happen. So, they decided to solve it at the shell level by not launching more than one.

After doing my poll, this doesn’t sound quite so crazy; there *are* a lot of apps people only have open once. However, nearly everyone has that one app that they want two of… and in gnome-shell it’s up to the application to offer a way to do that.

Anyways, it may have been this one little decision that shaped the whole shell. Once applications were assumed to be unique, then switching windows *is* switching applications, and an application-oriented shell is the natural conclusion.

Also, I was wrong about them calling applications activities. They’re not calling anything activities, really. :) Their overview screen (a concept we toyed with in plasma actually) was called “Activities Overview” because activities means “what you are currently doing” – and then the string was too long for the UI, so they shortened it to “Activities”. I wish they’d shortened it to “Overview” instead – it would have saved a lot of confusion. :)

So… in the end, I still disagree with gnome-shell’s design, but I think I understand how they got there. It’ll be interesting to see how it’s received when it’s released, and how it evolves from there. After all, the world would be a pretty boring place if we all made the same decisions. :)