Почему в МТИ больше не читают курс SICP
Во время этого выступления на неформальной встрече разработчиков NYC Lisp профессора Массачусетского технологического института Джеральда Сассмена в шутку спросили, почему они с Абельсоном перестали читать легендарный курс лекций 6.001, основанный на их классическом учебнике «Структура и интерпретация компьютерных программ» (The Structure and Interpretation of Computer Programs, SICP).
Профессор ответил, что на то было две причины. Во-первых, они с Хэлом Абельсоном просто устали (курс читали с 80-х годов). Так что в 1997 году они пошли к декану факультета и сказали: «Мы уходим. Сами думайте, что делать».
Вторая причина гораздо более важная. И немного грустная.
У преподавателей возникло ощущение, что фундаментальный курс SICP больше не нужен инженерам-программистам, потому что прикладное программирование изменилось. Сассмен говорит, что в 80-е и 90-е инженеры проектировали сложные системы из простых и хорошо изученных частей. Целью SICP было предоставить специалистам абстрактный язык, позволяющий рассуждать о таких системах.
Сегодня это больше не актуально. Сассмен заметил, что программисты сейчас каждодневно пишут код для сложного аппаратного обеспечения, которое они не полностью понимают (и часто не имеют возможности понять из-за промышленных секретов). То же самое происходит на программном уровне, поскольку среды программирования состоят из гигантских библиотек с громадной функциональностью. По словам Сассмена, его студенты тратят почти всё время на изучения документации к этим библиотекам, чтобы найти способ слепить их вместе и заставить выполнить необходимую работу. Он говорит, что программирование сегодня «больше похоже на науку. Вы берёте этот кусочек библиотеки и тычете в неё. Вы пишете программы, которые тычут в неё, и наблюдаете, как она реагирует. И вы спрашиваете: "Как бы её подправить, чтобы она делала то, что мне надо?"» Таким образом, подход «анализа через синтез», который преподавался в SICP, где вы строите большую систему из простых частей меньшего размера, становится нерелевантным. В наши дни мы программируем методом тыка.
На вопрос, почему они выбрали в качестве альтернативы Питон, Сассмен пошутил, что решение принималось в режиме позднего связывания. Для Питона есть тонна библиотек, которые подходят для любых проектов, какие только захотят задать преподаватели (например, написать софт для управления роботом).
Сассмен признал, что курс SICP был «более последовательным», чем то, что у них сейчас, и они до сих пор не знают, каким должен быть правильный курс.
Ссылки:
- Полный текст книги SICP
- pdf, рус.яз.
- Видеозаписи лекций SICP Сассмена и Абельсона от 1986 года (для сотрудников Hewlett-Packard)
ссылка на оригинал статьи https://habrahabr.ru/post/283032/
Добавить комментарий