9 ms·
I like to think of Haskell as a great language. It still has its warts (e.g. last [0,1/3..2] > 2), but if you wan't wart free, there's probably nothing beyond l
by tromp 9y ago
I like to think of Haskell as a great language. It still has its warts (e.g. last [0,1/3..2] > 2), but if you wan't wart free, there's probably nothing beyond lambda calculus.
Being the closest thing to lambda calculus with enough syntactic sugar on top to make it practical is a large part of what makes Haskell great.
- CiPHPerCoder 9y agoThe one thing that makes Haskell not great is that its understanding is not widely intuitive. People with mathy backgrounds that don't blink at the phrase "lambda calculus" won't consider this, but a lot of people struggle with math. If you can't put it in the hands of a 6th grader (in the public school system with no special tutoring) and have a reasonable chance of it being understood (n.b. I self-taught myself early JavaScript when I was in the 5th grade, and picked up PHP the following year), it won't ever be "great".
- rusk 9y agoHere's a thing about mathy languages too ... I've done a bit of lisp so I'd like to think I kind of get it ... but aren't computers by their very nature "imperative"? i.e. such that C or Pascal perhaps map more naturally to the underlying system? Can these mathy languages (oriented around our rationalist perspective of the world) truly ever be sympathetic to the hardware? What I mean is, nice as these are ... is there always going to be a bit of waste when you use them?
- the_af 9y agoThis is the one criticism of Haskell that in my opinion has no merit. Programming languages are not intuitive. They are a learned skill. You know the saying (sometimes said as a joke) "such-and-such language failed because it didn't have C-like syntax" -- but C-like syntax is NOT intuitive! Reading C code is a learned skill. Maybe it could be amended to "since many programmers learned to program using languages with a syntax inspired by C, wildly different syntaxes learned at a later stage are more difficult to them", which is a more reasonable proposition. This could be fixed by teaching programmers other languages early on. Haskell is no more or less intuitive than JavaScript. It's just different.
- CiPHPerCoder 9y ago> Programming languages are not intuitive. They are a learned skill. I can teach someone Python or JavaScript in a few weeks, at a casual pace, where they can accept input from STDIN or a file, do some calculations, and produce output to STDOUT or another file. Haskell? I'd need a dedicated fucking thesaurus on-hand for them to grok the paradigm, and it would take a few months before they could achieve the same result. I have another point here: If the only languages that are considered great are the ones that make people feel smarter than everyone else for being able to understand, we don't need great languages. Most of us need easy, practical languages that help us solve problems and don't get in our way. (Most of achieving this property comes down to ecosystem rather than language design.)
- danlugo92 9y agoThat's a fallacy. Just because something is harder to operate doesn't mean it can't be better. Example f1 cars vs normal cars, two propeller ships vs single propeller ones.
- CiPHPerCoder 9y ago> That's a fallacy. Just because something is harder to operate doesn't mean it can't be better. Where did I say it "can't" be better?
- the_af 9y ago> Haskell? I'd need a dedicated fucking thesaurus on-hand for them to grok the paradigm, and it would take a few months before they could achieve the same result. This is one of those assertions people should have to demonstrate with actual experiments. I can teach someone how to write buggy, unmaintainable code that seems to work but actually doesn't in Python and JavaScript. So? :)
- CiPHPerCoder 9y ago> I can teach someone how to write buggy, unmaintainable code that seems to work but actually doesn't in Python and JavaScript. So? :) Yes, because that property is totally absent from Haskell. https://github.com/RNCryptor/rncryptor-hs/issues/2#issuecomment-174385279 https://github.com/RNCryptor/rncryptor-hs/issues/2#issuecomm... Oops. Surely the JS and Python implementations are just as bad? https://github.com/RNCryptor/RNCryptor-python/blob/649ca23a5722ea02671ed14461b6903de5a6b1d1/rncryptor.py#L118-L119 https://github.com/RNCryptor/RNCryptor-python/blob/649ca23a5... https://github.com/RNCryptor/rncryptor-js/blob/08250e00a11401d9d86d2a379633f305cb8ffce2/rncryptor.js#L84-L89 https://github.com/RNCryptor/rncryptor-js/blob/08250e00a1140... (END SARCASM) My point here is that, while working with a "great" and/or "better-designed" programming language can be beneficial, it's the ecosystem that really counts.
- SZJX 9y agoDepends on how you define "great". Haskell intentionally keeps itself off the mainstream. That has always been a deliberate choice. There are now already plenty of more practical functional languages, e.g. OCaml, F#, Julia, Elixir, Clojure, which are in part driven by the advancement in research brought about by Haskell, so it has been fulfilling its duty in that way.
- rusk 9y agoHaskell was the first thing that came to mind. I can show with one hand, by joining my pointer-finger and thumb, the number of people I know that use it. It looks lovely, and it's something I'd very much like to learn some day but I can't for the life of me think of what I would use it for. Are there any killer apps out there for it? At least with lisp, I can configure emacs ...
- yakubin 9y agoPandoc and Xmonad are written in Haskell.
- icebraining 9y agoAlso git-annex!
- rusk 9y agoInteresting but again, short of contributing to these projects what am I going to do with Haskell?
- the_af 9y agoHaskell is used in the industry, see: https://wiki.haskell.org/Haskell_in_industry https://wiki.haskell.org/Haskell_in_industry You could start your own project. You could contribute to an existing project. You could evangelize Haskell at your job, if possible. All of these are hard, of course. It'll be easier to use a more mainstream language. But if Haskell strikes your fancy, maybe it's worth the effort?
- sshine 9y agoI also like to think of Haskell as a great language. But [0,1\3..2] being a wart? Here's an old HN thread that bashes Haskell: https://news.ycombinator.com/item?id=9434516 https://news.ycombinator.com/item?id=9434516
- JPKab 9y agoI love functional programming, but nobody use Haskell. Clojure, yeah. Guy next to me at work was trying to build a web app with haskell for a hackathon, and I was blown away by how little the community had to offer for basic things he couldn't get working. So yeah, languages people complain about, and ones nobody uses.
- Volt 9y agoHugs: Hugs> last [0,1/3..2] > 2 False GHCi: Prelude> last [0,1/3..2] > 2 True ¯\_(ツ)_/¯