Syntax Extensions (and future Haskell)

b.i.mills at massey.ac.nz b.i.mills at massey.ac.nz
Thu Sep 18 10:05:03 EDT 2003


Although a number of comments in this discussion make some sense,
I personally am getting worried about the direction that it is taking.
I have been a (fairly quiet) Haskell user for some time. I like it
because of the strong connection to standard mathematical constructs,
and the dedication to equational reasoning. I was dubious when Monads
were introduced, but grew to be comfortable with that as an approach
to embedding temporal characteristics, I try not to use do, I like the
fact that I don't have to. But, recent developments on this list suggest 
that this is all going to be a thing of the past. There is a real danger 
that Haskell will just turn into yet another procedural language.

Firstly I want to bring into the open something that you would all be
aware of. It is possible to change any typical procedural imperative
language into a functional language by a change of point of view. 
All you do is just state that each command in the imperative is a 
function that operates on the state of the machine. The entire program
becomes a composition of these functions. Control statements such as
for-do-while-until-repeat-if, simply become higher order functions.
That's why the monad stuff works, all it does is demand that you 
explicitly admit to the passing of the state.

If you keep going the way you are going you will simply turn
Haskell into a procedural language with some snazzy data-types.
It would survive, perhaps, but in name only.

The importance of Haskell is not that it is Functional, this is
in reality just a technicality of point of view, the importance
of Haskell is the WAY in which it is functional, the emphasis
it puts on the manner in which the total function is decomposed.
It is important not simply that Haskell admits equational reasoning,
but that it is equational reasoning that a human can do, not something
that requires a heavy duty code transformer to work out.

At least this is how I see it, perhaps this is simply the
point at which Haskell and I part company?

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.

I'll get off my soap box now.

Regards,

Bruce.

-------------------------------------------------------------------------
Institute for Information and Mathematical Sciences
Massey University at Albany,
email: B.I.Mills at massey.ac.nz
web: http://www.massey.ac.nz/~bimills
-------------------------------------------------------------------------



More information about the Haskell mailing list