<div dir="ltr">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.<div><br></div><div>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...."  </div><div><br></div><div>It is the same that teaching music by first imposing three years learning musical notation. Or teaching a language by his grammar.</div><div><br></div><div>If so, all other languages should also be teached using CT, since the underlying structure of imperative programming is also CT.<br><div><br></div><div> 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.</div></div><div><br></div><div>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. </div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-08-29 10:41 GMT+02:00 Alexey Muranov <span dir="ltr"><<a href="mailto:alexey.muranov@gmail.com" target="_blank">alexey.muranov@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.<div><br></div><div>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.</div><div><br>Alexey.<div><br>On Saturday, August 29, 2015 at 8:10:58 AM UTC+2, Donn Cave wrote:<blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">quoth M Farkas-Dyck <<a rel="nofollow">stra...@gmail.com</a>>
<br><span class="">
<br>> ... I see much praise of
<br>> Python, while Haskell mostly performs better, is less verbose, and
<br>> catches type errors. Worse yet, I see counsel to learn it as a first
<br>> language.
<br>
<br>Sure - "Programming for Everybody" is practically a Python trademark!
<br>
<br>It is kind of embarrassing when Haskell enthusiasts see Python as a
<br>better language for beginners.  But in either case I think we'd expect
<br>only a fairly superficial treatment of the language, right?  I mean,
<br>for example, back in the day, one of my colleagues picked up Python
<br>for random minor utilitarian purposes, and when I talked to him he
<br>hadn't used classes for anything, so for him it was only incidentally
<br>OOP inasmuch as some of the built in functions were addressed as object
<br>member functions.  A beginning student doesn't need to learn OOP in
<br>any kind of depth.  He or she would need to learn about the IO monad,
<br>but maybe not monads in general.  I suppose that might somewhat limit
<br>one's potential appreciation of Haskell's beauty, if we're still
<br>talking about that.
<br>
<br>        Donn
<br>_______________________________________________
<br>Haskell-Cafe mailing list
<br></span><a rel="nofollow">Haskel...@haskell.org</a>
<br><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="nofollow" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
<br></blockquote></div></div></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Alberto.</div>
</div>