4 ms·
I have to disagree about LYAH here. Allen can argue that LYAH is incomplete, and he seems to think the university courses he mentions are the best way to learn
by atombender 9y ago
I have to disagree about LYAH here.
Allen can argue that LYAH is incomplete, and he seems to think the university courses he mentions are the best way to learn Haskell. But not all developers want to go down that route, at least not as a first step. For me, LYAH was an important stepping stone to getting productive, while at the same time fully understanding that it was not the final word on anything.
This is, I suspect, what Allen doesn't get. His Haskell book is actually yet another example of why many developers find Haskell daunting to learn; it starts at the deep end, like many books before it. LYAH succeeds precisely because it doesn't go into several pages about beta reduce before explaining how variables are declared. Sure, it's chatty, it likes to rely on the REPL to show evaluations, and it also doesn't start with a formal introduction to functional languages or lambda theory. But it's a book written for programmers who already know how to code. It's approachable, doesn't go into unnecessary detail (if you want to know everything about List, go somewhere else; the Haskell Book has 59 pages devoted to it!), and lets you get up to speed fast without falling off along the way. It's an introductory mini course, and by the end of it you'll be able to write programs.
I don't buy Allen's arguments about it being "unpedagogical". I've never used book exercises and I never will, yet I didn't have any issues learning Haskell, or any other programming book for that matter. The absence of exercises in LYAH doesn't make it a bad book.
As an aside, Allen co-wrote what he claims is a superior book, and then published it as... a PDF. I just purchased it, and was immediately disappointed I had paid $59 for what amounts to a paper book in digital form, with no web version (the "online" version on gumread.com doesn't even provide hyperlinks within the book). LYAH is great because it's adapted to the web. I'm sure the Haskell Book is wonderful (and I'm reading it), but this is another way he misses the point of LYAH.
- chillee 9y agoOut of curiosity, did you finish LYAH? And have you actually started using Haskell for any substantial projects? I was also recommended LYAH when I started, and it was only around the middle of the book when I started to get lost. I remember actually going along a GH repo somebody had made for "haskell exercises companion to LYAH", but I still found myself reading a chapter, and then having no idea how to actually use the concepts learned. Especially the concepts that are really "barriers" to understanding Haskell (monads, applicative, etc.) The problem with LYAH is that it teaches you "what" haskell is, but not "why" haskell is the way it is, nor "how" you should you think about Haskell. If you're not at least familiar with another FP language in the same space (probably a ML language), Haskell is not a language you "get up to speed" in.
- atombender 9y agoI did finish it, and I thought the introduction to monads more helpful than anything else I'd come across, as it's focused on the practical use of them. LYAH is not for everyone, but that also means it's not bad for everyone, either. There's more than one way to teach computer languages.
- gilmi 9y agoAlmost all of the people that I've met that read LYAH (including myself) could hardly even write trivial projects in haskell upon finishing it. this is in my book (heh) a failure and why i recommend people to avoid LYAH. If you finish HPFFP you have everything you need to be productive and contribute to a production code base. If you learned Haskell using LYAH and you could write non-trivial software in Haskell right after finishing it - I'm very happy for you. But know that you are in the minority from what i got to witness.
- chillee 9y agoYeah that's what my experiences have been too. It's one thing to feel like you understand Haskell after finishing LYAH; it's another to actually understand it.