With todays constant traveling as well as the number of computers the average developer/computer user has, I'm supprised we haven't found a better way to integrate multiple computers as one.
In comes Cloud Computing, where your software is all located in the cloud, that's fine and great but we're still in the old age of working on one computer at a time. Let's say you have a Desktop computer at home, a laptop computer, and a computer at work, now if all these computers can start working in unison, we can do things like tell the laptop to broadcast it's location to your desktop, and if your laptop leaves where the desktop is, have it ask you if you'd like to continue working on what you were, or simply allow that laptop to be an "extension" of your current computer desktop, and literally DRAG your program that you're currently using onto that desktop, now you already have your environment open running and no more "save, shutdown, open wait" business.
Since all the data is stored in the cloud (and I'll assume autosaving is occuring), simply treating each computer as an extension of another we can seamlessly move what we're working on from one computer to another.
So right now linux has the neat function of "multiple desktops" why not setup each desktop as a vnc or something connection, so if we say "send to desktop x" it literally moves the program off your computer (passes off the processing) and into the next desktop (aka computer), now you can access each desktop from each computer, and move from device to device.
Why would we want this, lets say I'm deep into a project and want to continue as I'm on my way to work (say I use the bus), so I drag the program to the new desktop and walk away, I could maybe have things setup to shut down (obviously completely customizable), now I'm on my way to work and keep working on the project, I get to work and transfer directly to my desktop and continue as I finish, now I don't have to worry about closing the program and keeping on re-opening (waiting for programs to load).
What would be interesting if is if processors would continue processing what they are able to, but search for other processors (not on their board), once they find one, they communicate and setup shared processing (heck why waste cycles), now that it's sharing the processing, moving a program from one desktop should be nothing to do.