Для корректного восприятия исторических событий всегда нужен контекст — фон на котором происходили те или иные открытия, разрабатывались теории и воплощались в жизнь инструменты. Нет никакого смысла перечислять отдельные имена, даты, расставлять вехи, размечать эпохи без рассмотрения причин, следствий — тех явлений, которые предшествовали им и следовали за ними.
Вот, например, когда речь заходит о Чарльзе Бэббидже, часто говорится, что будто бы он такой уникальный человек, который чуть ли не родился с идеей о построении прообраза цифрового вычислительного устройства, за тем, что бы потом, через сто лет, потомки воспользовались его идеями и построили уже современный компьютер.
"Бэббидж обогнал свою эпоху на 100 лет, ему бы жить в первой трети XX века. В 1864 году он писал: «Пройдет, вероятно, полстолетия, прежде чем люди убедятся, что без тех средств, которые я оставляю после себя, нельзя будет обойтись»." - пишет журналист Леонид Черняк в 2001 году в журнале Computerworld.[1]
Надо понимать, что все на самом деле было куда прозаичнее и прагматичнее, хотя история и действительно до сих пор остается местами удивительной и, конечно же, имеет полное право называться вехой.
Тем временем, совершенно нетрудно воссоздать некий дух времени описываемой истории. Может быть не в деталях и каких-то подробностях личной жизни Бэббиджа и его окружения, но в целом, оперируя крупными мазками, можно представить чем жили и о чем мечтали тогдашние изобретатели и ученые.
Итак, Англия начало и середина XIX века. Британская империя, после поражения Наполеона Бонапарта, переживает бурный рост в связи с колонизацией большей части Индии. Лондон становится самым крупным городом на планете. Развивается торговля, в том числе и посредством морских путей сообщения, происходит техническая революция связанная с применением паровой машины. Строятся первые железные дороги, создаются поезда, железнодорожный транспорт энергично толкает экономику острова вперед. Англия превращается из военно-морского центра в центр производства и технических новаций. Что обратной связью дает значительный рост финансирования науки и инженерного дела.
В этом контексте становится не очень удивительно, что достаточно знаменитый и влиятельный ученый получает средства и всестороннюю поддержку от Британского правительства на создание устройства, которое бы решило проблему расчетов экономических показателей, хлынувших непрерывным потоком в королевскую казну. Как бы выразились сейчас: Бэббидж получил оборонный заказ.
А вот что цитирует Леонид Черняк в той же статье в журнале: "Analytical Engine так и не была построена. Вот, что писал сам Бэббидж в 1851 году: «Все разработки, связанные с Analytical Engine, выполнены за мой счет. Я провел целый ряд экспериментов и дошел до черты, за которой моих возможностей не хватает. В связи с этим я вынужден отказаться от дальнейшей работы»."[1]. Что, как выясняется, не является историческим фактом. Ну или является правдой лишь отчасти - речь, очевидно, шла о периоде, когда по итогам первых двух попыток создания реально действующего устройства финансирование уже приостановили.
Более того, разумеется, не только в Британии, но и в целом в Европе продолжительное время стояла проблема оптимизации морских грузоперевозок, учета морских течений, приливов и отливов. Эпоха великих географических открытий, романтики, расширения империй закончилось - мир окончательно был поделен на зоны влияния, и началось сугубо экономическое промышленное освоение морского транспорта. А в этом контексте особое место в науке занимала именно вычислительная математика, позволявшая лучше планировать маршруты, работу портов и грузовых терминалов. Что, в свою очередь, опять же, давало серьезное преимущество, занимающемуся такого рода проблемами и вкладывающему ресурсы в решение таких задач государству, на международной арене.
Уже на протяжении без малого трех столетий ученые всего тогдашнего передового мира ломали головы не только над проблемами метафизики, но и активно предпринимали попытки усовершенствовать прикладную часть науки - методы вычислительной математики. Инженера непрерывно трудились над совершенствованием навигационных приборов, разнообразных приемов картографирования и учета времени. В общем-то вся предыдущая эпоха была бы невозможна без развития науки. В работу над этими проблемами была погружена львиная доля научного сообщества. И далеко не только великие, имена которых мы знаем сейчас, принимали в этом участие.
Так в 1614 один, не очень в то время известный, шотландский математик Джон Непер опубликовал то, что нынче называется "логарифмическая таблица"[2]. Переиздания и усовершенствованные варианты которой использовались экономистами, статистами, инженерами и математиками вплоть до появления в широком доступе карманных "научных калькуляторов". В Советском Союзе, например, изучение Таблиц Брадиса и логарифмических линеек, входило в школьную программу аж до середины 90-х. (Вообще не плохо было бы и сейчас детям иметь о них какое-то представление).
К таблице логарифмов прилагалась инструкция — пошаговый алгоритм того как, используя заранее вычисленные числа, получить другие искомые значения в сложных вычислениях. По сути в современных терминах предлагалась база данных и программа, которая бы позволяла манипулируя этими данными получать новые результаты. Сами же данные представляли из себя так же результат некоторых, заранее сделанных вычислений, которые, как потом стало выясняться, имели ошибки. Ошибка вычисления значения абстрактного исходного числа в таблице логарифмов могла, при неоднократном использовании этого числа, привести к довольно печальным реальным последствиям. Начиная с неверных статистических умозаключений, заканчивая застреванием грузовых судов на мелях, авариями и кораблекрушениями.
Считается, что Бэббидж заразился идеей исправить эти ошибки из-за своей черты характера делать всё максимально правильно и аккуратно[3]. Но, исходя из всего сказанного, появляется подозрение, что не только перфекционизм и личная нетерпимость к ошибкам сподвигла его поставить целью жизни создать свою "разностную машину". Такую, что бы лучше чем у других. А других счетных машин, надо отметить, тогда существовало, если не сказать в избытке, то довольно внушительное количество.
История вычислительной техники берет свои корни от счетных палочек, абаков и прочих примитивных приспособлений еще с доисторических времен. Чей-то приоритет или первенство тут обозначить крайне сложно. Даже если и удается установить имя непосредственного автора того или иного счетного устройства, то связано изобретение бывает не столько с каким-то замечательным открытием, а скорее с уровнем технологического развития того места, где был собран рабочий экземпляр. Идея, мысль, схема, как правило, витают в головах изобретателей задолго до того как реализация станет технически возможной и устройство получит физическое воплощение.
С этой точки зрения, очевидно, не только технический прогресс, холодный расчет, меркантильный интерес и государственная приемка привела Бэббиджа к его более масштабной идее: создания именно универсальной машины в противовес тому, что существовало на тот момент. Именно идея программного управления - машины, способной менять алгоритм работы не путем замены каких-то физических деталей и элементов, а путем замены абстрактной логики работы. Это можно обозначить флажком и установить вешку в мировой хронике.
Впрочем, как описывают историки, и это не было исключительно его смелым предложением. Уже тогда существовали хитрые ткацкие станки, способные создавать на ткани узор, который можно получить не путем переоборудования устройства, а с помощью перфорированных картонных карточек. Это были так называемые станки Жаккара по имени французского изобретателя Жозефа Мари Жаккара[4]. Программным управлением назвать такой подход сложно, так как это был механический перенос всего-лишь изображения с карточки на ткань, но тем не менее мысль о разделении материального оборудования и абстрактного узора была достаточно нетривиальна для того времени.
Таким образом, вклад Бэббиджа в программирование был значителен — всё-таки он первым предложил конкретный способ отделить алгоритм от устройства. С другой стороны, ответ на вопрос о том чей вклад оказался более применимым на практике того времени остается весьма неоднозначным: Джона Непера с его таблицами, Жаккара с его ткацким станком, Паскаля и Лейбница с их арифмометрами, королевы Англии Виктории, выделившей невероятные по тем временам ресурсы. Или, может быть, важнее был вклад, малоизвестного шведского изобретателя Джорджа Шутца, действительно работающую дифференциальную машину которого в итоге и приобрело правительство Великобритании[5], поняв, что Бэббидж витает в облаках?
Но вот, тем не менее, знает мир историю информатики по Чарльзу Беббиджу, который вообще-то никогда так и не построил ни одну из своих мегамашин. Шутка ли, в 1977 году в США основан целый институт по истории Computer Science имени Бэббиджа[6]. Нетрудно предположить с акцентом на чью личность создаются современные исторические очерки и работы. Более того, заслуженную или нет, об этом мы поговорим далее, славу получила и Ада Лавлейс, дружившая с ученым и разработавшая для этой несуществующей пока машины, первую... программу?
1. Чарльз Бэббидж — изобретатель и... политэконом. // Computerworld Россия, № 17, 2001. URL : https://www.osp.ru/cw/2001/17/40316 (дата обращения: 11.06.22)
2. Frank J. Swetz. Mathematical Treasure: John Napier’s Mirifici Logarithmorum // Mathematical Accociation of America. URL: https://www.maa.org/press/periodicals/convergence/mathematical-treasure-john-napier-s-mirifici-logarithmorum
3. Charles Babbage [Электронный ресурс] // Britannica. URL : https://www.britannica.com/biography/Charles-Babbage
4. Зворыкин А. А., Осьмова Н. И., Чернышев В. И., Шухардин С. В. История техники. — М.: Наука, 1962. С.117.
5. Georg & Edvard Scheutz [Электронный ресурс] // Computer History Museum. URL : https://www.computerhistory.org/babbage/georgedvardscheutz/
6. Фет Я. И. Чарльз Бэббидж и Ада Лавлейс. // Хрестоматия по истории информатики, отв. ред. Михайленко Б. Г. — Новосибирск : Академическое изд-во «Гео», — С. 18 - 25
Запощено под Alexander Depsla - The Imitation Game (OST)