5 ms·
Haskell isn't designed for "average people" or "most people" and why should it be? Real human beings use Haskell every day and love it. Real human beings are
by mbrock 11y ago
Haskell isn't designed for "average people" or "most people" and why should it be?
Real human beings use Haskell every day and love it.
Real human beings are capable of learning about teh scary maths and abstract theories.
You studied philosophy? Are you aware that most people don't understand anything about philosophical theories other than The Secret? Have you thought about how maybe those theories can change people's lives even though they're not aimed at a lowest common denominator? E.g. by being influential in the long run, and also by being intellectually stimulating to people who do bother to learn about it?
Rails-style success is not the goal for Haskell. It is an explicit anti-goal: the motto is "avoid success at all costs."
Terse and rude counterpoint to your thesis: Average people are lazy idiots and designing your language to appeal to them will result in a very popular incoherent mess, like Java and Ruby, and Dijkstra will make pointed remarks at you from his grave.
http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html
- Numberwang 11y agoSo the goal is for Haskell to be the Ithkuil of the programming world? That's a noble idea. Knowing this also makes it easier for me to chose to avoid reading articles about it.
- mbrock 11y agoNo. The goal is to be useful in both research and industry by means of principled design based on mathematics and engineering. If that scares you, fine, you don't have to be interested in everything. If you think everything that's not designed to appeal to some notion of an "average programmer" is necessarily obfuscated and impossibly difficult, that's on you. Go ahead and avoid it.
- Numberwang 11y agoThat sure does sound like a yes, not a no.
- stingraycharles 11y agoNo it is not. Haskell appeals to a certain audience, for the same reason that assembly and C/C++ appeal to a certain audience (fun fact: this category pattern will also be available in C++17 to be known as Concepts). Sure, it is a niche language, and might have too steep a learning curve for the average programmer, but it is used in production, by real world businesses, and people write real world code with it.
- omginternets 11y ago>Haskell isn't designed for "average people" or "most people" and why should it be? Although it isn't stated as such, I think the point is that the haskell community is, on the whole, truly awful at pedagogy. I'm perfectly fine with the notion that Haskell isn't for everyone, but being a poor pedagogue is always a bad thing.
- mbrock 11y agoIf you're a good pedagogue, please help out. Teaching isn't easy, and the abundance of poor pedagogy is surely a big reason why so many people develop mathematical anxiety. https://en.wikipedia.org/wiki/Mathematical_anxiety https://en.wikipedia.org/wiki/Mathematical_anxiety > Students often develop mathematical anxiety in schools, often as a result of learning from teachers who are themselves anxious about their mathematical abilities in certain areas. Typical examples of areas where mathematics teachers are often incompetent or semi-competent include fractions, (long) division, algebra, geometry "with proofs", calculus, and topology. The programming world lately is inundated with tutorials that take their pedagogical style from the Teletubbies or at best Bob Ross. Maybe that is not a viable way of teaching Haskell—maybe there will need to be actual study involved, with textbooks and exercises and trained teachers. I don't really know. https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD103... ("On the Cruelty of Really Teaching Computer Science") > So, if I look into my foggy crystal ball at the future of computing science education, I overwhelmingly see the depressing picture of "Business as usual". The universities will continue to lack the courage to teach hard science, they will continue to misguide the students, and each next stage of infantilization of the curriculum will be hailed as educational progress.
- omginternets 11y ago>If you're a good pedagogue, please help out. I truly think I am, but I'm still struggling to learn Haskell... >the abundance of poor pedagogy is surely a big reason why so many people develop mathematical anxiety. I'm one of them, but 28 years later, I'm finally realizing that mathematics actually aren't that hard. >The programming world lately is inundated with tutorials that take their pedagogical style from the Teletubbies or at best Bob Ross. Maybe that is not a viable way of teaching Haskell. I think you hit the nail on the head, here, and I would like to hazard the following opinion: this is a deeply cultural problem in the United States, where we operate under the implicit belief that learning should be fun. I don't mean to suggest that learning isn't rewarding, deeply satisfying, and occasionally exhilarating, but beyond learning your ABCs, it's rarely fun in the traditional sense. The problem, as I see it, is that we're failing tell the truth: learning non-trivial things is tedious, grueling, difficult, and tooth-grindingly frustrating while still being one of the most worthwhile things in life. Instead, we try to teach difficult or non-obvious concepts with the pedagogical equivalent of coloring books. Stated differently, we simultaneously tell our youth that one has to "work hard" and "make sacrifices" for things like sports, while telling them that intellectual pursuits should be nothing less than blissfully entertaining. As a general rule, I avoid anything labeled as being "for beginners", unless it's from a foreign editor. I'm lucky to be a fluent speaker of French, and I've noticed that French textbooks systematically approach subject matters in a rigorous, Cartesian, matter-of-fact way ... and this from grade 1! You want to know how I finally grokked monads? I read this paper: http://repository.cmu.edu/cgi/viewcontent.cgi?article=2846&context=compsci http://repository.cmu.edu/cgi/viewcontent.cgi?article=2846&c... It sucked. I mean it was awful. I spent weeks pouring over this thing, fighting the kind of frustration I described above. And I got a D+ in undegraduate pre-calculus. I'm not a "math guy", but like everybody else, coloring books don't cut it after you start growing armpit hair. Big-boy concepts require big-boy methods.
- raverbashing 11y ago> Average people are lazy idiots and designing your language to appeal to them will result in a very popular incoherent mess, like Java and Ruby, and Dijkstra will make pointed remarks at you from his grave. This is so funny Yeah, Ruby and Java are not great. But they get the job done and produce value, and a lot of people use it. I couldn't care less what Dijkstra thinks, he's not the one paying my bills If you can see the value in Haskell great. But I find it hard to remember where are the big technology companies using Haskell (or tools built with it). Maybe because if you force 'mathematical consistency' in an inconsistent world everything else sucks
- mbrock 11y agoSure. I'm a huge fan of bash scripts but I'm certain that attempting to enforce mathematical consistency on that language would be a comical disaster. (Although Gabriel Gonzales's "pipes" library for Haskell does make reference to a categorical interpretation of Unix pipes—hey, it's like this "math" stuff is quite widely applicable.) Look up Facebook's use of Haskell if you're curious about industry use. https://code.facebook.com/posts/302060973291128/open-sourcing-haxl-a-library-for-haskell/ https://code.facebook.com/posts/302060973291128/open-sourcin... I worked for a startup that used Haskell for its entire backend, including a custom kind of graph database. I joined my coworkers to a Haskell hackathon in Zürich and met hundreds of people using the language commercially (and happily). It's not that Java and Ruby suck—it's just that they're incoherent and messy. That may sound like slander but I have used both languages professionally, I have contributed to both Rails and the Ruby interpreter, I don't think they are bad tools. Everything is a tradeoff. If you CAN'T see the value in Haskell, I humbly recommend you look into it, but I can't force you to become interested.