<div dir="ltr"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF"><blockquote type="cite"><div dir="ltr"><div>This also made me realize of two things:</div>
<div>0. Haskell will never be mainstream, because there are not
a lot of programmers out there who are willing to do the
investment required for learning the necessary concepts to
understand and write code like the one shown above.</div>
</div>
</blockquote>
<br>
Replace "Haskell" with "Java" in the previous sentence, and you
would have an equally truthful statement. :) I spent years getting
comfortable with OO languages, and then I spent years getting
familiar with Haskell. For someone who only knows Haskell (and I
know such a person), I couldn't imagine teaching them Java well
enough to write that code!<br>
<br></div></blockquote><div>I speak only from my own narrow perspective. I'd say programming is hard, but functional programming is harder. Maybe that's why Java replaced Haskell in some universities curricula <a href="https://chrisdone.com/posts/dijkstra-haskell-java">https://chrisdone.com/posts/dijkstra-haskell-java</a>. For some reason most programmers I know are not scared of learning OO, but they fear functional programming. I think the reason might be that OO concepts like inheritance and passing messages between objects are a bit more concrete and easier to grasp (when you present toy examples at least). Then you have design patterns, which have intuitive names and give some very general guidelines that one can try after reading them (and add his/her own personal twist). I doubt people can read the Monad laws and make any sense out of them at the first try. Maybe FP and OO are perceived as equally hard, but that was not my impression so far.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF">
Semicolons... Brackets *and* whitespace delineation (which is
required, and which is customary?) ... import "static" ... "public",
"class", "private" ... eager evaluation ...
pass-by-reference/whatever ... procedural statements ... these
things are all mind-boggling if you don't learn them early.<br>
<br>
In short, I don't think the investment required in Haskell is
different than any other programming language. As with natural
languages, there are no absolute difficulties, only relative ones.<br>
<br></div></blockquote><div>Well, I guess that's subjective (as our two opinions illustrate ;)). It'd be nice to have some empirical evidence of this, but I couldn't find any paper on the subject ...<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF">
(This might actually be a useful point to bring up when speaking to
non-Haskellers, so perhaps this message isn't as off-topic as I
initially assumed.)<br>
</div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<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>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div>