
In general the haskell community is helpful with novice programmers
interested in learning concepts, but it is very hostile to novice
programmers with a practical standpoint. It is not acceptable for many
practical programmers that for a simple console program it would be
necessary to chain three monad transformers when this is not really
necessary. Unless the newcomer is willing to accept it. That reinforces the
prejudice of the community against practicality in solving real problems.
The result is a community that can discuss for hours how to calculate the
factorial of a number or what kind of fold-map is more pretty or if lenses
are comonadic metafunctors.
It is an error to introduce people to program in haskell using category
theory. Is like if you teach your kid to handle his money starting with
"John let me say you something: money is isomorphic to the rational numbers
and rational numbers form an algebra. son consider a structure {N,+.*}
where...."
It is the same that teaching music by first imposing three years learning
musical notation. Or teaching a language by his grammar.
If so, all other languages should also be teached using CT, since the
underlying structure of imperative programming is also CT.
Moreover it happens that the practical people are the ones that tend to
think out of the box. Innovation requires some kind of disrespect for what
is settled. Solving problems that nobody has solved already requires this
kind of disrespect too. An excessive formalistic mind lives in a box from
which it can not scape. It is like a bureaucracy of the mind. This creates
the atmosphere for a kind of cargo cult religion that I mentioned above. If
this is a religión, it is not mine.
I think that the Haskell community has to think seriously the reasons for
his incredible success and influence as well as his almost complete failure
in practical application in the Industry. And why, if some haskellers have
success in the real world, they almost invariably disconnect from the
haskell community.
2015-08-29 10:41 GMT+02:00 Alexey Muranov
IMO, what attracts a big part of kids to programming is the possibility to program side effects. It seems to me that Haskell takes a big care to "seal off" the side effects and does it in a nontrivial way. This may complicate introduction to programming. Telling the kids to "just use the IO monad and don't worry want a 'monad' is, it is just a magic word, it comes from Category Theory, don't try to understand, just follow me" might not be a good way to teach.
I've seen assembly language mentioned here, and what attracted me to it, when i was a kid, was the possibility to program "side effects" explicitly. Even if i could not observe those side effects, like change of a register value, directly, they could be tested indirectly.
Alexey.
On Saturday, August 29, 2015 at 8:10:58 AM UTC+2, Donn Cave wrote:
quoth M Farkas-Dyck
... I see much praise of Python, while Haskell mostly performs better, is less verbose, and catches type errors. Worse yet, I see counsel to learn it as a first language.
Sure - "Programming for Everybody" is practically a Python trademark!
It is kind of embarrassing when Haskell enthusiasts see Python as a better language for beginners. But in either case I think we'd expect only a fairly superficial treatment of the language, right? I mean, for example, back in the day, one of my colleagues picked up Python for random minor utilitarian purposes, and when I talked to him he hadn't used classes for anything, so for him it was only incidentally OOP inasmuch as some of the built in functions were addressed as object member functions. A beginning student doesn't need to learn OOP in any kind of depth. He or she would need to learn about the IO monad, but maybe not monads in general. I suppose that might somewhat limit one's potential appreciation of Haskell's beauty, if we're still talking about that.
Donn _______________________________________________ Haskell-Cafe mailing list Haskel...@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Alberto.