What do beginners struggle with?

  • core.logic should be archived: it’s a rabbit hole, nobody uses it in production, the only introductory book is written in Scheme, and the documentation looks abandoned. You’ll get a better price when you sell 10 intact coffee cups than when you sell 10 intact coffee cups plus 2 broken coffee cups.
    Datalog, in contrast, was a revelation.

  • laziness is a disappointment. It promises performance gains, but those are so meager that they don’t make up for dealing with he unexpected behaviour of your code

  • homiconicity and lists: lists are rarely used in Clojure. I don’t understand why the language keeps them. Clojure forms are data, in particular: lists. If a data structure is representative of Clojure then its vectors or maps. Should Clojure be rewritten one day, then it would be better to use vectors for forms.

  • core.async is tough and there are too few books or articles that go into depth. Also, newcomers are sent to documentatiin written for golang.

  • Explanations often reference the hosting language, e.g. protocols. I don’t want to learn Java in order to learn Clojure.

2 Likes