I was listening to a
radio interview with Clay Shirky about his book, "
Here Comes Everybody: The Power of Organizing without Organization." The conversation was about "Web 2.0" and the collaborative nature of popular online applications like
Wikipedia. The author made the point that where previous IT efforts were along the lines of "let's create a huge new database from the ground up," the most successful projects of today start out very small but allow large numbers of people to contribute, so that the service/application improves bit by bit over time.
None of that's particularly new or interesting, but it made me think about how Wikipedia,
Twitter,
Craig's List, and the like (
1) are all quite different from most traditional desktop applications in function and (
2) have very different models for their content vs. their infrastructure.
(1): Traditional applications are about document recording, creation, and/or editing. This is true whether you're talking about word processors, spreadsheets, music composition applications, video recording and editing applications, or almost every other category you can think of.
The exceptions that prove the rule are email and instant messaging applications, but these have demonstrated almost no innovation for a decade and are rapidly being embedded into other products, whether hardware -- e.g. mobile devices -- or software -- e.g. FaceBook.
By contrast, Web 2.0 applications are almost all about information sharing and publication. The content is much more free form and is created much more quickly. The focus is not so much on the quality of that content per se, but simply on its existence, on distributing it as easily as possible, and often on its social significance. Tweeting or posting on Wikipedia is very different from drafting a chapter of a book in Microsoft Word, although all three involve typing.
The exception that proves the rule, in this case, is
Google Docs. These are, by all accounts, very cool. But they are more about cloning a pre-existing capability in a medium Google is comfortable with than about creating something totally new -- I think Google is still trying to figure out how to do that. In any case, I know a great many more users of FaceBook than I do of Google Docs.
(2): The content hosted by these applications can be incrementally increased and improved by a large community of users. But the actual software that runs these services -- the applications behind the applications, as it were -- are created in very traditional ways.
You're going to tell me that all of these collaborative applications are in fact based on
Linux and
Apache, which are indeed created by a large distributed community of users. But the hype of open source -- anyone can change anything! -- is belied by the reality that almost all packages have a single upstream maintainer, or a very small number, who act(s) as a gatekeeper for everyone else. These packages are then assembled into distributions by large, traditional enterprises like Novell, Red Hat, IBM, and the like.
What I'm getting at is this half-baked idea: what if we could build software the way we build content? What if I could add a tiny feature to a piece of software as easily as I can add a paragraph to a Wikipedia article, so that all of the applications I use every day get better day by day through the efforts of other users? No one knows how to do that today, and I certainly don't have any answers. The isolation between pieces of software is too poor today to keep one thing from breaking another. But I like the idea; I'll keep thinking about it. Web 3.0, anyone?
One more exception: FaceBook applications (or SalesForce applications, for that matter). Anyone can write one and add it to the platform. But while these applications decorate the platform, they don't modify that platform or interact with one another to achieve any kind of synergy. The best is yet to come.