Программирование. Америка задавила Европу

Руслан Богатырев
Пантеон | Программирование: Америка задавила Европу

/ Европейский центр программирования им. Леонарда Эйлера, 2023.
/ Руслан Богатырев, 2007-2023.
\ Арт-журнал «Пантеон»: http://panteono.ru/2023-03-16

Эта статья была написана и опубликована в июне 2007 г.  Недавно перечитал: по сути многое осталось актуальным. Внёс лишь минимальные коррективы.

Во многом перекликается с тем докладом «Порабощение Европы», который представлял на научной конференции в МАИ в апреле 2022 г. Потому текст 2007 г. проиллюстрировал своими слайдами новых апрельских тезисов.


В последние годы термин «программирование» вышел сначала из моды, а в профессиональной среде — даже из употребления. К нему многие относятся как к очередному пережитку прошлого.

В современных информационных системах доля собственно программирования сильно поубавилась. Больше внимания и усилий (ресурсов) направлено на то, чтобы:

• выявить интересующий класс задач и сформировать политику ценообразования (маркетинг);
• понять задачу, зафиксировать требования (бизнес-аналитика);
• рассчитать потребные ресурсы и организационно обеспечить жизненный цикл программного продукта (менеджмент);
• провести построение и анализ моделей (моделирование);
• разработать рабочие и сборочные «чертежи» (проектирование);
• подобрать/изготовить технологическую «оснастку» (технологические работы);
• продумать все элементы удобства работы с продуктом (эргономика);
• реализовать достойный пользовательский интерфейс (дизайн);
• добиться необходимого уровня реализации проекта (контроль качества);
• реализовать киберзащиту (информационная безопасность);
• обеспечить развёртывание системы, её интеграцию в ИТ-среду, администрирование и сервисную поддержку.

В ИТ-индустрии само программирование обычно понимается в узком смысле и ныне сводится к кодированию (кодингу), который рассматривается как механический процесс воплощения замысла по готовым лекалам с помощью языков программирования и сопутствующей программной инфраструктуры.

Взамен термина «программирование» появилось много новых высокопарных и замысловатых слов — бизнес-процессы, объектные модели, системное проектирование, программная архитектура, программная инженерия, управление качеством, кодинг, реинжиниринг, рефакторинг…

В одном из самых авторитетных классификаторов (Computing Classification System) ведущей американской ассоциации ACM этот термин применяется исключительно в контексте языков и «приёмов программирования». За считанные годы произошло стремительное вымывание термина «программирование» в классической связке «школа-вуз-предприятие» и практически к ликвидации профессии программиста. Теперь это просто — кодер, ИТ-шник, компьютерщик, который по старинке ещё кое-где именуется программистом…

Программист превратился в жреца конкретного языка программирования. Причём языка, который внедрён в массы не за счёт своего технологического совершенства, не за счёт инструмента снижения себестоимости продукции, а как результат конкурентной борьбы лидеров индустрии за рынки и прибыль.

Вспомним доминантные универсальные языки последних 50 лет и те компании, которые вносили решающий вклад в продвижение: Фортран (IBM), PL/I (IBM), Бейсик (Microsoft), Паскаль (Borland), C++ (Microsoft), Java (Sun), C# (Microsoft). Особняком стоит Си. Он проникал в индустрию через разные диалекты UNIX, его продвигали на рынок сразу несколько компаний и здесь трудно кому-то отдать предпочтение.

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

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

По сути повторяется схема мировых финансовых пузырей. Что неудивительно: подобное экстенсивное программирование, завязанное на доминанту развития железа, — плоть от плоти классического ростовщичества.

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

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

Так кто оказался лишним на этом празднике жизни? Верно. Программист. Грамотный программист с сильной фундаментальной научной и инженерной выучкой. Так что же мы удивляемся тому, кого и как готовят университеты? Это проблема не одной России. Даже не столько России. Это проблема и не одной Европы.

Америка в компьютерной сфере давно уже подмяла науку под бизнес. Причём хоронила её методично. В двух словах это не изложить. Но многие ответы на вопросы можно найти в архиве работ Эдсгера Дейкстры. Остроумного и беспощадного в своей иронии критика: Карла Маркса и Марка Твена компьютерного программирования в одном лице.

Он неоднократно подчёркивал принципиальные различия между европейской вычислительной наукой (computing science) и американской компьютерной наукой (computer science), между информатикой (informatics) и компьютингом (computing). Жёстко противопоставлял разные культурные традиции Европы и Америки: науку — бизнесу, математику — машинам, мысль — наживе: «Вычислительная наука имеет не большее отношение к компьютерам, чем астрономия — к телескопам».

Дейкстра был до глубины души поражён соглашательской позицией научной интеллигенции: «Многие правительства заставляли свои университеты сотрудничать с промышленностью… В результате даже гениальный исследовательский потенциал должен был направляться на нечто недолговечное, мелкое или глупое». Ему претила рабская зависимость высшего образования от пропитанного жаждой наживы бизнеса: «Чтобы университет был лидером, он должен предлагать то, в чём общество нуждается, а не то, что оно запрашивает». Дейкстра был против того, чтобы приспосабливать программирование к неграмотности и посредственности. По его мнению, это не только унижает достоинство профессии, но и вредит делу.

Нашу страну Дейкстра посетил в сентябре 1976 г. Почти одновременно с этим вышла в переводе на русский язык его книга «Структурное программирование» (Edsger W. Dijkstra. Structured Programming, 1972), а два года спустя — и «Дисциплина программирования» (Edsger W. Dijkstra. A Discipline of Programming, 1976). По прилёту из Варшавы в Москву компанию ему составил его друг — Тони Хоар. С нашей стороны встреча была организована А. П. Ершовым и С. Б. Покровским. Путь Дейкстры пролегал из Москвы в Киев, затем в Ленинград, а оттуда в Новосибирск.

Как вспоминал Дейкстра, до этой поездки у него сформировалось ощущение, что к программированию в СССР не в пример США относились очень серьёзно, преимущественно им занимались люди с солидным математическим багажом. Его ожидания, по его же словам, полностью подтвердились. Но при этом он весьма откровенно отмечал наши недостатки: «Я был поражен восприимчивостью — я бы сказал даже беззащитностью русских перед иностранным (преимущественно американским) влиянием».

Дейкстра не стеснялся называть вещи своими именами: «Настало время сорвать маску с компьютерного сообщества — Тайного общества по созданию и сохранению искусственной сложности». Контроль сложности и избавление от всего наносного — вот истинный путь развития программирования: «Мы являемся свидетелями массового, повсеместного распространения полного ошибок программного обеспечения, из-за чего нам должно быть очень стыдно… Мы просто не знаем, до какой степени можно всё упростить». Как тут не вспомнить великого немецкого философа и российского подданного (с 1757 по 1762 гг.) Имманула Канта: «Кто отказался от излишеств, тот избавился от лишений».

Кратко обозначу некоторые моменты. В середине прошлого века центрами зарождения компьютерной жизни были ведущие страны: США, Советский Союз, Великобритания, Германия. Затем уже от работ в этих сверхдержавах пошли волны влияния по всему миру. Интеллектуальным мировым центром был американский Принстон, где в середине 1930-х годов были собраны лучшие умы (в основном из немецкого Гёттингена). В отношении вклада американцев в зарождении программирования есть, как всегда, сильные перекосы, внесённые ими же. То, как они принижали работы Алана Тьюринга, как обволакивали пеленой молчания беспощадную критику Эдгара Дейкстры, как непомерно возвеличивали Джона фон Неймана, Джона Бэкуса и др. своих соплеменников — предмет отдельных исследований.

При этом американцы в последние годы даже своих истинных национальных героев (Деннис Ритчи, Кен Томпсон, Дональд Кнут) подменяют в своём Пантеоне на дельцов и бизнесменов (Билл Гейтс, Стив Джобс, Марк Цукерберг).

Что касается Европы, американцы почему-то забывают об известном швейцарском математике Хайнце Рутисхаузере (Heinz Rutishauser). Долгое время его фамилия просто отсутствовала в английской части Wikipedia. А ведь начальные идеи по трансляции были выдвинуты в 1952 г., на самом раннем этапе развития программирования, именно Рутисхаузером, который опубликовал работу «Automatishe Rechenplanfertigung bei programmgesteuerten Rechenmaschinen» (ETH Zurich). В ней он изложил идею о том, что по естественной записи арифметического выражения можно построить эквивалентный ей фрагмент машинного кода.

Рутисхаузер тогда работал над проблемой автоматического кодирования (automating coding) для швейцарского компьютера ERMETH. Напомню, что работы Конрада Цузе после крушения Третьего Рейха были продолжены в Швейцарии, в ETH Zurich. Рутисхаузер умер в возрасте 52 лет в 1970 г. Именно Рутисхаузер заложил фундамент компьютерной школы в ETH Zurich. Он возглавлял факультет информатики с 1968 г. до своей смерти. Профессор Фридрих Бауэр, автор блестящего труда «Информатика. Вводный курс», в 2002 г. написал свои воспоминания о Рутисхаузере.

Мои частые отсылки к ETH не должны вас смущать: центром противодействия американской культурной экспансии в программировании был и остаётся ETH Zurich, один из старейших и самых престижных университетов Старого Света, в стенах которого учились и работали такие выдающиеся учёные и инженеры, как Альберт Эйнштейн, Джон фон Нейман, Конрад Цузе, Никлаус Вирт.

Если говорить о нашей страны, то, как пишут Э. З. Любимский, И. В. Поттосин и М. Р. Шура-Бура («От программирующих программ к системам программирования»): «Эта работа (речь о статье Рутисхаузера — Р.Б.) дала толчок к возникновению процессоров, в своём входном языке допускающих естественную запись выражений. А. А. Ляпунов в те же годы атаковал проблему с другой стороны. Он заметил, что структура программы включает в себя операторы из небольшого набора типов и может быть представлена формально в виде строки, соответствующей последовательности операторов программы. На языке операторных схем программа представляется как схема, соответствующая управляющему графу программы, и совокупность спецификаций каждого оператора. Эти идеи А. А. Ляпунов положил в основу курса по программированию, читавшегося им в Московском Университете. Понятие программы как некоторой операторной структуры, взгляд на программу сверху, было революционной идеей, которая практически сразу же легла в основу первых отечественных трансляторов». С того курса Ляпунова в МГУ и вышел наш первый программист-академик — А. П. Ершов. А законченная в 1954 г. программирующая программа ПП-1 (С.С.Камынин, Э. З. Любимский), созданная на основе операторных схем, была одним из первых в мировой практике трансляторов с самым высоким уровнем входного языка. Как отмечается в уже упомянутой работе Любимского, Поттосина и Шура-Бура, с трансляции начиналось не только системное, но и теоретическое программирование. Именно работы по входным языкам (операторным схемам) и трансляторам (программирующим программам) послужили толчком к созданию первой математической модели программ — схемам Янова («О логических схемах алгоритмов», 1958). Начальным толчком к появлению такой известной модели, как стандартные схемы стала работа А. П. Ершова, одного из создателей первых трансляторов, по операторным алгоритмам («Об операторных алгорифмах», 1958)».

Формальные языки, верификация и методы трансляции... Именно эта сфера фундаментального программирования, где наши научно-инженерные традиции со времён Советского Союза огромны, и остаётся нашим сильным козырем в борьбе за мировое лидерство в ИТ. 

Не стоит забывать, что несмотря на относительную самостоятельность национальных исследований источником раздражения, стимулирующим работы, были прежде всего американцы. Подвергая критике американцев, нельзя не отметить, что американскую школу научно-инженерной элиты прошли те же Х. Рутисхаузер и Н. Вирт (автор Паскаля, Модулы-2, Оберона; друг и сподвижник Дейкстры). Организационная инфраструктура компьютерных наук в цюрихском ETH и новосибирском Академгородке делалась с примера американского Стенфорда. Да и важные проекты проф. Вирта (Modula-2/Lilith, Oberon/Ceres), столь красноречиво замалчиваемые в наши дни, в значительной мере шли под влиянием предшествующих работ американцев в Xerox PARC (Mesa и Cedar).

Историю о том, как раскручивалась Java, я уже излагал в статьях «Гадание на кофейной гуще» (Мир ПК, #02/1998) и «Java на марше» (Мир ПК, #09/2002). Во главе раскрутки был всё тот же Эрик Шмидт (Eric Schmidt), который стоит во главе Google и является членом совета директоров Apple. В Sun он пришёл из Xerox PARC, а после ухода из Sun с 1997 по 2001 гг. был исполнительным директором Novell. По состоянию на 2023 г. он c 2001 по 2015 гг. возглавлял Google, с 2015 по 2017 гг. был исполнительным президентом Alphabet, которая является надстройкой над Google. А затем этот миллиардер скромно так перешёл на пост технического консультанта Alphabet, ну и попутно засветился в Попечительском совете Фонда «Сколково» и в Бильдербергском клубе.

В чём сила Штатов? Как известно, американцы создали две крупнейших профессиональных ассоциации (ACM в 1947 г. и IEEE Computer Society в 1963 г.), чьё влияние даже изначально не ограничивалось территорией США, а теперь уже стало де-факто всемирным. Тогда как европейцы равнодушно взирали на обломки международной IFIP (1960), расквартированной у себя дома. Единственным противовесом было Британское компьютерное общество (British Computer Society, 1957). В начале 2000-х годов европейцы во многом благодаря кипучей деятельности Бертрана Мейера, считающего себя учеником А. П. Ершова, начали просыпаться и организовываться. Напомню, что осенью 2005 г., сразу после возвращения швейцарского проф. Никлауса Вирта (ETH Zurich) из Большого турне по России (где он был в регионах будущих технопарков страны), в Цюрихе прошёл Европейский саммит по компьютерной науке (European Computer Science Summit).

Кстати, Европейский центр программирования был создан в Москве тоже осенью 2005 г. Создан на базе инфраструктуры и информационных материалов, которые обеспечивали поддержку Большого турне Вирта по университетам России (сентябрь-октябрь 2005).

Впервые за последние десятилетия Европа смело тогда заявила о том, что не намерена слепо идти по пути, который исповедует Америка, что у Европы есть свои богатейшие традиции в этой области и своё видение развития компьютерной науки.

От России ездил проф. Виктор Павлович Гергель (ННГУ, Нижний Новгород, декан факультета ВМК), который, кстати, развивал Zonnon-направление (продолжение линии виртовского Оберона) в контексте сотрудничества с Intel и Microsoft в сфере компьютерного моделирования и параллельных вычислений. Увы, в июне 2021 г. он ушёл из жизни.

Подготовительная работа Бертрана Мейера принесла свои плоды. Была сформирована самостоятельная европейская организация Informatics Europe. Сфера её интересов — образование и наука в Европе в контексте информатики (компьютинга). Это, конечно, не масштаб и не капитальность ACM и IEEE Computer Science. Но дело с мёртвой точки вроде бы сдвигалось…

К сожалению, следует признать, что ещё до февраля 2022 г., когда и разразился масштабный общемировой военно-политический кризис, Европа, начавшая пересматривать свою почти рабскую зависимость от Штатов, так и оставалась на положении научного и технического вассала.


Моё глубокое убеждение, не изменившееся за прошедшие почти два десятка лет: самостоятельно, без потенциала России и стран бывшего Союза, из нынешней ямы Европе просто не выбраться. Слишком многое упущено. А самой России ещё лишь предстоит осознать и действенно воспринять насущную необходимость своей роли будущего лидера в мировом компьютерном программировании.


Руслан Богатырев — математик, поэт, публицист, историк науки и искусства, директор Европейского центра программирования им. Леонарда Эйлера, вед. эксперт Комитета национального наследия, главный редактор арт-журнала «Пантеон».