Чародейка чисел: Как Ада Лавлейс написала первый в мире программный код
ИТ начались не с Билла Гейтса и Стива Джобса, и даже не с Алана Тьюринга. Первым программистом в истории была Ада Лавлейс — дочь знаменитого лорда Байрона и завсегдатая салонов начала 19 века. Рассказываем, как Лавлейс изобрела современное программирование и почему ее влияние до сих пор ощущается в этой области.
Портрет программистки в юности
Ада Лавлейс родилась 10 декабря 1815 года под именем Августа Ада Байрон. Если вы узнали эту фамилию из школьных уроков литературы, вы не ошиблись — она была единственным законным ребенком знаменитого поэта-романтика лорда Байрона, которым вдохновлялись Пушкин и Лермонтов.
Сам Байрон не участвовал в воспитании дочери — его экстравагантная жизнь прошла в путешествиях по миру вдалеке от ребенка. Более того, он развелся с матерью Ады, Анной Изабеллой Милбэнк, когда девочке было два месяца. Однако парадоксальным образом именно отец стал главной причиной того, что юная Ада начала изучать математику и логику — большая редкость для женщин того времени.
Все потому, что мать старалась уберечь ее от романтических склонностей поэта и активно занималась образованием дочери. Ада активно интересовалась наукой. Уже в 12 лет она мечтала летать и скрупулезно разрабатывала проект механических крыльев и приборов для навигации. А к 17 годам занималась математикой и инженерией на уровне значительно выше своего возраста.
Интересы привели девушку в свет, где она познакомилась со знаменитыми учеными того времени: Майклом Фарадеем, изобретателем стереоскопа Чарльзом Уитстоуном, физиком Дэвидом Брюстером и одним из последних «джентльменов науки» Эндрю Кроссом.
Первая программистка знакомится с изобретателем первого компьютера
В это же время Ада вела переписку с Мэри Сомервилль, специалистом в области математики и астрономии, которая проложила дорогу женщинам в науке. Благодаря обширным контактам Сомервилль в научных кругах состоялось судьбоносное знакомство Ады с Чарльзом Бэббиджем — профессором математики Кембриджского университета. И они быстро стали близкими друзьями и единомышленниками.
Большинство считает компьютеры и программирование явлениями 20 века. Однако первые вычислительные устройства разработали за много столетий до того, как Ада Лавлейс написала первый код. Самая древняя из них — Антикитерский механизм, который был создан, по разным подсчетам, от 200 до 105 года до н.э.
А первую программируемую машину в 1206 году описал знаменитый механик Исмаил Аль-Джазари.
К 19 веку механические вычислительные машины вышли на новый уровень. Они могли выполнять сложнейшие подсчеты (в том числе извлекать квадратные корни) и различные прикладные задачи — например, играть музыку и вышивать узоры.
Именно Чарльз Бэббидж был одним из самых выдающихся разработчиков вычислительных машин того времени. В 1812 он загорелся идеей устройства для автоматических расчетов логарифмических таблиц. Ученый понял, что автоматизированная машина может заменить целую группу математиков и делать расчеты надежнее и быстрее.
Бэббидж получил более 17 тысяч фунтов (почти 2 миллион в пересчете на сегодняшние деньги) государственного финансирования, но за 10 лет так и не смог реализовать этот проект.
Впоследствии это обстоятельство оказалось крайне удачным для мира науки. Бэббидж переключился на разработку другого проекта — первой в мире аналитической машины и первого в истории прототипа современного компьютера.
Аналитическая машина захватывает воображение научного мира
Бэббидж задумал свое изобретение как более универсальный инструмент для вычислений, чем все предыдущие разработки того времени. Архитектура аналитической машины была очень похожа на современные компьютеры. Она должна была состоять из четырех элементов: склада, фабрики, управляющего элемента и устройства ввода-вывода информации. Склад предназначался для хранения значений переменных и результатов операций — аналог памяти в современных компьютерах. Фабрика играла роль процессора, а устройство для ввода-вывода считывало последовательность операций и переменные с перфокарт — дискет 19 века.
Проект не был реализован при жизни Бэббиджа. Королевский грант на него не одобрили, поэтому всю работу ученый финансировал сам. Он провел ряд успешных экспериментов, однако быстро понял, что технологии того периода неспособны обеспечить необходимые мощности.
Тем не менее, одной идеи первого компьютера и теоретического описания его работы было достаточно, чтобы произвести фурор в научных кругах. Бэббидж ездил с курсом лекций по всей Европе, а выдающиеся математики дискутировали о возможностях аналитической машины.
От первого компьютера к первому коду
Ада Лавлейс была одной из самых активных участниц этих дискуссий. Несмотря на то, что аналитическая машина физически не существовала, Лавлейс была главным экспертом по ней. Бэббидж даже называл ее «чародейкой чисел» из-за острого математического ума, который будто был создан для работы с его изобретением. Никто, даже сам создатель, не разбирался в устройстве настолько хорошо, как она. Поэтому Лавлейс взяла на себя работу по его популяризации.
В начале 1840-х годов она занималась конспектами курса лекций, с которыми Бэббидж выступил на математической конференции в Турине. Под предлогом перевода конспектов с французского на английский Лавлейс выпустила масштабный труд, который по объему в несколько раз превышал содержание самих лекций. Именно в этих работах в 1843 году был написан первый в истории программный код.
В своих комментариях к лекциям Бэббиджа она дала подробную инструкцию по работе с аналитической машиной, переосмыслила ее функционал и попутно изобрела современное программирование.
Лавлейс тщательно продумала, какие операции аналитической машины можно объединить в группы, которые можно будет повторять — разработав, таким образом, цикл. Она поняла, как важно отслеживать состояние изменяющихся переменных, и придумала запись, отражающую эти изменения.
Самой важной среди комментариев Ады была знаменитая «Заметка G» — подробное описание пошагового процесса, с помощью которого аналитическая машина могла вычислять числа Бернулли.
Программу Лавлейс впоследствии перевели на современные языки и обнаружили в ней несколько ошибок в расчетах. Вполне закономерно, что первая программистка также была создательницей первого в истории бага.
Слава первой программистке
К сожалению, жизнь Ады Лавлейс была недолгой: в 1852 году она скончалась в возрасте 36 лет от тяжелой болезни. Однако ее наследие живо до сих пор, и будет жить еще много веков.
Эта женщина перевернула с ног на голову ожидания своей эпохи и не только освоила математику, но и затмила интеллектом даже самого изобретателя аналитической машины.
Ада была не только интеллектуалом, но и смелой мечтательницей. В своих заметках она представляла, как аналитические машины будут обрабатывать любую структурную информацию, в том числе музыку и искусство, по сути предсказала эру современных компьютеров.
При жизни гениальность Ады Лавлейс не оценили по достоинству, но сегодня ее имя знает каждый айтишник. В честь нее назван язык программирования Ада, который считается одним из самых устойчивых к багам и поэтому используется в авиации, космических и оборонных проектах.
За свою короткую жизнь Лавлейс заложила фундамент современного цифрового мира и закрепила за собой место в истории как первая программистка. Ее не остановили ни предубеждения 19 века, ни проблемы со здоровьем, и она по сей день остается иконой для женщин в науке, технологиях, инженерии и математике по всему миру.
Каждый второй вторник октября в мире отмечается День Ады Лавлейс. Этот праздник подчеркивает достижения женщин в области STEM и вдохновляет девушек на карьеру в этих сферах.