| ▲ | raddan a day ago | |||||||
I've loved this video for years, primarily because of SPJ's willingness (and excitement, even) to talk about Haskell's shortcomings. I think SPJ and other important people in the Haskell community are keenly aware that Haskell appeals to a specific demographic and that, to survive as more than just a research plaything, that they need to broaden participation. The famously friendly "Learn You a Haskell" book features its first "helloworld" program deep into the middle of the book, _after_ functors and (if I recall correctly) monads. It takes a very special beginner programmer to push that far through, working in the REPL, before they can write programs that do basic I/O. I teach functional programming to college sophomores and juniors, and I would love to teach them Haskell. But I have to meet them where they are, and it would be difficult to do in Haskell. This is why we have taught either F#, Scala, or LISP over the years. F# in particular has a lot of the aesthetic qualities of Haskell while allowing impurity or mutability escape hatches without too much trouble. If somebody has truly beginner-friendly Haskell resources, I would love to hear about it-- I'm apparently not smart enough to chart that path myself. | ||||||||
| ▲ | axman6 21 hours ago | parent [-] | |||||||
I used to tutor at the Australian National University, where the first semester CS course is 100% Haskell, it it was absolutely the right choice. People who’ve programmed before are at very little advantage over students who’ve never written a line of code, and often it’s the ones who did well in maths in high school that do best with it. It teaches many important ideas in a way that doesn’t give you an escape hatch to do bad things. I think for a CS degree, the primary goal is not to teach students how to program in the languages they’ll use in industry, but to teach them the ideas they’ll be able to apply to _any_ language they use in the future. I’ve also spent most of the 15 years since I took that course working professionally in Haskell, so it’s not like it’s “useless” for everyone. | ||||||||
| ||||||||