State. Big issue. Wave is teh shared state. Shared state = anti-scale.
Some of the most successful collaborative processes in the world, music, the blogosphere, and Linux, are completely shared-nothing.
- When Bob Dylan changes an old folk song, his changes don't somehow magically rewrite existing prints of the song in textbooks. Instead, Bob commits his changes to the world through his albums and concerts, and if interesting, the changes will be included in the canon by Bob's social network.
- Bloggers don't edit each others' posts. They write their ideas on their own blog, and through various orthogonal flows, these ideas do or don't end up in interesting places, and feed back to their authors.
- When somebody develops a patch for the Linux kernel, he doesn't go ahead and edit Linus' code repository. The patch is sent to the LKML for discussion, and eventually included by Linus or other upstream people (or not).
1. Every participant has his own state, completely separate from others' states.
2. Changes to somebody else's state go through an orthogonal, social channel, that enforces authority.
Google Wave has neither of these properties. In Wave, all participants edit the same state, and authority to change something is not a social, but an administrative property (i.e. if you're in the ACL you can do it, without community moderation).
(Rohit Khare, whose writings are among the most inspiring in all of the intarwebs, has identified latency and agency as the two fundamental forces in internetworking. IMO, Wave takes a worst-of-class approach to dealing with both of these forces: Wave's user experience depends on low latency, and Wave's model of agency is simply boring, as shown in this post.)