
As requested, I continue here the thread on the proposal for a web forum. You will soon enough find out what I think of web forums. Let me first show you what this mailing list looks like to me using software of my choice: ! [ 192: Mark Carroll ] [Haskell-cafe] Card trick ! [ 37: Thomas Conway ] Re: [Haskell-cafe] How can we detect and fix E [ 19: Albert Lai ] Re: [Haskell-cafe] Either e Monad E [ 19: Deokhwan Kim ] [ 62: Bas van Dijk ] E [ 47: apfelmus@quantentunn] [Haskell-cafe] Re: Optimization problem [ 51: Ross Paterson ] E [ 42: Conor McBride ] [ 56: Robert Dockins ] [ 42: Conor McBride ] [ 61: apfelmus@quantentunn] [Haskell-cafe] Re: Optimization prob [ 14: Ross Paterson ] [ 154: Jan-Willem Maessen ] Re: [Haskell-cafe] Traversing a graph in STM [ 52: Josef Svenningsson ] [ 18: Bulat Ziganshin ] Re[2]: [Haskell-cafe] Traversing a graph [ 26: Sebastian Sylvan ] [ 22: Ashley Yakeley ] [Haskell-cafe] Re: Wiki contact An elaboration of the cool features I have always enjoyed is in order: On browsing threads, both inter-thread jumps and intra-thread navigation, the screenshot speaks for itself. (If for any perverted reason I want the messages listed chronologically rather than well-organized, the software can do it too.) The messages marked with "E" are messages I have just read. With this mark, they will not show up next time I browse this mailing list again. Take note that I can mark and unmark any subset of messages, unlike certain people's linear-time idea that one single timestamp distinguishes "already read" from "new" across the board. (I have always heard that non-linear thinking is superior to linear thinking. I think I believe it for at least this application.) (Is this an example of what is meant when someone said that a web forum requires "less technical knowledge", i.e., programmers on a web forum will not need to know about subsets?) (Speaking of which, is the thread-browsing part also an example, i.e., programmers on a web forum will not need to know about trees and forests?) Though the marked messages will not show up next time, they are not thrown away yet. They are kept on my disk for quite a while. (I get to set how many days they stay.) The software offers several ways to show them, but I think the most useful one is this. Suppose I look at apfelmus's message on "Optimization problem" (two are shown, I'm referring to the first one), and wonder, "gee, what is it replying to?" To find out, I position myself to that message, then press a button, then the software will show the desired parent message. In fact, the updated screen looks like this (I just include the thread in question): E [ 18: Ross Paterson ] Re: [Haskell-cafe] Re: Optimization problem E [ 47: apfelmus@quantentunn] [ 51: Ross Paterson ] E [ 42: Conor McBride ] [ 56: Robert Dockins ] [ 42: Conor McBride ] [ 61: apfelmus@quantentunn] [Haskell-cafe] Re: Optimizatio [ 14: Ross Paterson ] So even if apfelmus's message quotes nothing from Ross's, I can still find out, provided it is recently enough to be still on my disk. Take note that, on a linear-thinking web forum, there could be any number of intervening messages in the same thread between Ross's and apfelmus's, and even though it is true that Ross's is immortalized in the database of the forum, the real question is how to fish for it. (ObRant again about how web forums are "friendly" to "programmers" who have no clue about trees.) Here is a feature unrelated to threading, and in fact it is much more fundamental and pervasive (since almost all email software, not just mine, provides this), and in fact it has much to do with pervasive computing too. Here in Canada, in cafes one can get wireless Internet access, but it has to be paid by the minutes. So suppose I want to visit haskell-cafe when I visit a Starbucks cafe, and there are 30 messages I want to read, and I can read them at the rate of half a minute per message. If haskell-cafe were on a web forum, I would end up keeping my wireless connection for 15 minutes. (Could I disconnect and reconnect between messages? First of all that's really a pain. Secondly, let's say I do that, the billing is still such that I connect for 2 seconds and I'm still charged for 1 minute.) But since haskell-cafe is on a mailing list, I can just connect for a few seconds to download the messages, then disconnect and read offline; I'm charged for at most 1 minute. (Alternatively but equivalently, suppose I want to read haskell-cafe while riding subway - underground trains. Here in Toronto the subway doesn't provide wireless Internet access yet, and probably won't for another decade. If haskell-cafe were on a web forum, I'd be SOL. But since it is on a mailing list, I can pull the same trick as above.) If you can find a single implementation of web forums that provides the features I have always taken for granted... but wait, there is one more feature, actually it's a meta-feature, a principle, a belief of mine. I am an individualist and non-conformist. I believe in each individual choosing and customizing his/her software and human-computer interface. There must be a common protocol for the exchange of content and meta-data, of course, but that should be where the commonality ends. How this content is presented to me, how I navigate and manipulate this content, what human-computer interface I use, and whose software I use, should be entirely up to me. The very idea of a web forum is an antithesis to this. In practice, because a web forum has to include some human-computer interface, and because someone has to write code for that, and because that "someone" is at best a few people with only a few hours per week for this, the web forum is forced to include little or no choice in its human-computer interface and its expressive power. And since you always have to worry about members who "have less technical knowledge such as professional programmers who don't understand trees and subsets", its expressive power cannot be too great, and so the mandatory web interface must suck. In other words, in theory you can always say "let's code up a superior, even diverse, web forum", but in practice who's going to do that? In contrast, superior software for mailing lists and newsgroups already exist, and if you have Mozilla or Thunderbird or Evolution or Outlook Express, you probably already have decent or half-decent such software. So let me make a daring counter-proposal. We go back to newsgroups. We set up our own news server for this; use just one server so everyone is always synced to it, and we do not pose a heavy load on it by today's standard anyway. Here are the benefits. First and foremost, all my favourite features are provided. (I'm allowed to be a bit self-centred for just a little while, ain't I? :) ) Everyone can use his/her favourite software. For example Mozilla can do newsgroups and news servers, and everyone knows how to use Mozilla, and if someone doesn't yet, the GUI is easy to pick up. It's a no-brainer. Normally news servers are set up to throw away old messages, but we can tell ours to keep everything forever. You can always consult the server for old messages for context or archaeology, in case you don't keep local copies of your own. Your favourite software can search. There may even be a way to get Google and other search engines to do the search. There is a valid concern raised about the ritual overhead on the part of a new member in subscribing and unsubscribing to a multitude of mailing lists, and it is suggested that a web forum mitigates this. A web forum mitigates this by requiring just one registration and you can subsequently post in any sub-forum. The newsgroup way answers this beautifully: it is the same number of registration and you can subsequently post in any newsgroup. Last but not least, for those who are excited about the very idea of a one-size-fits-all web interface: we can put up a web interface as a front-end to the news server too! As programmers, we are very individualist about programming environments: we like to pick our own editors, colours, key bindings... Actually we don't mind all sorts of compromises on those fronts, but here is one thing all of us insist: we require our code repository to be highly concurrent and distributed. We expect to work offline. In light of this, I find it rather odd that a programmer would propose the exact opposite for our discussion repository - a web forum, which not only superficially limits customizations (which, like I said, we can live with), but also fundamentally expects us to work online. More ironically, highly concurrent distributed discussion repositories have always existed, and they are now dismissed under the false impression of "hard to use". (They are certainly easier to use than highly concurrent distributed code repositories, since you post new messages rather than mutate existing messages, and so there is no need to learn about conflicts, merging, forking, and all that.) It makes me wonder: what's next, are we going to move our IDEs to the web too, and henceforth must we debug our code through the web?