4 ms·
The meme that Haskellers never accomplish anything practical is probably even older, maybe as old as the language itself.
by Tabular-Iceberg 3y ago
The meme that Haskellers never accomplish anything practical is probably even older, maybe as old as the language itself.
- lynx23 3y agoThe meme likely comes from a time when monads (and therefore IO) were not invented yet.
- bazoom42 3y agoYeah, after monads were invented Haskell have conquered the world through its reputation as a practical “get things done” language.
- Symmetry 3y agoAs "A Brief, Incomplete, and Mostly Wrong History of Programming Languages" put it: 1990 - A committee formed by Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher, and People for the Ethical Treatment of Animals creates Haskell, a pure, non-strict, functional language. Haskell gets some resistance due to the complexity of using monads to control side effects. Wadler tries to appease critics by explaining that "a monad is a monoid in the category of endofunctors, what's the problem?" https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html https://james-iry.blogspot.com/2009/05/brief-incomplete-and-...
- the_af 3y agoIt's a funny joke (I love that post), but it's mostly for people looking from outside in. It says nothing about actually doing IO with Haskell using monads, which is practical and done, and not particularly difficult. We shouldn't mistake memes for actual insight.
- tempodox 3y ago> and not particularly difficult. Wait until you want debug output in a deeply nested function that isn't already in the IO monad.
- jaspervdj 3y agoYou can use trace for that which is part of the base library: https://hackage.haskell.org/package/base-4.19.1.0/docs/Debug-Trace.html#v:trace https://hackage.haskell.org/package/base-4.19.1.0/docs/Debug...
- pyrale 3y agoUnrelated, but many thanks for organizing Zurihac year after year.
- the_af 3y agoDebugging output, or just plain debugging, is often difficult regardless of the programming language. I wouldn't say this sets Haskell apart.
- bazoom42 3y agoYeah as long as you understand how to use monads IO is easy. This is why Haskell tutorials tend to have 100 pages of dense type-theory before getting to “hello world”, while other languages have that on the first page.
- tome 3y agoI'm not sure which tutorials you're thinking of. Not this one I guess https://wiki.haskell.org/Haskell_in_5_steps#Write_your_first_Haskell_program https://wiki.haskell.org/Haskell_in_5_steps#Write_your_first... or this one https://riptutorial.com/haskell/example/898/hello--world- https://riptutorial.com/haskell/example/898/hello--world- Can you link to the one that has 100 pages before getting to “hello world”?
- 3y ago
- pyrale 3y agoThe point is that encoding was not a problem just for ivory tower practicians back then. Python is an exemple of definitely-not-an-ivory-tower language that struggled with the same issues. Also the practical joke is largely independant from haskell. It's pretty much an example of shuhari principles applied.
- 7thaccount 3y agoThe main language creator himself famously called Haskell "useless". It was tongue in cheek of course.
- kqr 3y agoAlso with a very specific meaning that often gets lost. It was specifically about Haskell before there was an IO type. Without I/O operations, any language is "useless". (Further context: in the discussion Haskell is described as starting out useless and carefully approaching useful. Other languages start with the footguns and then retrofit useful limitations from the other end!)
- 7thaccount 3y agoI thought there was an interview where he said that many years after Haskell had I/O. I believe you though as I haven't been enamored with Haskell for a long time. It's a cool language, but just doesn't click with me. I can see why it does for others though.