Lennart Augustsson <[EMAIL PROTECTED]> wrote,
> "Ronald J. Legere" wrote:
>
> > Thanks that explaination was very very helpfull! (Also Martins comments).
> > One thing that I would like to understand is why so many of these
> > nonstandard extensions get used all the time. It is very hard to
> > find any application package that doesnt use some nonstandard
> > extensions. I find this a bit distrubing.
>
> I do to. Obviously these people are not writing Haskell
> programs. If you use non-standard extension it's not
> Haskell anymore. I feel quite strongly about this, and
> when I write Haskell programs I try to avoid non-standard
> features as much as I can. Very often you can; it might
> be a little inconvenient, but I think it's worth the
> price. I've written plenty of Haskell program (large
> ones) that do not use any non-standard stuff. How else
> can you expect it to be portable?
>
> If there are some non-standard extension people cannot live without, well
> perhaps they should be made standard then?
I agree with what you are saying and personally don't mind
additional hassle if my code remains portable in return.
But unfortunately, there are still big holes in the Haskell
specification. The one hole I am most concerned about is
access to standard OS services and code written in other
languages (and the associated mess of having to deal with
pointers, bits, bytes, and so forth). I believe that about
any serious application is forced to resort to non-standard
features just because of this hole. Once forced to rely on
one non-standard feature, for most implementors, the barrier
to using more non-standard features is significantly lower.
BTW, Modula-2 had the same problem, and it caused great harm
- so, we can't say, history didn't warn us.
For the time being, I think, the best (and classical)
solution is to isolate all use of non-standard features in
an as small as possible set of ``system-dependent'' modules
and leave the bulk of the code untainted.
Isn't it time to identify the key problem areas (and I
really mean problems and not fancy features) and start on
Haskell 2?
Cheers,
Manuel