Predictions, the stuff fools are made of.
Recently a couple of events, web-based services, and old style thinking have come together in my mind in a way that makes me want to write about it and share. Being about the future of the internet and the applications we will see after this Web 2.0 craze subsides, well, it just makes it interesting.
The most important part of the Web 2.0 hype are the simple and universal APIs that most sites are deploying. The value in those APIs are the desktop applications that we can now build using them, and not the sites that we can mash-up together.
You see, I don't buy into two things:
- you want your data on the network;
- you want to use a browser as your primary interface.
I think what you really want is this:
- you want your data with you, when you need it;
- you want to have a integrated experience with your computer.
First, you want access to your data. The main pitch you see on Web apps now-a-days is access to your data everywhere. The point that they are trying to pass on to you is that if you put all your stuff online, you can jump online, and have it all. The key operating principle here is the "jump online". What if I cannot or I don't want to do that? Sure, you can get online on most of the world right now, but you might now want to do it, due to cost, security considerations, or other reasons.
I don't think that putting your data online is the total answer. My feeling is that the master repository of your stuff is your laptop. Maybe a future laptop without keyboard, or screen. Just storage and processing power, that you can hook up to public "screens and keyboards" everywhere. And in that situation what you really want is synchronization APIs. You want to synchronize your data with remote online services, because you want to share it with a closed group of people like your family, or publish it to the world at large.
So you would have it all with you. Maybe not all, given that each person data is growing to the multi-gigabyte size (my digital life fits in under 100 Gb right now, but that is excluding DVDs) but the working set that you need on any given point in time. And it would all sync with your preferred services online.
Second, you data is fragmented on the web. You have multiple "address-book-with-social-networking" services, but can you pull the network from LinkedIn and use it as a access control filter on Flickr? Heck, I can't even get a iCalendar file from Orkut with my friends birthdays, the last time I looked for it. The information is online, out there, but you cannot cross it in meaningful ways.
At least on my laptop, my address book is used by the email application, the instant messaging application and others. My calendar application can receive and aggregate events sent to me by mail or IM, and I can publish that information selectively. I can publish my photos to my family with something like photocast (excellent idea, botched up job on the implementation and lack of respect shown to the community) or Film Loops (another excellent idea that I still think lacks some touches, like accepting directly RSS feeds with enclosures).
That leads to my other point: browser based interfaces. The last year or so, we where blown away by the rich experiences provided by the latest in Web technologies. The three major webmail, our local Sapo Webmail, the 37Signals applications (no, I was not hired by them, it was a freaking joke, people!), or one of my latest favorites, Dabble (check the video). They are truly amazing and I bow to them, because I cannot imagine the amount of work behind each one, and dealing with the browser mess.
And it's only getting better. The WHAT-NG promises another leap in usability and richness of controls to our usual web browser.
Yet, I don't see any of those being better than a decent desktop with these features:
- a good quality graphical desktop, like Mac OS X, and the latest GNOME and KDE;
- a good productive application framework, like Cocoa. For example, for all of those RoR/Catalyst fans (like me) out there, see this demo of the CoreData framework;
- integration with my data: there is no single web application right now that can pull data from my local storage. For example, if I'm inside an web application and I need some contact information, there is no way to pull that from my address book, right now.
There are the some of the downsides of webapps, and I'm sure some of them will evolve and improve. But at the same time, so will the desktop.
In conclusion, it is my belief that the next jump will be made when the current APIs grow up, and start giving us support for synchronization and not storage/retrieval. The web-based services of the future will provide sharing points and views of our data, in some cases even up-datable.
That's the next step, the web 3.0 or whatever name it will be called. A sync heaven for desktop applications.