Кем были первые программисты?
Программист — сравнительно молодая профессия, появившаяся, по разным данным, около 70 лет назад. За это время она успела проделать огромный путь, и деятельность современных программистов мало чем напоминает труд специалистов в этой области около полувека назад. В этой статье мы расскажем, с как возникла эта профессия, и о самых известных первопроходцах в этой сфере. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
1. Августа Ада Лавлейс
«Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели».
Ада Лавлейс
Это может оказаться сюрпризом, однако первым программистом была... женщина. Дочь знаменитого поэта-романтика Гордона Байрона появилась на свет в Лондоне, в 1815 году. Впрочем, брак лорда Байрона с матерью девочки, Анной Изабеллой Милбенк распался, когда ребенку было лишь 5 недель, и с того времени она ни разу не видела своего отца.
Ада провела свое детство в окружении многочисленных гувернанток, получив прекрасное разностороннее образование, больше всего ее интересовала математика и иные точные науки. В свои 12 лет девочка создавала чертежи оригинального летательного аппарата, работающего при помощи парового двигателя!»
В 1824 году Ада впервые познакомилась с математиком Чарльзом Бэббиджем, и эта встреча стала для нее знаковой. Ученый продемонстрировал Лавлейс модель своей разностной машины, сконструированной для автоматического подсчета логарифмов и тригонометрических функций, инструкции для которой предлагалось вводить при помощи перфокарт.
Лавлейс очень заинтересовалась проектом Бэббиджа, потратив немалое время на его изучение. Вскоре исследователь стал ее другом и наставником в области математической науки, и их сотрудничество было плодотворным и продолжалось на протяжении многих лет.
Хотя разностная машина ввиду ряда причин (сложности с технической реализацией, ограниченность бюджета) так и не была создана, этот проект вдохновил Чарльза на создание своего следующего проекта – аналитической машины. По сути, этот аппарат считается прародителем первого компьютера, хотят работающий прототип этой машины был создан спустя значительное время после смерти ученого.
По приглашению итальянских математиков, исследователь прочитал курс лекций о своем устройстве в Турине.
На основе этих материалов Луиджи Менабреа в 1842 году опубликовал статью об аналитической машине на французском языке.
Чарльз попросил Аду сделать ее перевод на английский, и она с вдохновением взялась за работу, сочтя это большой честью.
Однако Лавлейс не только перевела научный текст, но и расширила ее многочисленными емкими комментариями, включавшими в себя размышления по поводу особенностей конструкции устройства. В результате статья увеличилась в размерах более чем в три раза!
Особенно интересно, что в своих примечаниях Лавлейс описывала разработку плана операций для аналитической машины (программный алгоритм). Именно он считается первой программой, созданной непосредственно для компьютера. И несмотря на то, что она так и не была применена на практике, именно эту женщину называют первым программистом.
Далеко опередив свое время, Ада предположила, что вычислительная машина способна справиться с задачами, которые не под силу человеку.
Заметки Лавлейс легли в основу современного программирования. Ада ввела понятие цикла, определив его как набор команд, повторяющийся более одного раза. Такое нововведение позволило значительно сократить объем программного алгоритма. Без такой оптимизации применение машины было бы затруднительным, поскольку передача команд осуществлялась с использованием перфокарт, имеющих ограниченный размер.
По имени этой потрясающей девушки получил свое название язык программирования АДА, использующийся в военных силах США и НАСА. Помимо этого, в США в ее честь названы два маленьких городка и колледж.
2. Морис Уилкс
«Я точно помню тот самый момент, когда я понял, что большая часть моей жизни теперь будет состоять в поиске ошибок в моих собственных программах».
Морис Уилкс
Этот известный ученый появился на свет в 1913 году в Великобритании. Исследователь прошел обучение в Кембриджском университете, выбрав специальность радиофизика. После завершения учебы, он стал помощником профессора в математической лаборатории.
После окончания Второй мировой войны (ученый принимал участие в боевых действиях) Уилкс возглавил лабораторию и занимал этот пост на протяжении многих лет.
В 1946 году в руки исследователя попал доклад известного математика Джона фон Неймана о создании ЭВМ под названием EDVAC, стартовавшем в США.
Уилкса очень заинтересовали идеи, касающиеся записи и хранения программного кода в памяти электронных устройств. Вдохновленный докладом своего коллеги, Уилкс записывается на цикл лекций, посвященный теории и методам конструирования электронных цифровых компьютеров, в Электротехнической школе Мура. Позднее он скажет, что эти лекции стали одним из решающих событий в его жизни.
Вернувшись домой, исследователь приступает к созданию своей собственной машины. По сути, этот проект был копией машины фон Ноймана, однако Морис Уилкс внес ряд существенных изменений в его программную часть.
Для сокращения объема двоичного кода, использующегося при создании программ, он разработал первую в мире мнемоническую систему обозначения компьютерных команд, получившую название ассемблер. Так, действие вычитания кодировалось латинской S, передача информации в память – буквой T и т.д.
Еще одним нововведением была библиотека подпрограмм. В то время ученые вынуждены были записывать часто использующиеся программы в блокнот, чтобы не создавать их каждый раз заново. Однако, в соответствии с тем, как размещались эти алгоритмы в памяти устройства, код каждый раз видоизменялся, что делало его применение неудобным и отнимало много времени.
Морис оптимизировал этот процесс, создав единую библиотеку подпрограмм и алгоритм, автоматически размещающий их в памяти компьютера, активировавшийся короткой командой.
Позднее Морис со своей командой приступил к разработке следующей версии машины – EDVAC-2. Здесь ему удалось реализовать принцип микропрограммирования. Иными словами, он создал программу, которая осуществляет функцию управлению компьютером за счет команд, написанных в виде машинного кода.
Соответственно, разработка управляющей системы из конструирования непосредственно аппаратной части компьютера превращалось в задачу создания программного обеспечения. Кроме того, этот принцип позволял вносить изменения в работу компьютера, не создавая с нуля техническое оборудование.
3. Конрад Цузе
Изобретатель родился в столице Германии в 1910 году . Примечательно, что еще будучи школьником, Конрад создал действующую модель аппарата, разменивающего деньги.
Цузе выучился на инженера в Высшей технической школе и позднее устроился на работу в авиакомпанию. Очень скоро он столкнулся с необходимостью производить огромное количество однообразных скучных расчетов для проектирования самолетов. Решив подойти к этому творчески, молодой инженер задался целью сконструировать вычислительный прибор, используя вместо мастерской дом своих родителей.
В его планы входило создание ряда устройств, задуманных как вспомогательный инструмент для работы инженеров и проектировщиков. Первый прототип этого компьютера (V-1) был полностью автоматическим и располагался на площади размером 4 м2.
Во время войны он находился в составе действующей армии, однако сумел убедить свое командование в пользе своих разработок и вскоре был отправлен в авиационный исследовательский институт в Берлине для проведения исследований.
Разработки Цузе – это история научной работы и открытий одиночки: в военное время у него не было никакого доступа к исследованиям своих коллег, равно как и возможностей для сотрудничества. Ввиду недостатка финанфирования, исследователь был вынужден перейти от конструирования приборов к теоретической работе.
Ученый изобрел первый язык программирования высокого уровня, названный Планкалкюль. Он задумывался как система управления для одной из его машин (V-4), однако мог успешно применяться для схожих с ним устройств.
Инженер считал, что в основе языка должна лежать система числовых и символьных обозначений, основанная на принципах логики, иными словами – набор поэтапных шагов в решении задачи.
Цузе подчеркивал, что его язык подходит для реализации самых разных задач, в том числе математических операций и сортировки чисел.
Увлекшись шахматами, инженер также разработал множество фрагментов кода, позволяющих машине оценивать шахматные позиции.
Изобретатель никогда не надеялся, что его язык будет применен на практике. Он всегда говорил о том, что Планкалкюль возник как плод теоретических изысканий, безотносительно того, возникнут ли в ближайшее время устройства, которые позволят его реализовать.
Рабочая версия этого языка впервые была создана в Свободном университете Берлина только в 2000 году.
Научные труды ученого были изданы в полном объеме лишь в 1972 году. Кто знает, как мог повлиять Планкалкюль на развитие программирования, если бы исследователи в этой области смогли познакомиться с работами инженера намного раньше?