I've been reading around the blogosphere about activities in both KDE Plasma and the upcoming GNOME Shell. There's an unfortunate thing at play here: Plasma and GNOME Shell use the word differently. Yes, it's the same spelling and pronunciation and, worst of all, they are used to describe something in the same area of the interface (the desktop shell), but they aren't used to describe the same thing.
In GNOME Shell an "activity" is a virtual desktop, the same thing we've all come to know and love since X got support for them in 1989 based on work done earlier at Xerox PARC. Virtual desktops rock, and GNOME Shell has added an enforced overview (with +/- buttons to easily add and remove virtual desktops, something also in KWin these days) along with an integrated application and document launcher sidebar to the idea. They call this "activities" in an attempt to make the abstract and geekish "virtual desktops" more approachable to people. It is not, however, what most humans would call an activity in every day conversation. It's just a more recognizable name for an old concept that they gave some polish.
In KDE software, an "activity" is actually much closer to what we'd call an activity in the real world: it's a collection of tools with a task based theme. What the theme is remains up to the person using the computer; Plasma just provides an interface with which to create an activity and start defining what belongs to it.
The concept of activities in KDE software is not limited to Plasma, however, as activities are in GNOME Shell. KDE's activities are orchestrated behind the scenes, transparently to the user, by Nepomuk. Other applications can hook into this information and adjust their presentation accordingly. For instance, KWin recently gained support to not only hide and show windows associated with a given activity, but also to stop and start applications using session management. This means that when I switch to my "personal coding project" activity, I get a Kate window with the files loaded in it that I was last editing related to that activity.
Any application can talk to Nepomuk and get notified of activity changes or even create new activities. The idea is to create a task centric workflow allowing one person to use the same laptop or desktop system for multiple (potentially very different) tasks, keeping each one out of the way of the other.
Virtual desktops are really not particularly related to this concept at all, as should be fairly obvious. It's unfortunate that GNOME Shell developers decided to use the same word we are using for something so very different. Ah, well.
In Plasma Mobile and Netbook, we also have activities though they are slightly different beasts. Here they are sets of mini-tools and related applications. So using Plasma Mobile, there are different activities for different common tasks on such a device, such as communication (e.g. "making a phone call") and playing games. When switching between these activities, different sets of home screen applications and tools are presented and run (user customizable, of course).
Again, no relationship between virtual desktops and activities there, where activities map directly to "what I am doing with this device".
It is completely possible to use virtual desktops as a way to separate tasks into similar activity sets. However, it doesn't map very nicely to common use cases such as "I always have my email client (perhaps also always on desktop 4) regardless of what I'm working on". In such (rather common) cases, it becomes clear that virtual desktops and activities (as used in KDE software) are orthogonal, though they can be used as complimentary tools.
Using virtual desktops also doesn't give the applications any useful information as to what to do about the information inside of them. Being on virtual desktop 4 doesn't give KMail, for instance, any information as to what email accounts to start checking automatically. Knowing that the current activity is "Office" does, though.
One of the downsides of taking the approach we are in Plasma is that it is a new set of ideas. There is nothing pre-existing for infrastructure (e.g. we had to create all of the Nepomuk management and application notification from scratch) and we don't have the luxury of looking at other mature systems from which to copy when it comes to things like "what is the best way to switch between system-wide activities?" This means it is more work and a slower path to final results. We feel, however, that it is a slightly more interesting result, in terms of providing a new set of tools that address hard real world challenges in modern computer usage, than creating a full screen virtual desktop pager with integrated app launcher.
As activities take more and more defined shape and become more solid in KDE's Plasma workspaces, it will probably be wise for us to communicate clearly and simply what they really are and how to use them.
Otherwise people will confuse "activities" for "activities" and perhaps even miss out on this next generation of tools without ever understanding what they are missing.