В науке, в промышленности, в коммерческом мире — повсюду бытует устойчивое мнение, что информатика как наука почти закончена и что, следовательно, компьютерная обработка превратились из теоретической проблемы для ученых в предмет практического приложения сил инженеров, менеджеров и предпринимателей. Другими словами, использовать науку для получения очевидных преимуществ могут многие, однако при этом все чувствуют себя не слишком комфортно, поскольку не понимают, в чем суть исследований, цели которых зыбки, а полученный в результате выигрыш весьма неопределенный. Устойчивое мнение оказывается верным, только если сопоставить цели компьютерной науки с тем, что было реально достигнуто, и забыть о тех целях, которых добиться не удалось, какими бы важными эти цели ни были.

 

Говоря начистоту, мы просто так и не знаем, что следует обсуждать. Впрочем, это не должно никого беспокоить, поскольку все это не более чем иллюстрация к тому, что я назвал «зыбкими целями и неопределенным выигрышем»

Приходится признать, что главная задача компьютерной науки — «не запутать все до неузнаваемости» — так и не была достигнута. Увы, большинство наших систем слишком сложны, чтобы не тревожиться об их состоянии, они слишком хаотичны и запутаны, чтобы с ними можно было чувствовать себя уверенно и спокойно. Обслуживание рядового заказчика в компьютерной отрасли находится на таком низком уровне, что пользователь постоянно ждет, что его система вот-вот рухнет. Мы являемся свидетелями массового, повсеместного распространения полного ошибок программного обеспечения, из-за чего нам должно быть очень стыдно.

 

Для тех, кто мыслит себя учеными, очень заманчиво свалить все на необразованность среднего инженера, недальновидность менеджера и злой умысел предпринимателя. Но мы так поступать не будем. И хотя мы знаем, что корень всех бед — это сложность, которая выходит из-под контроля, мы не знаем, ни какой степени простоты мы можем добиться, ни того, какой уровень сложности всей архитектуры должен проявляться в интерфейсах.

Мы просто не знаем, до какой степени можно все упростить. Мы не знаем, можно ли отличить сложность, действительно присущую системе, от нагромождений, возникших совершенно случайно. Мы не знаем, возможны ли какие-то компромиссы. Мы не знаем, можно ли создать содержательную концепцию сложности, в рамках которой можно делать какие-то полезные предположения и доказывать их как теоремы. Говоря начистоту, мы просто так и не знаем, что следует обсуждать. Впрочем, это не должно никого беспокоить, поскольку все это не более чем иллюстрация к тому, что я назвал «зыбкими целями и неопределенным выигрышем».

И это был всего лишь один пример. Мораль в том, что доведение информатики как науки до логического завершения главным образом зависит от нашего мужества и нашего воображения.

Эдсгер В. Дейкстра (dijkstra@cs.utexas.edu) — почетный заведующий кафедрой, созданной компаниями Schlumberger и Centennial, на факультете информатики университета штата Техас. В 1972 году он получил премию Тьюринга.

Права принадлежат автору, 2001. Право на перевод с английского языка принадлежит издательству «Открытые системы».
Edsger W. Dijkstra, The End of Computing Science? Communications of the ACM, March of 2001, vol. 44, no. 3

Поделитесь материалом с коллегами и друзьями