Brandon S. Allbery KF8NH wrote:
Seriously. Haskell seems to attract weird and wonderful type system
extensions like a 4 Tesla magnet attracts iron nails... And most of
these extensions seem to serve no useful purpose, as far as I can
determine. And yet, all nontrivial Haskell programs *require* the use
of at least 3 language extensions. It's as if everyone thinks that
Haskell 98 sucks so much that it can't be used for any useful
programs. This makes me very sad. I think
Which ones? The only one that comes to mind is hierarchical
libraries, which are a Good Thing --- the H98 flat namespace becomes
increasingly restrictive as Haskell gains more libraries (both
included ones, and from e.g. Hackage.)
Hierachical libraries are a very good extension - in fact, I can bearly
believe they weren't in the original language spec. I was under the
impression that this isn't an "extension" any more because it's been
added to the official language report. (?)
I'm thinking more about things like phantom types, rank-N polymorphism,
functional dependencies, GADTs, etc etc etc that nobody actually
understands.
Keep in mind also that many of these extensions are part of Haskell
Prime, which last I checked is supposed to become official sometime
later this year.
This worries me greatly. I'm really afraid that Haskell will go from
being this wonderful, simple language that you can explain in a page or
two of text to being this incomprehensible mass of complex type
machinery that I and most other human beings will never be able to learn
or use. :-(
Also... "sometime later this year"? That's new to me...
Haskell 98 is a wonderful language, and it's the language I use for
almost all my stuff. I don't understand why people keep trying to
take this small, simple, clean, elegant language and bolt huge,
highly complex and mostly incomprehensible type system extensions
onto it...
Experimentation. There are things you can't do with straight Haskell
98 (even something as simple as the State monad benefits from
functional dependencies; but fundeps are troublesome enough that
associated types are being explored as a cleaner alternative).
Haskell's in kind of a strange position, being simultaneously a
research language and a language which is useful in the "real world".
The tension between these is one reason why there are standards (H98
and the upcoming H'): we "real world" types write to H98 or H'
(increasingly the latter), while the researchers play with type system
extensions and the like.
People experimenting with the language I can live with. (Although I'd
prefer it not to be called Haskell. Very confusing when people start
asking me questions about this "Haskell" program that actually uses
non-standard extensions that I've never heard of. And when I have to
admit that even *I* can't comprehend what the code does, people go away
with the notion that Haskell really *is* impossible to learn and it's
not worth trying.)
What worries me is the day when you'll need to understand set theory and
propositional calculus just to use any of the standard libraries.
(Already I can't use the State monad because it requires some extension
or other. Not that I understand why - as far as I can tell, it's 100%
possible to define a State monad without language extensions. The
library just doesn't, that's all. Well, I can always define my own I
guess...)
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe