13 сентября 2022

🪄 Из-за ненависти к Fortran создал свой язык и доказал, что программирование – это не колдовство

Веб-разработчик, фрилансер... Пишу об ИТ и смежных технологиях.
В небольшой статье узнаем об одном из пионеров кодинга, нидерландском ученом Эдсгере Дейкстра, доказавшим всему миру, что программирование – это не фантастика, а интеллектуальное ремесло.
🪄 Из-за ненависти к Fortran создал свой язык и доказал, что программирование – это не колдовство

Рождение программиста

Эдсгер Вибе Дейкстра, уроженец голландского Роттердама, появился на свет в 1930 году в семье ученых: отец был химиком, мать – математиком. Они привили мальчику любовь к точным наукам и после окончания школы он стал студентом Лейденского университета, поступив на отделение, где готовили математиков и физиков-теоретиков.

В вузе будущему лауреату премии Тьюринга представился случай познакомится с первыми вычислительными машинами и с загадочной, но такой манящей наукой – программированием. Параллельно с учебой он подрабатывал в Математическом центре столицы Нидерландов, где с другими разработчиками трудился над довольно крупным проектом по созданию компьютера ARMAC. В конце 4-го курса перед ним встал вопрос: продолжать карьеру теоретического физика или все-таки бросить нелюбимое дело и окунуться с головой в область, захватившую все его сознание. Вот что вспоминал ученый о принятом судьбоносном решении в начале своего пути:

«... передо мной стоял трудный вопрос – либо прекратить программировать и стать респектабельным теоретическим физиком, либо все-таки завершить начатое мной обучение с минимальными усилиями и стать... вот только кем? Программистом? Но разве это респектабельная профессия? Ведь пока неизвестно, что такое программирование? В чем должен был состоять тот солидный объем знаний, который позволил бы считать программирование научной дисциплиной?»

Он принял правильное решение и его работы оказали огромное влияние на развитие структурного программирования. Именно Дейкстра показал всему миру, что программирование – это не фантастика, а интеллектуальное ремесло, тесно связанное с математической логикой. Самый известный свой алгоритм из теории граф по нахождению кратчайшего пути от одной вершины к другой, он создал за 20 минут, сидя в кафе со своей невестой. К слову, он до сих пор успешно применяется в приложениях для планирования транспортных маршрутов, при работе с электронной оплатой и протоколами маршрутизации.

Дейкстра был творческим разработчиком и внес в кодерские постулаты несколько глобальных вещей. Он является одним из основоположников концепции структурного программирования – то есть методологии, при которой написание кода ведется небольшими блоками. А еще в конце 60-х он в пух и прах разнес целесообразность использования goto в одной из своих статей, называвшейся: Goto considered harmful («Оператор Goto считается вредным»). В результате всех этих действий был внедрен совершенно новый подход к разработке, предотвращающий появление «спагетти-кода», при котором программа пишется пошагово и состоит из ветвлений, циклов и подпрограмм.

Развитие никому неизвестной науки

🪄 Из-за ненависти к Fortran создал свой язык и доказал, что программирование – это не колдовство

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

Намаявшись в самом начале своего пути с машинным кодом и с постоянным переписыванием одного и того же алгоритма для разных моделей компьютеров, он неизбежно стал смотреть в сторону высокоуровневых языков. Однако появившийся во второй половине 50-х FORTRAN, был далек от совершенства и пришелся Дейкстра не по нраву. Безусловно, FORTRAN для того времени был для человечества огромным шагом вперед, но ему недоставало простоты и логичности конструкций.

Поэтому в 1958 году небольшое сообщество программистов, в состав которого входил Эдгар, находясь в Цюрихе на очередной из технических конференций, решило разработать альтернативу FORTRAN – Алгол.

Язык получился довольно изящный, поскольку его разработка велась с присущими академической среде требованиями четкости и доказуемости. Главной задачей Дейкстры было создание компилятора нового языка. И поскольку он считал, что люди побыстрее должны уйти от ненавистного Fortrana, максимально не приспособленного под психологию человека, придумал себе челлендж в виде отказа от бритья, пока все не будет готово. Результатом этого испытания стали шестинедельная борода и язык Алгол-60, ставший впоследствии крепким фундаментом для многих современных языков программирования.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

Гений программирования

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

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

Давайте вспомним эти мудрые фразы вместе:

  1. «Студентов, ранее изучавших Basic, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации».
  2. «Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения».
  3. «Тестирование программ может служить для доказательства наличия ошибок, но никогда не докажет их отсутствия».

Сами его высказывания были не тщеславным желанием программиста блеснуть остроумием – их можно было назвать концентрированным выражением опыта, тонкой интуиции и аналитического ума. Он был ревностным приверженцем идеи безболезненного программирования и жестко реагировал на несовершенные и откровенно плохие разработки аппаратов и систем. Его современники вспоминали недоумение Дейкстры, когда ему сказали, что советское правительство решило копировать зарубежные образцы вычислительной техники, чтобы перевести на них всю советскую промышленность. А когда ученый узнал, что для клонирования выбрали модель IBM/360 (прообраз советской ЕС ЭВМ) – он назвал это решение «величайшей победой Запада в Холодной войне».

***

Боялся знаменитый голландец только лишь того, что программирование станет тривиальным процессом, занятием, доступным каждому. «Это обречено на провал», – говорил ученый о таком исходе. Интересно, как бы он оценил теперешнюю ситуацию в IT?

Материалы по теме

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ