Так почему же MIT перешел со Scheme на Python?
От: z00n  
Дата: 25.03.09 15:00
Оценка: 112 (13)
Интересный момент c проходившей на днях International Lisp Conference:

Why MIT switched from Scheme to Python

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.

Констанца спросил Сассмана, почему MIT исключил Scheme из вводного курса по программированию, 6.001. Был дан примечательный ответ. Он сказал, что причина в том, что инженерное дело в середине 90-ых, а уж тем более в 2000-ых сильно отличается от инженерного дела 80-ых. В 80-ых хорошие программисты проводили много времени в размышлениях, а потом писали немного кода, который работал. Код работал близко к "железу", даже Scheme — все было прозрачно на всех стадиях. Как с резистором, достаточно посмотреть на цветную маркировку, чтобы узнать номинальную мощность, допустимые отклонения, сопротивление и V=IR — это все, что нужно знать. 6.001 был задуман как курс для обучения инженеров тому, как из маленьких кубиков, в которых они досконально разбираются, посредством простых техник составлять сложные конструкции, которые делают то, что от них хотят.

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.

Таким образом, хорошие новости про новый 6.001 — он ориентирован на роботику — там требуется прогррамировать маленьких роботов ездить туда-сюда. И роботы не похожи на резисторы, ведущие себя в соответствии с идеальными функциями. Колесики проскальзывают, окружающая среда меняется и т.д. — вы должны придать устойчивость системе: путем, отличным от того, что предлагает SICP.

And why Python, then? Well, said Sussman, it probably just had a library already implemented for the robotics interface, that was all.

А почему Питон? Ну, сказал Сассман, просто потому что была готовая библиотека для управления роботами, вот и все.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.