Futurists tend to see gadgets and computers as assistants to our lives, but they're still just tools. I think we're close, we just need to combine some technologies that already exist and add a little context.
But what's really the problem?
Here we are, in the future, and boy is it overwhelming. I have a phone with several hundred "apps", about 400 websites I care about, a desktop at home and a laptop for work, a tablet, and maybe someday I'll have some Google glasses. Do I need all of this? Probably not, but it makes for some easy context. I use each device for different purposes, but what if my devices were more aware of what I was doing?
I imagine it won't be too long before the number of devices we have is cut down, especially when something the size of a watch will be more than enough power to do most of what I need to do, even if we can't yet imagine what the interfaces will be- but there are hints. My Android phone has a Car Mode. When I dock my phone in in my car, a new UI comes up that gives me only the things that I'll care about in a car.
Android Car Mode
The Cius concept tablet by Cisco is another great example. The device can present different UIs and prompt different apps based on whether it is plugged into your office phone dock or not.
But we can do better than just docks and plugs. Our phones, increasingly, know where we are with alarming accuracy. Your phone knows what networks you're near, probably know the ambient temperature, could check noise levels, and all sorts of other things. All of these things could hint at context.
Our phone should try to use this information to make an educated guess at what we're up or where we're at. Are we in the kitchen? Great, let's promote memos, todos, and shopping list, and recipe apps and webpages. Let's show a family-calendar widget. Maybe it should do a quick check to see we might have expired food from the last shopping trip.
Another context could be the livingroom or den, where we'll promote tv listing bookmarks, our remote control app, and other apps and webpages that we or the app/page author have tagged as #living/den.
Ok, now I'm at work. On this context, I've put my work calendar widget, email, task managers, and quick search for contacts. Oh wait, it's kind of echoey in here, wireless conectivity strength went down a bit, maybe we're in the office bathroom; time for games and email - hold my calls, please.
Back at my desk, I plug my phone into my dock, and now it's my work computer, complete with screen, keyboard, and mouse, and if I want to work in the lobby to get a bit of sunshine, I'll plug it into my clamshell laptop. In these contexts, my phone acts like a PC, and effectively is one.
But what if my phone guesses the wrong context, or I want to play a game while I'm in the kitchen waiting for the oven to pre-heat? No problem, just manually switch contexts just like you'd manually switch to an app folder.
End users should be able to easily make their own context, edit existing ones, and share them with friends and co-workers. If I download a shared context, and I don't have some of the widgets and apps listed, I can substitute my own, or click on the placeholders to go to the market or app store to buy and download it.
More advanced context authors should be able to completely skin the interface and tweak the sensor hinting settings to provide a highly customized and accurate experience. App and webapp authors as well as app stores will enjoy that users are essentially recommending apps and services to eachother by sharing these contexts.
Hardware has gotten good, but is it that good? In short yes, but we'll need some help. Look at the Apple Thunderbolt Display.
Apple Thunderbolt Display
The Thunderbolt port essentially extends the bus of the computer to add capabilities. This is fairly subtle in their current use of adding ethernet, soundcard, and an extra usb host - that could essentially be done with a USB hub and internally attached devices, but we could take it farther. Our phone just isn't going to have the graphics capabilities to drive a 27" display at decent resolution. Our dock devices (the laptop clamshell, and the PC) could have their own graphics hardware, and even RAM to extend the capabilities of the device.
The Asus Transformer is another a good example. It overcomes the obvious limitations of this kind of device: the battery. The tablet itself gets pretty decent battery life, but it gets even longer when you're plugged into the keyboard.
Asus Transformer Prime
In my previous examples, our phone in the laptop clamshell could have extra battery, the desktop dock is probably plugged in and could charge as well, and other docks around the house.
Not much, and I think it's going to happen soon. Software and marketing are the biggest barriers. Someone will have to have an open-enough technology stack for users to feel comfortable with just one device. The software will need to be able to operate in a wide variety of modes with a wide variety of inputs. Users are going to have be given a device that they can feel is an extension of themselves - they're really going to invest a lot of themselves into this one device, so it'll have to be rock solid and capable with no compromises. All of these things are doable.
We're very, very close.