Почему не Java, C#, ...
В отсутствие требований к взаимодействию с существующими базами кода, какое преимущество имеет Java или C# есть над, скажем, Smalltalk? Я программист C# днем (и бывший программист Java), и есть некоторые хорошие вещи об этом и некоторые плохие вещи, но одна вещь, которая действительно торчит, насколько невероятно сложна. Посмотрите, сколько вопросов есть здесь о точках синтаксиса и семантики C#. Вы потратите весь свой семестр или год, изучая мелочи. Модула-2 намного проще и вполне адекватна многим проблемам.
Вам также необходимо изучить сборку, и переход от модуля-2 к сборке намного проще, чем C# для сборки. Я бы не захотел научить сборку кучке студентов, которые знали только профессиональные инструменты Microsoft.
Относительно: Является ли это обратным, чтобы еще преподавать LISP?
(Существует около 50 различных способов интерпретировать это ...)
Я не вижу, что в нем «назад», если вы не видите, что он учил (до, после) более низкого уровня и думал, что его следует научить {после, раньше}.
Можете ли вы предложить другой язык, который делает то, что он делает? (Smalltalk? Forth? Icon? Factor?) Например, если вы хотите увидеть дизайн реальной системы OO (и, возможно, более мощный, чем Java или C#), вы можете забрать AMOP и посмотреть все это в короткая книга, включая полный исходный код. (Common Lisp - не самый простой диалект Lisp, но он намного проще, чем C# или Java, и AMOP использует относительно небольшое подмножество в любом случае.) Как бы вы научили метапрограммированию или даже многократной отправке с Java?
Или: первоначальная цель Lisp состояла в том, чтобы заменить машины Тьюринга как конструкцию для построения алгоритмов. (Это действительно очень полезно для написания реальных программ!) Вы предлагаете, чтобы вы предпочли использовать машины Тьюринга для обучения алгоритмам? Или C# для моделирования вычислений? Машина Тьюринга - это 7-кортеж - я не могу себе представить, сколько компонентов будет иметь вычислительная модель C#! Лисп прекрасно преодолевает разрыв, и я видел только один или два других языка в этом пространстве - Форт приходит на ум, но по какой-то причине он не стал популярным в академических кругах.
... Haskell?
Я думаю, что это отличная идея. Я узнал об этом в школе. С другой стороны, я думаю, что любой член этой языковой семьи справится с этим. Если вы изучите ML в школе, я не думаю, что вам будет хуже. Концепции те же.
Это как изучение машиностроения в Берлине и Чикаго: язык может быть другим, но понятия одинаковы. Но если вы ничего не знаете, даже не язык, имеет смысл начать с самого простого языка. Если вы хотите быть инженером в Берлине, но не говорите по-немецки, имеет смысл изучать технику и изучать немецкий язык, но традиционное мышление заключается в том, что менее эффективно начинать с инженерных классов только для Германии.
Студенты молоды, учителя не являются xD – elias
Uni по-прежнему не считается технической школой - когда это так, они будут учить языку du jour. – KevinDTimm
Ха-ха! Но Кевин, modula2? В самом деле? Java является основной темой в течение 15 лет. Кто-нибудь все еще считает это «du jour»? – Cheeso