Some days ago, Richard Kulisz published an article on meta-leveling. Since at that time I've had the state of current communcation technology on my mind anyways, I decided to post a small analysis on this blog. Designing a concrete new model is left as an exercise for the reader.
Forums and Newsgroups
There are mailing lists, web forums and newsgroups[1]. One uses email, the second a web browser and the third a newsreader client.
Mail is very low-level. Thus, mailing lists don't allow categorization/grouping and there is no archive per se. The last point has long been addressed, but is an obvious hack. While the interface to different mailing lists is unified, this is not case for mailing list archives. Even the archive of a certain mailing list has to be accessed via a completely different one[2]. The fact that categorization is impossible leads to the often observed solution of creating several lists, each addressing a specific category (bugs, users, developers, etc).
Forums on the other hand allow categorization and present the whole archive using the same interface. The problem: that interface completely sucks[3]. Every forum has another one and it's impossible to access multiple forums using the same interface.
Yes, this is something newsgroups got right[4]. But categorization is hierarchical in both cases, something that should nowadays at least be questioned thoroughly.
Abstracting from some conrete properties, we can conclude that the only difference is that mailing lists are "push" but the other two technologies "pull". Strictly pushing updates implies that the whole data set has to be transferred -- you can't pull by definition. On the other hand, pulling updates allows individual selection of elements from the data set.
Newsfeeds
As you might have noticed, I'm currently developing a news aggregator. So I've been working with the technology of newsfeeds (RSS specifically). It's emberassing that it took me so long, but after about one week my subconscious has brought this issue to the meta-level.
A newsfeed provides a asynchronous simplex communication channel from N authors to M readers. Since the newsfeed technology also uses by definition a central access point there are practically two seperate communication channels, one N:1 and the other 1:M.
Now let's pretend this communcation was synchronous. So when a news item gets posted, the readers directly receive them. Now replace "news item" with "email" and "posted" with "sent", and you get the point. Using the same argumentation, the set of readers can also be viewed as subscribers to a specially moderated mailing list.
So the only difference in email and newsfeeds seems to be the method of communcation (push vs. pull) and the fact that their narrow, non-extensible sets of attributes overlap only partially.
Instant Messaging
Some people might think that instant and non-instant messaging are conceptually similar. If this were the case, we could just conclude that the concepts of email and instant messaging are the same on the meta-level (like in the sections above).
These thoughts seem popular and recently even Facebook redesigned their communication system that way. However, many users complained.
After some thoughts it should be clear that instant messages and email are different concepts. Instant messaging provides direct/interactive, informal chatting. Mail, however, is more formal and indirect/non-interactive[5]. There are different use cases for why to pick one over another.
Facebook had it right before. Chats and messages were clearly divided, but tightly integrated. This was, in fact, even more conceptually sound than most of the "real" instant messaging systems that include non-instant messaging as well.
Conclusion
Is it necessary to have very different technologies just because we sometime want it to be synchronous, and sometimes asynchronous? I don't think so. We could save half the effort by using synchronous protocols in combination with a proxy[6][7].
It should be clear that I'm not arguing for replacing all this technology by email. Okay, maybe I am. As long as we're using rudimentary operating systems, maybe we should use rudimentary technology, too, iff this allows us to leverage a larger part of the OS.
But this is backwards!
In Richard's view meta-leveling is a skill that is lacking in most programmers. I'm not sure about this. What I'm sure about is that meta-leveling is far not used enough. If it was used more thoroughly, computing would be much more elegant and powerful.
- Nowadays, newsgroups are less often used. But they are (especially) useful when compared against web forums.
- This hack is necessary. You can imagine what would happen if users get send the whole archive after subscription.
- HTML interfaces so poorly with environment, web browser and user that honestly it shouldn't even qualify as an interface.
- In general this is, in fact, false if we strictly compare their feature set against the one of an average web forum.
- This can be seen especially well when comparing their means of file transmission. Instant messaging directly streams the data, email transfers it (usually indirect) as "a single piece".
- Compare to email, which is synchronous but almost every user fetches them asynchronously from their mail server, for example by using the program fetchmail.
- With a sufficiently central proxy, probably on the same machine that usually sends the data, fetching it will provide the same anonymity as current services (e.g., newsfeeds).
You might want to check out the archive of posts tagged "communication".