Standard Haskell
================

You may well know already that there was a lively discussion at the Haskell
Workshop in Amsterdam this year about the future of the language. To
summarise, despite the useful extensions in versions 1.3 and 1.4, many people
feel quite serious concern about the recent development of the language.

* The definition has been changing too often, making it hard for students,
  teachers, and other users to keep up. Anyone making a big investment in 
  Haskell needs to know the language will be stable.

* The language has become more complex, making it difficult for beginners to
  master, and thereby less suitable for teaching.

* It is acquiring traps for the unwary --- apparently simple programs which
  fail in unexpected ways, with error messages referring to concepts beyond
  the beginner's grasp.

In response, it was proposed that Haskell be fixed --- permanently. The fixed
language will be called `Standard Haskell', and so there will be no Haskell
1.5, 1.6, etc. Authors will be able to write text-books, and users will be
able to develop software, without fearing that next year's revision might make
their work obsolete. Of course the development of Haskell-like languages will
continue, no doubt Haskell compilers will continue to offer extensions, and in
time new common languages will be designed, perhaps closely based on
Haskell. But these languages will have different names, and `Standard Haskell'
will continue to be a stable design that will become obsolete when its users
decide it should, rather than when the implementors or the Haskell committee
decide to make a change.

I know this is a somewhat controversial decision --- some would rather the
standard was regularly updated to take account of the latest developments. I
can only say that there was very strong support for it at the Haskell
workshop, and I hope the process will have the general support of the Haskell
community.

It was decided to make one last revision of the language before fixing it,
primarily to address the second and third points above. The goal of this last
revision is therefore not to add new facilities, but to simplify the design
where it can be simplified, and to try to remove the traps. It's a revision to
meet the needs of the naive user (without of course losing power that the
expert needs). Somewhat to my surprise, I was delegated to chair the committee
that will make the revision.

Now that the holiday period is over, work on the new revision will begin in
earnest. To date the `Standard Haskell' committee has been formed, and some
discussion has started. You can see the discussion on the web at

        http://www.cs.chalmers.se/~rjmh/Haskell/

Contributions to the discussion can only be made by committee members (to try
and keep it manageable); if you want to make a suggestion please do so via an
appropriate committee member.

I want to keep the committee fairly small so that it's possible to reach
agreement, *but* I would very much like a serious Haskell user on the
committee --- someone who's interest is not so much in Haskell per se, as in
an application of (ideally) many tens of thousands of lines. I don't yet have
such a person. So if you fall in that category, and you would be willing to
help, please contact me!

John Hughes



Reply via email to