[Haskell-cafe] Re: Haskell web forum

Albert Lai trebla at vex.net
Thu Sep 21 04:55:00 EDT 2006

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 at quantentunn] [Haskell-cafe] Re: Optimization problem
       [  51: Ross Paterson       ]
E      [  42: Conor McBride       ]
           [  56: Robert Dockins      ]
               [  42: Conor McBride       ]
           [  61: apfelmus at 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

E  [  18: Ross Paterson       ] Re: [Haskell-cafe] Re: Optimization problem
E      [  47: apfelmus at quantentunn]
           [  51: Ross Paterson       ]
E          [  42: Conor McBride       ]
               [  56: Robert Dockins      ]
                   [  42: Conor McBride       ]
               [  61: apfelmus at 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

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

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?

More information about the Haskell-Cafe mailing list