Как случилось, что первым в мире программистом стала женщина

1k full reads
1,5k story viewsUnique page visitors
1k read the story to the endThat's 66% of the total page views
7,5 minutes — average reading time
Как случилось, что первым в мире программистом стала женщина

В XIX век, век парового двигателя и газовых горелок, Европа влетела очень энергично, под барабанный бой и орудийную канонаду. Большие батальоны Наполеона Бонапарта очень аккуратно и быстро перекроили политическую карту мира. Как всюду и всегда отжившая своё система спасовала перед новыми методами управления. Люди работали с точностью часового механизма – Первый консул французской республики на этот счёт был лаконичен и последователен: «Не давать людям состариться – в этом состоит большое искусство управления». Не удивительно, что в конечном счете и управление механизмами пришлось подтягивать до уровня управления людьми.

В 1804 году (по некоторым данным – в 1801-м) французский изобретатель Жозеф Мари Жаккар разработал новый способ управления ткацким станком. Потребность бесконечно воюющей Французской республики (а со 2 декабря 1804 года – Империи) в текстиле вручную удовлетворить уже не представлялось возможным. Жозеф Мари Жаккар придумал способ программировать работу ткацкого станка для быстрого перехода от одного узора к другому. Для этого он применял специальные карточки с пробитыми отверстиями – перфорациями. Карты – перфокарты – соединялись друг с другом, образуя нечто вроде ленты. Эту ленту перфокарт историки вычислительной техники относят к одному из самых ключевых открытий, обусловивших компьютеризацию всего мира. Однако сам Жаккар об этом даже не догадывался ибо идея использовать перфокарту в вычислительном устройстве родилась в тот год, когда сам изобретатель отошел в мир иной, в 1834-м. Однако, всё по порядку.

Ткацкий станок Жаккара с перфокартами.
Ткацкий станок Жаккара с перфокартами.
Ткацкий станок Жаккара с перфокартами.

26 декабря 1791 года в семье богатого английского банкира Бэббиджа родился сын, получивший имя Чарльз. Чарльз рос очень серьезным и умным мальчиком, уроков не прогуливал, пиво пил в очень умеренных количествах и, как результат, через какое-то время стал заведовать кафедрой математики Кэмбриджского университет (да-да, той самой, которой когда-то заведовал сам сэр Исаак Ньютон). Дело было конечно не столько в пиве, сколько в страстном увлечении математикой.

Бэббидж был одним из основателей Королевского астрономического общества. Он много писал на самые разнообразные темы (не исключая политики – а как же без неё?). Но в 1821 году, обнаружив погрешности в логарифмах Неппера, приступил к изготовлению т.н. «разностной машины», которая могла бы выполнять более точные вычисления. В 1822 году пробная модель была построена. Она могла не только рассчитывать, но и печатать (!) большие математические таблицы. Проект этой машины был представлен Королевскому астрономическому обществу, но… Что-то там не заладилось и в 1832 году Бэббидж приступает к работе над новым проектом – «аналитической машиной». И вот тут произошла одна из тех эпохальных встреч, из тех, что влияют на развитие цивилизации.

Чарльз Бэббидж
Чарльз Бэббидж
Чарльз Бэббидж

В 1833 году Чарльз Бэббидж познакомился с 18-летней Августой Кинг Лавлейс. Нелишним будет ознакомиться с её биографией с самого детства – оно того стоит.

Ада Лавлейс родилась 10 декабря 1815 года в семье лорда Байрона. Однако великий английский поэт отнёсся к рождению дочери весьма прохладно – он очень рассчитывал на мальчика. Байрон дал дочери имя в честь своей сестры, Августы Марии. Тут вообще дело несколько тёмное. Поэт долгое время не знал своей сестры, поскольку та воспитывалась отдельно. Но позднее, встретившись, они сильно привязались друг к другу, а некоторые злые языки поговаривали даже о кровосмесительной связи. Как бы то ни было, но имя своей дочери Байрон присвоил в честь своей сестры. Вскоре, однако, жена Байрона вместе с одномесячной Адой (мать не любила имени Августа) по желанию Байрона уехала в дом своих родителей. Больше Байрон ни разу не видел свою дочку, поскольку через несколько месяцев навсегда покинул Англию, а вскоре умер. Ирония судьбы. Байрон подхватил лихорадку, но беспокоился больше о своей дочери, которая также часто хворала. Последний раз Байрон гулял со своим приятелем, когда получил письмо о выздоровлении Ады. Но пошёл ливень, великий поэт промок до нитки, болезнь обострилась и 19 апреля 1824 года Байрона не стало.

Ада Лавлейс в возрасте семи лет, 1822 год.
Ада Лавлейс в возрасте семи лет, 1822 год.
Ада Лавлейс в возрасте семи лет, 1822 год.

С родительской лаской Аде не повезло с раннего детства. Очень скоро её родная мать, Анна Изабель леди Байрон фактически бросила дочку, оставив на попечение своей матери. С раннего детства, как уже сказано, Ада часто болела. В восемь лет у неё начались частые головные боли, которые вызвали галлюцинации. В июне 1829 года после инфекции кори Ада Лавлейс оказалась фактически парализованной и целый год провела в постели. Только в 1831 году она смогла подняться и ходить с костылями. В общем, жизнь пробовала её на прочность. Однако несмотря на свою болезненность, а может быть именно благодаря ей, Ада с ранних лет проявила себя большой фантазёркой. В 12 лет будущая Леди Фея – так ласково позднее называл её Бэббидж – решила, что непременно должна научиться летать. Однако девочка не ограничилась бесплодными фантазиями, а подошла к делу основательно, изучив анатомию птиц и особенно птичьих крыльев. После этого стала составлять проекты изготовления крыльев, перебирая разные материалы, потребные для них, а также рассчитывала правильную пропорцию крыльев к своему телу. В итоге Ада пришла к выводу, что эти крылья необходимо объединить с паровым двигателем. Впрочем, до реализации проекта дело не дошло.

Одной из страстью Ады была математика. Её наставницей и старшей подругой была шотландская писательница, математик и астроном, Мэри Сомервилл. Сомервилл, самая бывшая большим учёным (ей, например, принадлежит работа, в которой доказывается на основании расчётов движения Урана, что должна существовать ещё одна планета; эта работа в итоге привела к открытию Нептуна) имела большую корреспонденцию с множеством ведущих учёных Европы. Среди её знакомых был и Чарльз Бэббидж, с которым в 1833 году Сомервилл познакомила свою воспитанницу Аду Лавлейс.

Ада Лавлейс в возрасте 17 лет.
Ада Лавлейс в возрасте 17 лет.
Ада Лавлейс в возрасте 17 лет.

Нам неизвестно вскружила ли молоденькая, изучавшая астрономию, латынь, музыку и математику Ада Лавлейс голову 41-летнему Бэббиджу. Однако в начале того же самого 1833 года у неё был роман со своим учителем, с которым Ада даже хотела убежать из дома. Родные с трудом замяли скандал. А что вы хотите? Она ведь была дочерью своего отца. Кровь! Впрочем, что бы там ни думал о красоте и уме Ады Бэббидж, под венец она пошла с другим – Уильямом Кинг-Ноэлем, 1-м графом Лавлей, свадьба с которым состоялась в 1835 году. Впрочем, пока мы говорим о 1833 годе. Ада сразу покорила Бэббиджа и своей красотой и, особенно, умом. Он пригласил её посмотреть на свой «разностный двигатель» – механический калькулятор для расчёта алгоритмов и тригонометрических функций.

«Разностный двигатель» Бэббиджа. Современная модель, построенная по оригинальным чертежам XIX века.
«Разностный двигатель» Бэббиджа. Современная модель, построенная по оригинальным чертежам XIX века.
«Разностный двигатель» Бэббиджа. Современная модель, построенная по оригинальным чертежам XIX века.

Прототип «разностного двигателя» Бэббидж сконструировал в 1822 году и получил от Британского правительства 1700 фунтов на постройку полноценной машины. К 1833 году, когда Бэббидж пригласил дочку Байрона полюбоваться на чудо техники, «разностный двигатель» ещё не было полностью отлажен. Механический монстр, который мог извлекать квадратичные корни из 20-разрядных чисел поразил Аду. Она стала посещать Бэббиджа и его машину так часто, как только могла, приняв самое горячее участие в его проекте. Бэббидж был очарован аналитическими способностями Ады, называя её «Волшебница Числа». Впрочем, работы по доведению «разностного двигателя» до совершенства застопорились. Всего Бэббидж потратил на своё детище более 17 тыс. фунтов. В 1842 году правительство отказалось от дальнейшего финансирования. Но к тому времени Бэббидж уже вовсю работал на своей аналитической машиной.

Аналитическая машина Бэббиджа.
Аналитическая машина Бэббиджа.
Аналитическая машина Бэббиджа.

Собственно, аналитическую машины в первом приближении Чарльз Бэббидж начал прорабатывать ещё в 1833 году. Для популяризации идеи аналитической машины Ада Лавлейс написала цикл статей. Аналитическая машина Бэббиджа объяснялась через такие понятия, как арифметико-логическое устройство (АЛУ), поток управления (фактически – программа расчёта) с ветвлениями и циклами, память и ряд других обыденных для современных компьютеров понятий, но которые в XIX веке были чем-то совершенно недоступным для понимания даже такими выдающимися мыслителями, как Майкл Фарадей. Программирование аналитической машины (поток управления) должен был осуществляться при помощи специальных перфокарт, за образец которых были взяты перфокарты Жаккара.

Два типа перфокарт – для ввода программы и для ввода данных – аналитической машины Бэббиджа.
Два типа перфокарт – для ввода программы и для ввода данных – аналитической машины Бэббиджа.
Два типа перфокарт – для ввода программы и для ввода данных – аналитической машины Бэббиджа.

Аде Лавлейс принадлежит авторство таких терминов, как «рабочая ячейка» и «цикл» – краеугольные понятия современного программирования («рабочую ячейку», правда, сейчас называют «переменной»).

В 1843 году Ада Лавлейс опубликовала (под псевдонимом AAL) свои заметки о разработке «аналитической машины». В этих заметках используются такие понятия, как «подпрограмма», «библиотека подпрограмм», «модификация команд», «индексный регистр» и некоторые другие из арсенала современных программистов. Непосредственным толчком к написании заметок стала лекция Чарльза Бэббиджа об аналитической машине, прочитанная им в 1840 году в Туринском университете. Стенограмма этой лекции была опубликована в 1842 году на итальянском языке. Ада Лавлейс сделала перевод на английский, сопроводив лекцию своими примечаниями – помеченными от A до G. Примечания получились в несколько раз более обширными, чем сама лекция. В примечании G Ада Лавлейс привела алгоритм (диаграмму) расчета чисел Бернулли на аналитической машине Бэббиджа. Это примечание G и считается сегодня первой в мире записанной компьютерной программой, хотя слова «компьютер» тогда ещё не использовалось.

Первый в мире опубликованный компьютерный алгоритм – диаграмма Лавлейса из примечания G.
Первый в мире опубликованный компьютерный алгоритм – диаграмма Лавлейса из примечания G.
Первый в мире опубликованный компьютерный алгоритм – диаграмма Лавлейса из примечания G.

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

К сожалению, эта выдающаяся женщина прожила всего 37 лет и скончалась в 1852 году – за сотню лет до начала использования её идей. После смерти Ады, Чарльз Бэббидж так и не смог закончить строительство своей аналитической машины. Возможно потому, что лишился женщины, которая была его страстным помощником и одновременно музой. А кроме того, он упёрся в чисто технические проблемы. То жуткое нагромождение шестерёнок, рычажков и прочих деталей привести в движение можно было только при помощи парового двигателя – единственного мощного движителя, который был известен цивилизации того времени. Незавершённую аналитическую машину Бэббиджа демонстрировали в 1862 году на международной выставке в Лондоне.

Демонстрация недостроенной аналитической машины Бэббиджа.
Демонстрация недостроенной аналитической машины Бэббиджа.
Демонстрация недостроенной аналитической машины Бэббиджа.

Так получилось, что аналитическая машина Бэббиджа не стала первым в мире – пусть и механическим – компьютером. Она не была достроена, а впоследствии была забыта. Однако при работе над ней появились многие понятия, которые стали базовыми для современного программирования. И это стало возможным во многом благодаря дочери лорда Байрона – Августе Аде Кинг Лавлейс. Именем этой выдающейся женщины назван объектно-ориентированный язык программирования – ADA, разработанный по заказу Министерства обороны США в 70-х годах XX века. А в наши дни в США каждый второй вторник октября отмечается День Ады Лавлейс с целью «…повышение роли женщин в науке, технике и математике» и «создание образцов для подражания для девочек и женщин» в этих областях.

Как случилось, что первым в мире программистом стала женщина