<div dir="ltr"><div><div>I think early on in the development of the language, a decision was made that it was nice if we can express the concepts in a way that was close to how we would on paper, even if it meant that the parser can or would be very complicated. A decided break with the lisp crowd was made in this respect. Initially, i think, even performance was considered a distant second to this.<br><br></div>Also, what we tend to call "abstract" is actually often just "cleaned up" as in, we are using the word as a euphemism for "clutter removed". <br><br>Somewhat worryingly, but also understandably, the stress and emphasis placed on these values has actually lessoned over time, due to other important values becoming greater.<br></div><div><div><div><br></div><div>As language creators, we set the tone for the entire industry, or at least everyone working in our language. As a result, I would argue that people who program in haskell place a great deal more energy and care into how they express their code.<br><br></div><div>Haskell for a long time was used primarily by academics, and their students, so arguably its primary purpose was this expression, where as most other languages are invented for purely practical reasons and dwelling on exactly the right syntax might have been seen as a sort of endless bike shedding to be avoided, so that ultimately the practical concerns are addressed.<br><br></div><div>There are likely some objective measures of clutter even without knowing the specific problems at hand. How much do unrelated concepts blend together in the text, and so on. In c and c++, you really have a bit of boiler plate on every program, you can see this by comparing "hello world!" in these languages. Naturally, all those tokens on the screen that must be included in every program have very little to do with the actual underlying algorithm, or functionality. <br><br>Consider what the equivalent of sum types and product types and sums of product types look like in these languages. I think a very strong case can be made that Haskell is _objectively_ more "beautiful" than these languages, and if I am correct, even a complete novice will be able to discern this, given the examples to demonstrate.<br></div><div><br></div><div></div><div></div><div>James C<br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 27, 2015 at 9:08 PM, Olaf Klinke <span dir="ltr"><<a href="mailto:olf@aatal-apotheke.de" target="_blank">olf@aatal-apotheke.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear cafe,<br>
<br>
please correct me if questions like this should not go via this mailing list.<br>
Presumably everyone on this list agrees that Haskell stands out as a beautiful and pleasant language to have. The recent nitpicking and real-world problems like cabal hell don't change that. However, statements supporting Haskell's beauty usually involve: "In Haskell it is so much clearer/easier/faster to ... than in another language." That is, the beauty of Haskell presents itself to those who can compare it to other imperative or not strongly typed languages that one learned before Haskell.<br>
My question is, for what reason should anyone not acquainted with any programming language find Haskell beautiful? Maybe it does not look beautiful at all to the novice. The novice can not draw on the comparison, unless he takes the effort to learn more than one language in parallel. The novice likely also does not have the mathematical background to see the beautiful correspondence between the language and its semantics. (My reason to love FP is because it is executable domain theory.) One might argue that it is not the language itself that is beautiful, but rather the concepts (data structures, algorithms, recursion) and Haskell does a great job to preserve their beauty into the implementation. Do you agree?<br>
<br>
Disclaimer: I am about to start teaching a first course in computer science in secondary school. I can teach whatever I want, since this is the first CS course the school ever had. I want to teach beautiful things. I love functional programming. I need not start teaching programming right away. But I am reluctant to expose the pupils to something whose beauty escapes them completely.<br>
<br>
-- Olaf<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>
</blockquote></div><br></div>