|
I think there is also an emotional/social dimension to choosing a beginner's language that is important to take into account. Imagine (putting Haskell's static typing aside), the difference in feeling between learning the basics of FP (say higher order functions, streams, all the different ways of dispatching function calls, etc.) in Haskell, vs OCaml, vs Clojure, vs scheme, vs javascript. Poking around on the internet, the beginner is going to get really different aesthetic vibes from each of these languages. To shamelessly generalize:
- Haskell/OCaml feels cerebral, academic, Mathematical, maybe even elitist
- Clojure/scheme has that dark-terminal screen, classic 80s vibe-
to me it feels nostalgic and quirky.
- Javascript is, of course, javascript- it's bright, active, and, most of all, popular All of these will bore/intimidate/comfort/excite different student demographics in different ways, completely independently of the programming concepts that you're teaching. So I think it's important to keep in mind the aesthetic preferences of the students you're trying to catch. |