Gentle colleagues

It has gradually become clear that the GHC and Hugs developers
(mostly, but not entirely, at Microsoft Research and OGI) have
become a bottleneck when it comes to discussing and refining
proposals for enhancements to GHC, Hugs, and (soon, soon) the
glorious combination thereof.  I'm thinking of language enhancements,
yes, but also lots of annoying, detailed things: omissions in libraries,
new libraries, differences between GHC and Hugs, defining
__HASKELL_98__ as a cpp macro, and so on, and so on, and so on.

This message makes a proposal for opening the process up.

The problem (*caricature*)
~~~~~~~~~~~
Users-eye view: I send in well-thought-out suggestions for things
that would make Hugs and/or GHC much more useful to me, and they
seem to vanish into a black hole.

Developers-eye view: I get bombarded with suggestions for enhancements,
some well thought out, some much less so.  I have little idea about how
important each suggestion is to the originator, and even less about how
important it is to others.  The process of turning the suggestion into
a detailed specification seems easy but often isn't. 

Proposal
~~~~~~~~
Let's open up the process of 
        identifying
        refining
        prioritising
proposed enhancements to Hugs and/or GHC, to give a much wider audience
the opportunity to contribute.  Some kind of publicly-accessible web
page giving the state of play on each proposal, its specification, its
priority, and so on.

The idea is that this wish-list would express
the wishes and priorities of the Hugs/GHC *users*, not the developers.
The developers (of whom I'm one), for their part, do not guarantee to
take the wish list as an exact prescription of what to do next
(i.e. no blank cheques), but do undertake to take it very seriously.  
After all, we want users!

Mark's message of a few weeks ago mentioned that not all that many
people contribute to the code base.   One reason for that is that 
the code base is pretty daunting.  With a bit of luck, a public 
wish list will
        a) give people a chance to contribute (by writing a library
           specification, for example) without having to become a 
           heavy hacker
        b) make it easy for people who would like to contribute some
           code, to find a tractable task (e.g. write a library) whose
           usefulness and specification is agreed

Managing the process
~~~~~~~~~~~~~~~~~~~~
Such a process doesn't happen all by itself; it needs a moderator to
keep it coherent.  Sven Panne has very generously agreed to play this
role.  In my view, he's ideal: he is mainly a user of the Hugs/GHC
technology, and thus well-placed to articulate the user-community position,
but he's also very knowledgeable about the implementations,
which helps a lot in categorising and refining proposals.

Focus
~~~~~
The focus, at least initially, is just the Hugs and GHC implementations
including their libraries.  We are not trying to hijack the (as yet
nascent) Haskell 2 process. 

What next?
~~~~~~~~~~
Assuming that people generally think this is a good idea (and I'd
be surprised if not), the next thing to do is to refine exactly how
to structure the wish list, how to contribute to it, and so on.
For example we should clearly separate "big wishes" (e.g. add arrows)
from "little wishes" (e.g. add Ord ThreadId).  Another example:
any wish except a tiny one needs a specification, which someone 
has to write; we need a mechanism for getting it written.  Another
question: should we use the Haskell mailing list for this purpose,
or start another?

In the end, all of these things are up to Sven, but he will doubtless
want to consult us.  My own view is that he should operate in Benevolent
Dictator mode (i.e. consult widely, but then just decide something).  He's
taking on a significant task here, and we should support him in it.

Over to you, Sven!

Simon


Reply via email to