←back to thread

389 points kurinikku | 1 comments | | HN request time: 0.762s | source
Show context
richrichie ◴[] No.42164857[source]
Has anyone read the new SICP with Javascript as language of choice?
replies(3): >>42165037 #>>42165082 #>>42165465 #
0xpgm ◴[] No.42165082[source]
Isn't scheme with close to zero syntax so easy to learn?

Why did someone think it was a good idea to switch to JavaScript?

I think the person who'll get value out of SICP will not have any problem picking up scheme syntax on the fly.

replies(5): >>42165182 #>>42165278 #>>42166724 #>>42168084 #>>42168675 #
1. zahlman ◴[] No.42168084[source]
It's also useful to be able to understand how the idioms map into the syntax of programming languages that one is actually going to use going forward. The point of SICP isn't what language you use, but how you use it, and how you think about the process of using it. Lisp itself exists because someone had the idea of taking the theoretical abstraction and actually realizing it, in notation similar to what the theorists were already using. But that similarity isn't actually relevant to core concepts like "functions as first-class objects", or referential transparency, or the substitution model of computation, or the complexity introduced by mutable state, etc. (Or, dare I say it: to the mind-expanding effects of contemplating the Y combinator.) These ideas can make you a better programmer in any programming language.

Nor is there any good reason to filter people out preemptively. If seeing `foo(x)` instead of `(foo x)` makes the student more receptive to a proper understanding of recursion, that's just fine.