#1 GoDaddy.com - Home of the $1.99 domain name

Google Wave is like a dream come true

That's not an exaggeration. As early as 2002 and possibly earlier, I have been frustrated with the web. That might sound even more silly, but it's true. You see, I like simple solutions. It made no sense to me that we would have blogs, forums, email, instant messaging and every other imaginable form of communication each implemented in a completely different way, with clumsy interfaces between them (email me when a forum post is responded to, email me when I'm not on IM, see your latest post in an RSS reader and then reply to your blog post via a web page, etc.) when they all shared so much in common. A message has a subject, body, timestamp, an author and recipients, and possibly a parent message and child messages. Tags and other bits can hang off the message object. It's simple really, but made infinitely more complicated when created, stored and broadcast in proprietary "silos" of information and different protocols that don't talk to each other.

It made me even more frustrated to have contact information flung wildly and haphazardly across all of those services as well (which is why I really think .tel is a cool solution). I even scoped out and worked on numerous thought experiments... some turning into code... others just keeping me up late at night... trying to solve these problems with simple solutions.

Then, while developing a video game in 2006, I came up with a new idea. It was more like a series of ideas really, one building on top of another. The result of that brainstorm was a concept called Friends Play Free. Now that project had a lot of pieces to it, but the part that's relevant here is that what we needed was to have an instant messaging platform and friends lists embedded into our video games. And the way this would be done was through the Jabber protocol (aka XMPP). I had heard of Jabber prior to that project but I really hadn't grokked it until 2006. And when one truly understands XMPP and what it can do (near real time communication), and yet how fundamentally simple it is (xml messages being sent over TCP) and extensible it is (the X in XMPP), you have a constant chill running down your back with the flow of ideas of how to use it. It was late that year that Google announced the opening up of Google Talk (based on XMPP) and the release of the Jingle spec (the ability to use XMPP to negotiate a peer to peer connection for real time voice and video) and it was all just coming together perfectly. XMPP was the perfect avenue for consolidating contacts, keeping up with the "presence" of each one so you knew who was online and where they were, and for subscribing to content that your contacts published in near real time (as real time as instant messages) without having to constantly poll RSS feeds. XMPP solved so many problems. But there was a problem.

XMPP was stuck in instant message land. Microsoft and Yahoo and Google, all talking different languages with barely passable interoperability. Contacts were just as scattered and hard to manage. Oh sure, enterprises were looking at how to incorporate instant messaging into their landscape, but that's largely failed to gain acceptance by users. Sure, there have been game engines built on XMPP and Jingle as their networking layer, which I'm glad to see happen. XMPP hasn't died, but it's been neglected. And eventually I moved on.

Then I saw the Wave video. Those crazy guys at Google had solved my biggest issue - message unification. If you haven't watched the video - a Wave is like an email message, a blog post, a forum topic, an instant message and a tweet all rolled into a universal message object. Waves are tree like in structure and so you can have threaded conversations inside Waves and Waves are essentially version controlled so you can have collaborative editing of a Wave just like it was a wiki or a whiteboard. When someone responds to your wave message, if you are online, you can see their reply to you instantly (down to the individual keystroke even). A unified inbox of messages, file and image sharing... it's all there. And their client app is an HTML 5 compliant web app that runs in multiple browsers already, not some proprietary Java client or something like Groove or other unified messaging platforms. Watch the video. This is like being there in 1994/95 when the web turned from text to graphics. Just watching the video made me as giddy as a school girl and it takes a lot to make me giddy any more.

Well into the video they mentioned that the Wave protocol was designed to be federated, just like email (and to a lesser extent instant messaging). Your company can have your own Wave Server and messages between employees in that company never leave your corporation's intranet... but then you can relay Waves in the same near real-time fashion to other users on other Wave servers. Google isn't forcing people or companies to use their servers at all. This is huge, but it's not a shock because Google has always been more open than companies like Microsoft. Where Groove failed was essentially having to have Groove in order to talk to people through Groove. Where Wave has at least the chance to succeed because there can exist multiple implementations of the protocol, a plethora or Wave servers and they can all interoperate in real time.

How did Google do it though? Well, I started digging into their docs that they've published and it really came as no surprise... Wave is based on XMPP. It looks like they've done a lot of extending but they're extending it the way XMPP was designed to be extended. That means that while libraries will need to include support for the Wave extensions, there are already tons of libraries, tools and knowledge that already exists for the building blocks that make Wave possible. They've built on the backs of a lot of hard work put into XMPP and that makes me very, very happy.

So where does that leave us? Well, I had hoped to have collaborative-tools.com ready to go today... but I've now wasted most of my day in a sort of euphoria and haven't had time to even incorporate all the cool stuff I had planned to do today let alone all of the new Wave content that I'm going to have to put on there now! I can't tell you how many times I heard the phrase "collaborative tools" today. I'm going to have to hold off on the launch of the site officially though for another day or two to get everything in that I wanted. I want to catch the Google Wave... wave... but that means having more ducks lined up then I had originally intended. Stay tuned though. I'll be updating and upgrading my plans for collaborative-tools.com as I foresee it getting a lot more attention from me and from other developers in the next 6 months. Exciting times, indeed.

A dream come true for me... but what about you? What do you all think of Wave? How are you planning to take advantage of it as a Domainer?

No comments:

Post a Comment