Earlier quoted context omitted.
I understand your feelings about this but on HN we still need you to follow the guidelines, which include avoiding uppercase for emphasis and avoiding personal swipes like this: > I'm laughing at your naive take https://news.ycombinator.com/newsguidelines.html
What's more interesting is that it's their second account, because the previous one was banned. What's HN policy on ban evasion? Previous account: https://news.ycombinator.com/user?id=oldpersonintx
Why MIT switched from Scheme to Python (2009)
221–230 of 249 posts
Re: Why MIT switched from Scheme to Python (2009)
#222Earlier quoted context omitted.
What's more interesting is that it's their second account, because the previous one was banned. What's HN policy on ban evasion? Previous account: https://news.ycombinator.com/user?id=oldpersonintx
Thanks for that. If an account is banned but the user signs up a new account and starts contributing positively and respecting the guidelines, that’s a good outcome. If they just pick up where they left off, that’s what we call a “serial troll” and we’ll ban the new account with fewer or no warnings.
Re: Why MIT switched from Scheme to Python (2009)
#223Earlier quoted context omitted.
What's more interesting is that it's their second account, because the previous one was banned. What's HN policy on ban evasion? Previous account: https://news.ycombinator.com/user?id=oldpersonintx
Thanks for that. If an account is banned but the user signs up a new account and starts contributing positively and respecting the guidelines, that’s a good outcome. If they just pick up where they left off, that’s what we call a “serial troll” and we’ll ban the new account with fewer or no warnings.
Re: Why MIT switched from Scheme to Python (2009)
#224I was one of the last batches of students on the old Scheme curriculum. I absolutely loved it! Understanding that all loops could be done via recursion, and what a side effect is, is what fundamentally made me fall in love with CS. I've heard good things about the new, and now newer, curriculum but I know I wouldn't have had the awakening I did if it weren't for scheme. RIP SICP --- ps another fun story: we had some…
I worked an MIT programmer who bragged about the Scheme curriculum. He was also the worst programmer that I’ve worked with. He really liked clojure and would constantly complain about Python syntax, and ended up quitting abruptly when his hand spun Datomic based system was rejected. I think there is a trap in thinking that a strange way of being taught puts one at an advantage. It is really annoying to work with peop…
Gosh, I even got to work with the Python BDFL for a couple years. I'm no Scheme zealot!
Re: Why MIT switched from Scheme to Python (2009)
#225Earlier quoted context omitted.
Can you not see that there is a philosophical difference between these two approaches and why someone might have a preference for one or the other?
There isn't a philosophical difference. Both are problem solving strategies. You would choose one or the other depending on goals and constraints. There isn't a 'philosophical' reason to choose one or the other. In the end the choice wasn't made for philosophical reasons. It was made because the robot library was in Python, or so he thinks. I think this actually shows there was a strong reason to never use Scheme: it…
https://www.paulgraham.com/rootsoflisp.html
Re: Why MIT switched from Scheme to Python (2009)
#226Earlier quoted context omitted.
Would love an RSS feed.
That would require ordering them by time highlighted, not by the original time posted. Worth doing, but not done yet!
Re: Why MIT switched from Scheme to Python (2009)
#227Earlier quoted context omitted.
> There were four 15-unit courses, each about one of these "languages": The description you offer is strange to me. The Lisp family of languages are multi-paradigm (arguably paradigm-independent) and can hardly be called "procedural". The core material of SICP revolves around considering the "means of combination" and "means of abstraction" offered by a programming language — concepts that sound to me like they have…
You're absolutely right that "procedural", at least as I understand the word in 2025, is a poor label for 6.001. 6.001 taught 'define' and 'let' but didn't teach 'set!' until week 6 or so. So we learned functions, variables, scopes, recursion, lambdas, strings, numbers, symbols, lists, map, filter, flatten, and more - all without ever modifying a variable. That's very "functional". Once we learned that it was possibl…
Calling it 'fake' is dismissive. Also, it isn't written in Scheme, but merely described in the native data format: lists of symbols.
The next section builds a virtual machine that is written in Scheme to run the code. One of the beauties of Scheme/Lisp (and source of much of its power) is the simplicity of the syntax. It allows it to be incredibly succinct.
The last section in the chapter builds a compiler to translate Scheme into this virtual machine assembly code so you can run it in the virtual machine simulator. An ouroboros.
SICP is a gem. Thank you Hal and Gerry!
Re: Why MIT switched from Scheme to Python (2009)
#228Earlier quoted context omitted.
There isn't a philosophical difference. Both are problem solving strategies. You would choose one or the other depending on goals and constraints. There isn't a 'philosophical' reason to choose one or the other. In the end the choice wasn't made for philosophical reasons. It was made because the robot library was in Python, or so he thinks. I think this actually shows there was a strong reason to never use Scheme: it…
Thank goodness! Can you imagine a world where just anybody could leap tall buildings? https://www.paulgraham.com/rootsoflisp.html https://www.paulgraham.com/diff.html https://www.paulgraham.com/icad.html
Whether that is a good thing depends on you.
Re: Why MIT switched from Scheme to Python (2009)
#229Earlier quoted context omitted.
Thank goodness! Can you imagine a world where just anybody could leap tall buildings? https://www.paulgraham.com/rootsoflisp.html https://www.paulgraham.com/diff.html https://www.paulgraham.com/icad.html
I don't remember who said it, but the Metacircular Evaluator is the real superpower in Lisp/Scheme — even beyond writing macros. It allows you to modify the language itself in ways that are unthinkable in other languages. Whether that is a good thing depends on you.
You can maintain performance across multiple nestings of compiled languages.
Where as if we write a metacirular interpreter in a compiled Lisp, we now have something lesser than the host language: an interpreted dialect. And then, if we write another meticircular interpreter in that dialect, we have something even slower: and interpreter interpreting the code of an interpreter which interprets code. With each level of embedding, we lose orders of magnitude of performance.
Metacircular interpreters are good for showing something cool: that you can document a possible model of how a language works using nothing but a small amount of code in that language. Someone who has learned how to use the language can then read that small amount of code understand it and acquire that model easily. Hopefully with the understanding that's not the only model. (Like for instance that lexical variables don't have to be an association list extended by consting.)
And of course academics have studied metacircular interpreters, and their theoretical properties. In that way they're also legitimate objects of interest.