51 lines
2.1 KiB
Markdown
51 lines
2.1 KiB
Markdown
---
|
||
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.
|