[Haskell-cafe] IO is a bad example for Monads

jerzy.karczmarczuk at info.unicaen.fr jerzy.karczmarczuk at info.unicaen.fr
Mon Dec 10 19:35:05 EST 2007

Paul Moore after Henning Thielemann after Dan Piponi: 

>> > There are
>> > thousands of competing programming languages out there, and there are
>> > dozens that are viable choices for the task I just mentioned. If my
>> > response to their question takes longer than the time it would take to
>> > find another language and implement a solution, then Haskell will
>> > remain a niche language. 
>> I raise my question once again: Must Haskell's tutorials be tailored to
>> impatient programmers? Does Haskell need quick&dirty hackers?
> Sigh. I've seen this type of comment on this list so many times, and I
> still feel insulted by it. Must the Haskell community (and yes, I know
> it's not everyone, it's quite probably only a few members, but it
> feels like a lot) treat anyone who just wants to get a job done, while
> being open minded enough to consider a new and very unconventional
> language, as being "impatient" and a "quick and dirty hacker"?
> I still feel that IO (in the most general sense of interaction
> with the outside world) is hard in Haskell[1]. Maybe it *can* be easy,
> but it isn't yet. And ignoring that fact isn't helping anyone.

I think that 

1. Nobody ignores that.
2. Nobody really tries to insult people who want to find fast, elegant and
  efficient solutions to their problems.
3. People often *are* impatient, and this is not an insult.
4. Some comments from the other side, addressed to "Haskellers" can
  sometimes also be qualified as almost insulting (if somebody wishes to
  adopt such personal attitude). 

Paul Moore has seen "this type of comment" many times. I have seen his
reaction, and the whole of this discussion at least as many times. Will it
help us, all of us?... 

Look, all of you. There was time, where the theory of Einstein was
considered as something so high-brow, that a few guys in this world would
understand it. Now it is a standard undergraduate topic. Some *formal*
elements of the Special Relativity may be taught in High School. Some
*qualitative* elements of the General Relativity, as well. 

Do you imagine the concrete application - for the "impatient" - of the
differential calculus, at the time of Newton and Leibniz? And now? 

EVERYTHING here is a problem of education. It is different now than 300
years ago, and even than 60 years ago. Everything is much faster. But our
physiology, the speed of assimilation did not progress much. We REALLY need
time to assimilate new things. So, they should start earlier. 

The basic recursion schemata should be taught to 13-15 years old people.
The teaching of algebra may, and often is much more abstract than 30 years
ago, but still there is a reluctance of teachers to illustrate math through
programming, at a sufficiently abstract level. 

I really think that such languages as Haskell are investing for the future.
My main grief is completely different from these expressed by people who
want to "sell" Haskell for the Humanity rrright now. 

I think seriously that one of the weakest points of Haskell is that it is
*alone*. That there is no competition.
Clean stagnates a bit, the Clean mailing list is at least 40 times less
popular than this one. Pity, it is, or could be a worthy opponent,
concerning IO, the relation between types and strictness, etc. 

Some work on functional approach to scientific programming goes along the
lines far, far from Haskell, inspired rather by SISAL, etc. (for example the
SAC system). 

So my sincere recommendation for people unhappy with the monadic IO is:
propose something alternative, and implement it. If you are unhappy with
the language, tell us what you concretely want, but don't try to say
that you don't like our submarine, because you want to ride on it to the
top of Mount Everest. 

Jerzy Karczmarczuk 

More information about the Haskell-Cafe mailing list