I've tried this before, failed before. Many others have tried too, failed too. I think the number one lesson I learnt from failing is: take one piece, and do it well.
That said, where to start? I seem to own more computers now than I did, in various form-factors. There's various information I want to keep in sync between them, just as a matter of personal information management. There are a variety of solutions on offer, but they mostly involve connecting to an external website. With the existence of distributed version control systems, this isn't necessary, but it does remain a question of making distributed version control trivially easy to use.
Having such thing, my next thought would be that there are some things I also want to share with my friends. Via the internet if that is convenient, by ad-hoc local network if that is convenient, and there may be things I don't want to pass through the internet ever.
Suddenly we are talking social network, and suddenly we are up against the social smarts of Facebook, the technical smarts of google+, the ability to instantly deploy a new version of the software that every website has.
Can we imagine an ecosystem of software, protocols, people and businesses that could compete?
This system will probably have some centralized servers, run by a competing gaggle of entrepreneurs. An always connected node to be your agent while you are offline. You may well pay for this service (presently your social network extracts value from you by various other means, you are the commodity that is sold). But it won't have central control. So there is a question of how to push out software updates.
And there's a question of who sets the rules of interaction -- if you've not noticed how brilliant Facebook is at this, you've not been paying attention. Super-star protocol engineers, the people who design the rules of social interaction will have to be recognised geniuses, with cults of personality on par with the rockstar game programmers of today. It needs to be an ecosystem of protocols. We're talking a restricted execution environment with very fine grained control over what software can access what data. Android has taken some promising steps in this direction. Beyond technical restriction of software, we need some sort of code review. Trusted, trademarked code reviewers, so you can tell your grandma "trust this symbol" and she'll be safe.
Because lesson two of failure (hello Jabber) is: it can't be static. If you stay still, you will turn into a ghetto and die.
It's a new world. The battle for the desktop rages on, but matters less and less.
A desktop is just there to run your browser.
The bars of the cage are now, ironically, servers running on free software.
With these new mobile devices, I feel like a punter running DOS again, mail-ordering shareware,
seeing hints of a stranger freer world than I imagined and here we go again,