7 ms·
For the context: Haskell was 4th or 5th language I learnt and the first pure functional one. My graduation thesis work was in Haskell and its backend/compiler s
by vishnugupta 5y ago
For the context: Haskell was 4th or 5th language I learnt and the first pure functional one. My graduation thesis work was in Haskell and its backend/compiler so at one point I was living/breathing Haskell.
> ...too often act like ivory towers...
I 100% agree with this. The Haskell community as a whole and various tutorials etc., aren't optimised for a new comer.
For instance, you don't see a "stand up a web app in Haskell in 10 minutes" tutorials. Historically it may have worked in Haskell's favour to slowly induct learners, but in this age where languages are fighting for mind space I don't agree that's a good approach anymore.
Simon Peyton Jones (SPJ), an earliest and a famous champion of Haskell coined the phrase "avoid success at all cost" in a certain context which may have had some role in making Haskell seem Ivory Towerish.
A language, like any living being, needs to adopt to survive and thrive. It's unfortunate to see Haskell remain a niche language even after close to 3 decades.
> and that simply is not how my brain is wired.
This, however, I disagree with. I mean in a general sense, not specific to how your brain is wired. It all depends on the first couple of language that one learns and how they are learnt and taught. 10-15 years ago people would find it hard to grok Python's functional concepts. But as it began to be taught as the first language in universities and those graduates join the working population you see how it's super natural for them to grok Python.
- wsc981 5y ago> This, however, I disagree with. I mean in a general sense, not specific to how your brain is wired. It all depends on the first couple of language that one learns and how they are learnt and taught. 10-15 years ago people would find it hard to grok Python's functional concepts. But as it began to be taught as the first language in universities and those graduates join the working population you see how it's super natural for them to grok Python. That must be the reason why Edsger W Dijksta once stated [0]: > "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." ... and ... > "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." ... and .. > "APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums." I must be one of those mentally mutilated programmers with no hope of regeneration :) --- [0]: https://www.cs.scranton.edu/~mccloske/dijkstra_quotes.html https://www.cs.scranton.edu/~mccloske/dijkstra_quotes.html
- faichai 5y agoMost of the current generation of programmers have been mentally mutilated by Object Orientation in the C++/Java/C# style. I include myself. It has been a definite struggle to onboard functional concepts and solve problems in a functional style. Just doesn’t come naturally.
- rualca 5y ago> Most of the current generation of programmers have been mentally mutilated by Object Orientation in the C++/Java/C# style. Why do you feel the need to denigrate people who are experienced in imperative and/or object-oriented paradigms? If there is any paradigm that holds its own value, why not praise the value it adds instead of resorting to nothing but ad hominems? I mean, if something was so unequivocally better then wouldn't this perhaps resulted in a massive adoption rate, and name-calling wouldn't pop up so frequently? But no, the popular thing to do is to just denigrate those who haven't jumped into that particular bandwagon.
- yakubin 5y ago> if something was so unequivocally better then wouldn't this perhaps resulted in a massive adoption rate That's not what we see happen in life. Just look at how dearly we hold on to coal plants. My country's energy is 90+% coal-based and there is an insurmountable opposition to atom, and great suspicion against solar (government recently started financially deterring against mounting solar panels).
- rualca 5y ago> That's not what we see happen in life. Just look at how dearly we hold on to coal plants. What a non-sequitur. Adopting a programming paradigm in the code that we write on a daily basis has rigorously zero to do with the infrastructure cost of switching energy sources. This non sequitur about coal plants is even more absurd and ridiculous once we factor out the fact that the world is already moving away from coal to renewable energy sources, which is quite costly and resistant to change and subjected to an awful lot of special interest groups, and yet during that timeframe people still chose not to bother with functional programming fundamentalisms. If an idea is good then it holds its own against alternatives. Even in their pet projects people tend to not even bother with pure FP frameworks. While hundreds of millions of euros are being spent on wind farms, people like you and me don't even bother spending a few minutes to get a hello world going with Haskell, even though it's effortless and trivial. Why'd you think that's happenin?
- _query 5y ago> For instance, you don't see a "stand up a web app in Haskell in 10 minutes" tutorials. Historically it may have worked in Haskell's favour to slowly induct learners, but in this age where languages are fighting for mind space I don't agree that's a good approach anymore. There's now the IHP framework that allows you to build haskell web apps in like 10 minutes. If you're curious, check it out: https://www.youtube.com/watch?v=UbDtS_mUMpI https://www.youtube.com/watch?v=UbDtS_mUMpI It's been called "Haskell on Rails", and for good reason.
- jtwaleson 5y agoSome context: I was taught Haskell, Prolog and Java at university (2006-2010). Coming from chaotic JavaScript and PHP scripting all were hard to grok, but I enjoyed them all. After a couple of years only Java stuck in my working memory. So: I could program in Haskell, I've probably used monads and functors fluently, but the concepts still don't click. I have the same problem with grammatic concepts like adjectives, adverbs, and the more complicated stuff. I obviously use them all the time, but I'm not fluent in the theory.
- morelisp 5y agoConversely, I like that there's a language whose first priority is not "how do I become economically useful to the media industry as fast as possible."
- uryga 5y agoa detail that doesn't contradict anything you said but may be useful for someone unfamiliar with it: "avoid success at all costs" is usually meant to be parsed as "avoid [success at all costs]" i.e. don't compromise the language just to make it more popular. https://news.ycombinator.com/item?id=12056169 https://news.ycombinator.com/item?id=12056169
- willtim 5y ago> the phrase "avoid success at all cost" in a certain context which may have had some role in making Haskell seem Ivory Towerish. This phrase is often misunderstood, it's "avoid, success at all costs", not "avoid success, at all costs". In other words, don't optimise for mass market adoption at the expense of everything else. Languages that have arguably done so, have ended up as extremely complex and ridden with corner cases.
- tux3 5y agoThe phrase is often taken as having a single true meaning, but I think the sum of them is really what makes the quote so good. It's easy to follow a rule too far and end up way overcorrecting the original problem. What I like is that both meanings balance each other :) Some popular mass-market friendly deliverables don't cost very much at all, avoid them and you're definitely avoiding success at all costs, but with both meanings at once this time.
- MaxBarraclough 5y agoI don't know much Haskell, but isn't Haskell's goal to serve as a vehicle for research in functional programming languages, rather than to offer a language that's useful for real-world work? As I understand it, the core Haskell folks don't especially care about Haskell's (admittedly limited) real-world usage. Or, if you prefer: real-world usage is a side-effect, not a value.
- themulticaster 5y agoI'd say that among pure functional programming languages (i.e. excluding Erlang, Scala and OCaml) Haskell is the language most suited for real-world usage. Yes, there is a lot of research being done on Haskell, but a lot of the research is centered on areas that more or less directly contribute to typical real-world usage. Consider the recent introduction of linear types for example: They're both exciting from a type theoretic perspective, but could also improve some real-world scenarios (even though at this point linear types are still quite new, so there's not a lot of examples out there).
- AnimalMuppet 5y ago> > and that simply is not how my brain is wired. > This, however, I disagree with. I think it might well be correct, actually. I think that it might be the difference between abstract and concrete thinkers on that standard personality test. Abstract thinkers will find that Haskell makes more sense; concrete thinkers will find that C makes more sense.