Correcting Haskell myths
WIP
There are many myths about Haskell floating around. Here is the truth. (Work in progress)
Lenses are not a crutch to get around the poor record system
https://news.ycombinator.com/item?id=20257322
Monads are not a hack to get around purity
Extensions are compatible with each other
(I haven’t checked this 100% but I’ve never come across or heard about a significant incompatibility)
Haskell language extensions do not change the language semantics. They extend the semantics with additional functionality. Existing code does not change its meaning when you enable an extension.
https://news.ycombinator.com/item?id=20744477
A pure language can have effects
Haskellers don’t literally believe “if it compiles it works”
The origin seems to be unrelated to Haskell. See some early references. Some appear to be tongue in cheek.
https://liw.fi/programming-truths/
http://lambda-the-ultimate.org/node/100
https://people.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/090207-fosdem/01-intro-ada.pdf
Some Haskellers discussing the notion
https://www.reddit.com/r/haskell/comments/37tp2c/what_i_found_inconvenient_in_haskell/
https://www.reddit.com/r/haskell/comments/3mpip2/hask_anything_the_thread_where_you_ask_and_we_try/
You can use “debugging printfs”
https://news.ycombinator.com/item?id=21171484
You don’t have to engage with the whole complexity of Haskell to
write simple programs
https://news.ycombinator.com/item?id=21171031
You can adopt Haskell features piecemeal
https://news.ycombinator.com/item?id=21171772
Haskell is not “just math”/“just category theory”/“just lambda calculus”
https://news.ycombinator.com/item?id=22112939