In my experience running the local clojure user group, a lot of clojure beginners (NOT programming beginners) struggle with two things: the paradigm switch (immutable data etc) and clojure's error messages.
I think if a beginner to programming started with clojure, they may be able to sidestep the paradigm switch (because they haven't yet learned any alternative approaches), but would struggle even more with the error messages. Java stack traces are rather daunting at the best of times, but I can imagine a beginner seeing something cryptic like wrong arity followed by a 20 line stack trace would be rather demoralising. Since this is a problem even seasoned programmers (but new to clojure) have, I feel this needs to be improved before I'd be comfortable recommending the language to absolute programming beginners. Beyond that, as long as you introduce the concepts one at a time (should be relatively easy, since clojure is all about untangling the various concepts), then I think clojure would make a pretty interesting language to teach programming with. When I tutored first year CS students in the past, the biggest issue was introducing too much at once, but I feel that most of clojure can be drip-fed as needed. On Mon 22 Feb 2016 at 07:55 Michael Sperber <sper...@deinprogramm.de> wrote: > > Terje Dahl <te...@terjedahl.no> writes: > > > I believe that the simplicity of Clojure's syntax in combination with its > > clean functional nature and prefix notation makes it ideal as a "first > > language" for anyone who wants to start programming - including, and > > perhaps especially kids. > > There's a lot of research out of the PLT and DeinProgramm projects on > this. You'll find the relevant ones here: > > http://deinprogramm.de/publications.html > > These are not about Clojure per se, but discuss Scheme, which is close > enough. > > tl;dr: No, Clojure is not an ideal language for teaching beginners. For > teaching beginners, you should use a language specifically engineered > for beginners, such as the teaching languages that come with Racket. > (The transition to Clojure from these languages should be quite easy, > though.) > > -- > Regards, > Mike > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.