Syntax Extensions (and future Haskell)

nilsson at cs.yale.edu nilsson at cs.yale.edu
Wed Sep 17 18:44:56 EDT 2003


Bruce I. Mills wrote:

> I also don't see the point of the language configuration pragmas
> either. Uniformity is important. Instead of agreeing to disagree,
> and coming up with a rag-bag language, the points need to be nutted
> out until they make consistent sense. The pragmas do not represent
> any uniformity, they actually represent a schism, you can't agree
> so you are splitting the language into incompatible variants. It
> solve the political problem of in-fighting, but only by letting 
> the in-fighting destroy the language. It's the same sort of thing 
> that splits C++ into multiple camps, the same thing that gives the
> multiple levels of comments in comments for postscript, and so on.
> 
> Remember Flon's law. The fact that you CAN do something does not
> mean that it is a good idea.

You raise a number of important points, and basically I, and I think
most Haskeller's, agree with you: we would like to strive for uniformity.
But how does one get there, how does one agree on agreeing?

A large part of the answer, I think, is thorugh experiments, i.e.
experimental language features, trying to find good answers to questions
like what works, what doesn't, was it really worth the effort, and how does
the various faetures interact? And in order to find *good* answers to such
questions, one need to make use of these features in pretty serious projects,
which in turn implies that there has to be a reasonable way of enabling and
disabling them. And command line arguments just isn't a very good way of
doing that in practice.

A second answer two your concerns is that even in an ideal world,
I'd think we'd end up with two or three versions of the Haskell that needs
to be supported, just for legacy reasons, say Haskell 98, Haskell 98
with commonly accepted extensions, and somewhere down the road perhaps
Haskell mk II. It would be desirable for the various Haskell implementations
to support all of these to the extent possible, and again one would
need a way of specifying which, and again command line arguments are
arguably not the right way of doing that.

So, in my view, the idea of language pragmas is just a way to make what
we currently have work better and smoother in order to facilitate doing
real work with Haskell. Ultimately, the experience thus gathered will
enable better decisions to be taken regarding how Haskell should evolve,
hopefully eventually leading to a new, uniform base-line language
that everyone can agree upon. And then the process can start over again! ;-)

Best regards,

/Henrik

-- 
Henrik Nilsson
Yale University
Department of Computer Science
nilsson at cs.yale.edu


More information about the Haskell mailing list