hn-classics/_stories/2009/14167453.md

51 lines
2.1 KiB
Markdown
Raw Normal View History

---
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'
2018-06-08 12:05:27 +00:00
year: 2009
---
2018-03-03 09:35:28 +00:00
> 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 thats 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 isnt so much like that, said Sussman. Nowadays
> you muck around with incomprehensible or nonexistent man pages for
> software you dont 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.