4 ms·
My experience is very limited. I've not yet worked through all of Chapter 3 of SICP, and I've not had the opportunity to hack any real code in any lisp dialect
by RiderOfGiraffes 16y ago
My experience is very limited. I've not yet worked through all of Chapter 3 of SICP, and I've not had the opportunity to hack any real code in any lisp dialect since I implemented LispKit one weeked in 1989. However ...
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.
- mduerksen 16y agoI definitely disagree that Clojure introduces "real world nastiness" which would prevent a beginner from learning it "the clean way". Clojures data structures are very elegant and easy to grasp (e.g. you don't have to think about pointers or define equal operators, it's all there already). And you can define functions just as clean an "pure" as in Scheme. I do agree that Clojure is very comprehensive, and can be overwhelming for a beginner. But you could buy a book, which will use only a subset of Clojure at the beginning. And when you get to the point where you can use the basic data structures and map, filter, reduce them, this will get you very far.
- phren0logy 16y agoTo me, the "real world nastiness" is the Java cruft surrounding it. You don't have to deal with it except to get a nice programming environment running. At this point the options are much more complicated and uglier than DrScheme.
- mduerksen 16y agoThat's not what the author seems to mean though: Clojure's exceedingly cool, but to understand it you need to speak lisp But I agree, an uncomplicated und "Java-free" IDE would be a great gain for a low-threshold start with Clojure. Clojurebox is a beginning, but it in turn burdens a starter with Emacs.
- deleted 16y ago[deleted]
- neutronicus 16y ago* 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. * This is not the whole story. We also still teach Newtonian mechanics because Newtonian mechanics is not only good enough for a wide range of real word applications, but the only feasible calculational strategy. Mechanical and aerospace engineers use Newtonian mechanics (and derived disciplines such as Newtonian continuum mechanics and fluid mechanics) to great profit.