С днём рождения, Эдсгер Вибе Дейкстраǃ
Иногда мы обнаруживаем неприятные истины. И когда это происходит, попадаем в затруднительное положение, поскольку утаить их — научная нечестность, сказать же правду — значит вызвать огонь на себя. Если эти истины достаточно неприемлемы, то ваши слушатели психологически неспособны принять их и вы будете ославлены как абсолютно лишенный здравого смысла, опасно революционный, глупый, коварный или какой-то еще там человек. (Не говоря уже о том, что, настаивая на таких истинах, вы обеспечите себе непопулярность во многих кругах и вообще не обойдетесь без персонального риска. Вспомните Галилео Галилея…)
Информатика (computer science) выглядит тяжело больной от такого противоречия. В целом она хранит молчание и стремится избежать конфликта, переключая внимание на другое (например, в отношении Кобола вы можете либо бороться с болезнью, либо делать вид, что ее не существует: многие факультеты информатики выбирают второй, более простой путь). Но, собратья, я спрашиваю вас: разве это честно? Не подрывает ли наше затянувшееся молчание единства информатики? Прилично ли сохранять молчание? Если нет, то как об этом говорить?
Чтобы подбросить вам идей, касающихся этой проблемы, перечислю некоторые из таких истин. (Почти все знакомые мне ученые-программисты согласятся в основном со всеми из них. Однако мы вынуждены позволить миру действовать так, как будто мы их не знаем).
Программирование — одна из наиболее трудных отраслей прикладной математики: слабым (poor) математикам лучше оставаться чистыми (pure) математиками.
Научно-технические расчеты — простейшее применение вычислительной техники.
Средства, которые мы применяем, оказывают глубокое (и тонкое) влияние на наши способы мышления и, следовательно, на нашу способность мыслить.
Фортран — «младенческое расстройство» с двадцатилетним стажем — безнадежно неадекватен какому бы то ни было применению ЭВМ сегодня: он слишком неуклюж, слишком опасен и слишком дорог, чтобы его применять.
ПЛ/1 — «роковая болезнь» — принадлежит скорее к области проблем, чем к области решений.
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.
Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление.
АПЛ — ошибка, доведенная до совершенства. Это язык будущего для программистской техники прошлого: он открывает новую эру для любителей кодирования.
Проблемы управления в целом и базами данных в частности чрезвычайно сложны для людей, которые думают на смеси «ЕС-овского с нижегородским» (буквальный перевод: в терминах фирмы IBM, смешанных с неряшливым английским).
Об использовании языка: невозможно заточить карандаш тупым топором. Столь же тщетно пытаться сделать это десятком тупых топоров.
Помимо математических способностей, жизненно важным качеством программиста является исключительно хорошее владение родным языком.
Многие компании, которые поставили себя в зависимость от оборудования фирмы IBM (и, поступив так, продали душу дьяволу), потерпят крах под весом неуправляемой сложности своих систем обработки данных.
Ни научная дисциплина, ни крепкая профессия не могут быть основаны на технических ошибках министерства обороны и производителей ЭВМ.
Использование антропоморфной терминологии в отношении вычислительных систем — признак профессиональной незрелости.
Провозглашая себя работающими в области программного обеспечения (software), слабые (soft) ученые делают себя еще более смешными (но не менее опасными). Вопреки своему названию, software (буквально: мягкое оборудование) требует [жесточайше] твердой научной дисциплины для своей поддержки.
В старые добрые времена физики повторяли опыты друг друга, чтобы быть уверенными в результатах. Сейчас они придерживаются Фортрана, перенимая друг у друга программы с ошибками.
Проекты, предлагающие программирование на естественном языке, гибельны по своей сути.
Разве не достаточен этот список, чтобы дать повод для беспокойства? Но что мы собираемся делать? Вероятно, заняться повседневными делами…
Если предположение о том, что «вы предпочли бы, чтобы я не волновал вас пустяками, посылая вам это», справедливо, то можете добавить его к списку неприятных истин.
Источник