|
|
|
|
|
by mduerksen
5591 days ago
|
|
The author seems to think that Clojure has some conceptional complexity to it that is easier to overcome by doing a intermediate step with Racket. But in which way is Racket or any other Lisp an intermediate step? I had no Lisp experience whatsoever before I started with Clojure, and the only real difficulties I experienced were (in descending order): a) translating my imperative-style thinking into functional style - this would happen to me in Racket as well. b) macros - but you don't need to grasp macros as a beginner, that's a topic by itself anymay. (and NO, the bracket syntax was no problem at all) YMMV if you have an other background.
It is true: The more programming languages you already know, the easier it will be to learn a new one (iff it doesn't conceptionally diverge too much). But if you don't have that background, why not learn the desired language right away? |
|
I think there is merit in the simplicity, clarity and purity of Scheme in helping put someone "in the right place" for grokking the real value and real power of Clojure. On the very few occasions I've written in Clojure I've known I've not been really "getting it" and that there's more, but I've felt (pause) overwhelmed is one word ... by the completeness of Clojure. It's a proper language for proper work.
I think I've gained a lot from going back to Scheme's purity and elegance.
It's a bit like "lies to children." We know that Newtonian mechanics is wrong, but we still teach that first because it's easier to grasp, easier to do the sums, and more directly in line with our own experience. But if taught properly (and that's another story altogether) it lays the foundation for being able to do the sums and do the work "properly" in Relativity.
I think Scheme can help to create the functional mindset in an elegant way, before having to worry about real world nastiness.
YMWV, because everyone is different and comes with different skills, deficiencies and baggage.