Эдсгар Дейкстра официально ступил на стезю программирования весенним днем 1952 года, а отправился в вечное плавание в августе 2002-го. Когда-то он сам написал: «Насколько мне удалось выяснить, я был первым голландцем, начавшим заниматься этим в моей стране».

В начале профессионального пути Дейкстры мало кто мог толком объяснить суть его новых занятий. В муниципальном совете Амстердама при регистрации брака в графе профессия ему написали «физик-теоретик», не сумев в официальных справочниках обнаружить среди прочих профессии «программист». Интересно, что толчком к занятиям новым делом послужила беседа с известным математиком ван Вейнгаарденом, напророчившим начинающему программисту, что тому, вполне возможно, доведется быть в числе создателей научной дисциплины «теория программирования». Так оно и случилось.

Когда в 1972 году «смиренному программисту» Дейкстре вручали премию Алана Тьюринга за успехи в «языках и системах программирования», представлявший его председатель комитета ACM М.Д. Макилрой отметил: «Профессиональный словарь программиста полон слов, введенных или предложенных Эдсгаром Дейкстрой: дисплей, мертвая хватка, семафор, программирование с минимумом операторов goto, структурное программирование».

Самым существенным при этом стало то, что лауреату удалось не только предложить удачные термины, но и развить методологию их использования, сформировав в теории программирования, такие понятия как стиль, доведя его до практических применений. Так, Андрей Ершов в том же, 1972 году писал: «Важнейшим методическим достижением последних лет является «структурированное программирование», основанное на последовательном разукрупнении алгоритмов, подлежащих реализации».

Позже Игорь Поттосин, характеризуя другую важную идею Дейкстры, отмечал, что этот стиль основан «на идеальной тенденции строить программу как точный вывод из математической постановки задачи».

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

Как основной рычаг для достижения надежности программы и повышения качества труда программиста, Дейкстра предложил новый методический подход — структурное программирование. В его рамках возник вопрос и об экономном по числу кодов тексте программы. Так, появилась работа об отказе от использования оператора goto в тексте программы. Старожилы помнят, как в начале 70-х годов научно-технические журналы по программированию были заполнены мнениями pro et contra отказа от этого оператора.

Не имея возможности подробно охарактеризовать творческий путь Дейкстры, позволю привести несколько полезных ссылок. Его речь при получении тьюринговской премии опубликована на русском языке в книге «Лекции лауреатов премии Тьюринга за первые двадцать лет» издательством «Мир» в 1993 году, а сведения о последних годах жизни можно найти на сайте www.cs.utexas.edu/users/EWD. Последнее выступление Дейкстры перед программистским сообществом состоялось в июне 2001 года на конференции Software Pioneers Conference в Бонне, где присутствовало около 1200 участников (Software Pioneers: Contributions to Software Engineering, M. Broy, E. Denert, eds., Springer-Verlag, 2002).

Воздавая должное памяти замечательного программиста, завершим заметку мыслью, которую следует понимать как его кредо: «Задача, стоящая перед программистом, — это интеллектуальный вызов высочайшего ранга. ... По-прежнему основная трудность информатики состоит в том, как не заблудиться в тех сложностях, которые мы создаем сами». Выходом из такого положения Эдсгар Дейкстра считал «повышение роли формализованных методов программирования».


Наследие Эдсгара Дейкстры

Дошло ли уже до вас печальное известие о кончине Эдсгара Дейкстры? Для меня это стало настоящим ударом. В прошлом году (хотя мне кажется, будто это было вчера) он выглядел вполне здоровым. Я помню, как в маленьком автобусе мы возвращались с конференции Software Pioneers Conference, проходившей в Бонне, в уютный отель в горах, и Эдсгар рассуждал о том, с какими любопытными проблемами ему пришлось сталкиваться в начале его карьеры. Конечно, тогда ему было трудно, и все же он нашел возможность преодолеть все препятствия, и это давало ему право вспоминать их с улыбкой. Его лицо до сих пор стоит у меня перед глазами, и мне легко восстановить в памяти мягкий голос и улыбку человека, который произвел революцию в разработке программного обеспечения...

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

Самой знаменитой работой Дейкстра считается статья «О вреде оператора GOTO для программ» (CACM, Mar. 1968, pp. 147-148), после которой проблеме небрежного использования оператора GOTO в программах стало уделяться самое серьезное внимание. Сейчас разработчики либо очень осторожны «в обращении» c этим оператором, либо не используют его вовсе.

— Из статьи Питера Чена «От программирования без GOTO к структурному программированию» (Peter P. Chen, From Goto-less to Structured Programming: The Legacy of Edsger W. Dijkstra, IEEE Software, September/October 2002).

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