--- 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.