---
created_at: '2017-04-21T17:22:46.000Z'
title: Why MIT Switched from Scheme to Python (2009)
url: https://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python
author: behnamoh
points: 205
story_text: 
comment_text: 
num_comments: 97
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1492795366
_tags:
- story
- author_behnamoh
- story_14167453
objectID: '14167453'
year: 2009

---
> Costanza asked Sussman why MIT had switched away from Scheme for their
> introductory programming course, 6.001. This was a gem. He said that
> the reason that happened was because engineering in 1980 was not what
> it was in the mid-90s or in 2000. In 1980, good programmers spent a
> lot of time thinking, and then produced spare code that they thought
> should work. Code ran close to the metal, even Scheme — it was
> understandable all the way down. Like a resistor, where you could read
> the bands and know the power rating and the tolerance and the
> resistance and V=IR and that’s all there was to know. 6.001 had been
> conceived to teach engineers how to take small parts that they
> understood entirely and use simple techniques to compose them into
> larger things that do what you want.
> 
> But programming now isn’t so much like that, said Sussman. Nowadays
> you muck around with incomprehensible or nonexistent man pages for
> software you don’t know who wrote. You have to do basic science on
> your libraries to see how they work, trying out different inputs and
> seeing how the code reacts. This is a fundamentally different job, and
> it needed a different course.
> 
> So the good thing about the new 6.001 was that it was robot-centered —
> you had to program a little robot to move around. And robots are not
> like resistors, behaving according to ideal functions. Wheels slip,
> the environment changes, etc — you have to build in robustness to the
> system, in a different way than the one SICP discusses.
> 
> And why Python, then? Well, said Sussman, it probably just had a
> library already implemented for the robotics interface, that was all.
