В своей речи на премию Тьюринга 1990 года Фернандо Дж. Корбато перечислил причины, по которым сложные системы неизбежно выходят из строя. В своем заключении он дает несколько предложений по снижению вероятности отказа. Он перечисляет одну идею следующим образом:
Использование ограниченных языков для проектирования или синтеза является мощной методологией. Не позволяя программисту или дизайнеру выражать несущественные идеи, область возможных ошибок становится гораздо более ограниченной.
Что он подразумевает под «ограниченным языком»?
На мгновение я подумал об ограниченном программировании . Тем не менее, программирование ограничений - это ограничение пространства решений программы. Это инструмент, который расширяет возможности программиста. Функция, на которую ссылается Corbató, кажется, является чем-то, что на самом деле ограничивает программиста или, по крайней мере, делает ее более склонной к написанию более ласкового кода.
Моя вторая мысль заключается в том, что он имеет в виду консервативные языки программирования . Корбато получил награду Тьюринга за работы, выполненные в 1960-х и 1970-х годах. Насколько я понимаю, он имел дело с большим количеством перфокарт. Я никогда не видел перфокарты, поэтому я точно не знаю, как ее запрограммировать, но я могу предположить, что программирование перфокарты чрезвычайно либерально. Я подозреваю, что понятия проверки типов, статического анализа и так далее просто не существует. Итак, возможно, Corbató ссылается на идею языков, которые ограничивают разработчика от глупых ошибок? Похоже, что это не так. Проверка безопасности и моделирование данных не имеют ничего общего с краткостью, о которой он, похоже, говорит, когда упоминает, что «не допускает… неуместных идей».