У своєму виступі з нагороди Тюрінга 1990 року Фернандо Дж. Корбато перелічив причини, через які складні системи неминуче вийдуть з ладу. На закінчення він дає деякі пропозиції щодо зменшення ймовірності невдачі. Він перераховує одну ідею так:
[U] використання обмежених мов для проектування чи синтезу є потужною методологією. Не дозволяючи програмісту або дизайнеру висловлювати невідповідні ідеї, область можливих помилок стає значно більш обмеженою.
Що він розуміє під "обмеженою мовою"?
Якусь мить я розглядав обмеження програмування . Однак програмування обмежень стосується обмеження простору рішення програми. Це інструмент, який дає можливість програмісту. Функція, на яку посилається Корбато, здається, є щось, що фактично обмежує програміста, або, принаймні, робить його більш схильним писати терсерний код.
Моя друга думка полягає в тому, що він має на увазі консервативні мови програмування . Корбато отримав нагороду Тьюрінга за роботу, виконану в 1960-х і 1970-х роках. Наскільки я розумію, він мав справу з великою кількістю перфокарт. Я ніколи не бачив перфокарт, тому я точно не знаю, як програмувати, але я можу здогадатися, що програмування перфокарт надзвичайно ліберальне. Я підозрюю, що поняття перевірки типу, статичного аналізу тощо, просто не існувало. Отож, Corbató, можливо, має на увазі ідею мов, які обмежують розробника робити німі помилки? Здається, це теж не так. Перевірка безпеки та моделювання даних не мають нічого спільного з терміновістю, про що він, здається, говорить, коли згадує про "не дозволяючи ... невідповідних ідей".