Никлаус Вирт: 80-летие классика программирования
15 февраля исполняется 80 лет выдающемуся швейцарскому учёному и инженеру — Никлаусу Вирту (Niklaus Wirth), лауреату премии Тьюринга — самой престижной премии в компьютерных науках, аналога Нобелевки, знаменитому профессору Высшей политехнической школы ETH из Цюриха, где учились Альберт Эйнштейн (1896) и Джон фон Нейман (1923).
Его знают как автора классического Паскаля (1970), но многие даже понятия не имеют, что было десятилетиями позже. Что его разработки во многом инициировали создание Java и C#. Что нынешние космические спутники, новейшие беспилотники и безупречные по качеству швейцарские железные дороги работают благодаря его блестящей инженерной мысли.
Именно он всей своей жизнью показал путь борьбы с надуманной сложностью, которая не только окружает нас повсеместно, но и стала уже смертельно опасной болезнью нынешней цивилизации.
Наша эпоха — время диктатуры воинствующих дилетантов. И в программировании классика тоже уступает арену коммерчески изуродованной индустриальной «попсе».
На первый взгляд, всё весьма печально — современный мир почти не знает Вирта и даже не догадывается о его огромном вкладе в мировую компьютерную науку. В мире программирования царит американский подход - можно назвать его «либеральным программированием»: даёшь свободу самовыражения, прощай порядок и да здравствует «управляемый» хаос!
Посмотрим на рейтинги популярности языков программирования. Разные методики дают различные результаты, но в любых топ-листах лидируют С++, С#, Java, PHP. И это бесконечно грустно. Было бы неудивительно, если бы то была выборка худших языков программирования. Но самых популярных?.. Немногие знают, что Java и С# построены на идеях Вирта, но индустриальными компьютерными гигантами (Sun и Microsoft) искажены и доведены до абсурда. Почти так же, как до того Borland, а потом и Embarcadero угробили виртовский Паскаль. Увы, лучшие языки Вирта — Модула-2 и Оберон — почти не используются в мире, хотя программы, написанные на них, всё ещё несут службу в нашем ближнем космосе.
Вклад Никлауса Вирта не сводится к созданию одних лишь новых языков программирования. Швейцарский профессор дал нам ключ, вектор движения. И его можно выразить ёмким афоризмом Альберта Эйнштейна, который Вирт поместил в самое начало описания языка Оберон: «Make it as simple as possible, but not simpler» («делай как можно проще, но не чересчур»). Возможно, что человек как божественное творение был создан простым, насколько это возможно. И то, что человек – cложное создание, даже если мы рассматриваем только телесную часть, никак не мешает ему быть «простым, насколько это возможно». Но вторая часть фразы как бы воздвигает преграду развитию. Где граница божественной простоты? Может ли человек, ограниченный самим своим биологическим воплощением, видеть границу простоты? Не настолько важно, ограничена ли скорость света, важно, не будет ли человек ограничен в своём движении: «тихо, тихо ползи, улитка, по склону Фудзи, вверх, до самых высот» (Кобаяси Исса).
Апологеты «либерального программирования» постоянно твердят нам о сложности. О том, что сложность неразрывно связана с программированием. О том, что программы – это самые сложные системы, когда-либо создаваемые человеком. Они не задумываются, как уменьшить сложность программирования. Они воспевают Его Величество Сложность. Здесь как и в бизнесе: объясни покупателю, что дело очень непростое, и запроси побольше денег. Вот и живём мы в мире кривых зеркал, где ошибка в программе — дело обычное, никого уже не удивляющее.
Лучше всего мотивацию работ Никлауса Вирта раскрыл его коллега по Стенфордскому университету (США), знаменитый профессор Дональд Кнут: «Вирт всегда хотел создавать аэропланы, и ему нужен был самый лучший инструментарий. Вот почему он проектировал много компьютерных языков и микрокомпьютеров...»
Вирт прежде всего инженер… Три друга, три лауреата премии Тьюринга: Эдсгер Дейкстра (1972) – Тони Хоар (1980) — Никлаус Вирт (1984). В этой тройке великих учёных Европы первый был философом-пророком, второй — идеологом научных основ программирования, третий — блестящим инженером-практиком.
Эдсгер Дейкстра не стеснялся называть вещи своими именами: "Настало время сорвать маску с компьютерного сообщества — Тайного общества по созданию и сохранению искусственной сложности. Контроль сложности и избавление от всего вторичного и надуманного — вот истинный путь развития программирования. мы являемся свидетелями массового, повсеместного распространения полного ошибок программного обеспечения, из-за чего нам должно быть очень стыдно… Мы просто не знаем, до какой степени можно всё упростить".
Ему вторил и Тони Хоар: "Но существует одно качество, которое нельзя купить, — это надёжность. Цена надёжности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить".
Мы живём в эпоху безудержной гонки технологий и надуманной сложности. Всю свою жизнь Никлаус Вирт посвятил борьбе с этими пагубными явлениями, но его не слышат или просто не хотят слышать. "Крайнюю степень ума, — писал Блез Паскаль, — обвиняют в безумии точно так же, как и полное его отсутствие. Хороша только посредственность".
Низкий поклон Учителю за то, что он показывает нам путь к истине…
Истинную величину И.С.Баха человечество оценило спустя несколько столетий после его смерти. Будем надеяться, мудрого профессора Никлауса Вирта — компьютерного Баха — люди оценят по достоинству всё же немного раньше.