Кто такой Эдсгер Дейкстра?

29 Августа 2014
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения
Дийкстра.pngСовсем юный Эдсгер Дейкстра (иногда его фамилию ошибочно произносят как "Дийкстра") подумывал выучиться праву и стать представителем Нидерландов при ООН. Несколькими годами позже он мог продолжить заниматься теоретической физикой, поскольку закончил соответствующий факультет  Лейденского университета, – и преуспеть в этом, возможно, даже получить Нобелевскую премию. Но получил он премию Тьюринга, потому что в 1952 году принял решение стать программистом, хотя в те годы и профессии такой еще, по сути, не было… В результате Дейкстра стал одной из знаковых фигур в области программирования и информатики.

Российскому программисту ученый наверняка знаком по словосочетанию «алгоритм Дейкстры» (алгоритм нахождения кратчайшего пути между вершинами графа), многие вспомнят, что он входил в группу разработчиков  языка программирования высокого уровня ALGOL – европейской альтернативе Фортрана. Однако, возможно, самым ценным вкладом  голландца в развитие советского, а значит, и российского информационного образования является известнейший труд «Дисциплина программирования», вышедший на русском языке всего через два года после оригинальной публикации – в 1978 году. В этой книге Дейкстра утверждал необходимость максимально подробной проработки задачи и доказанной корректности алгоритма ДО написания программы – в противовес стандартной практике, включающей теоретически бесконечный процесс поиска ошибок, исправлений и отладки. Безусловно, этот подход обусловлен базовым образованием Дейкстры: в теоретической физике математическая строгость решения является одним из ключевых показателей качества. Отсюда же произрастает известный тезис о вреде оператора GOTO, замусоривающего программу и превращающего ее в «спагетти-код».

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

Запомнился Дейкстра не только научными и прикладными достижениями, но и своими афористичными высказываниями. Так, критика оператора GOTO нашла свое воплощение в следующей констатации: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». А принципиальный подход к программированию выражен в емкой формуле: «Тестирование программ может очень убедительно указать на присутствие ошибок, но оно абсолютно безнадежно для того, чтобы показать их отсутствие».
Получить консультацию специалиста