Грейс Мюррей Хоппер (Grace Murray Hopper)
Грейс родилась 9 декабря 1906 года в Нью-Йорке. Родители, отец – Уолтер Флетчер Мюррей (Walter Fletcher Murray) и мать – Мэри Кэмпбел Хорн Мюррей (Mary Campbell Horne Murray), были без ума от малышки Грейс, старшей среди трех детей. Уолтер Мюррей работал страховым агентом, дела шли неплохо, и со временем он даже обзавелся собственной конторой, которая приносила хотя и не большой, но стабильный доход. По крайней мере, семья не бедствовала, и детишек летом вывозили на дачу, которую родители снимали в Нью-Гемпшире на берегу озера… Жизнь шла своим чередом – дети подрастали, Грейс, на правах старшей, верховодила малышами и к школе уже освоила чтение, что позволяло ей забавлять младших детей чтением сказок, а прочую родню она приводила в умиление, вполне сносно наигрывая на фортепиано десяток популярных мелодий. Однако помимо этих вполне обычных увлечений, свойственных девочке из приличной семьи, было у малышки еще одно развлечение, присущее скорее мальчишкам, нежели маленьким девочкам. Грейс привлекала техника. И не просто с точки зрения всяческих “блестящих штучек”, а из стремления познать, “как это все работает”. Семь будильников семьи Мюррей превратились в семь кучек шестеренок, колесиков и прочих совершенно замечательных деталек, пав жертвой любопытства маленькой Грейс.
Но, как известно, все хорошее проходит. Закончилось и беззаботное детство Грейс. Начались школьные будни. По моде того времени, она обучалась в частной школе для девочек, где основными предметами были этика, приятные манеры, домашнее хозяйство и музицирование – вещи, необходимые благовоспитанной леди. Впрочем, по представлениям американцев, наверное, доставшимся им в наследство от ковбоев Дикого Запада, истинная американская леди, кроме того, должна была быть выносливой и сильной, а потому физические упражнения и спортивные игры тоже входили в программу обучения. Возможно, что именно занятия спортом приучили не отличавшуюся особой силой Грейс преодолевать трудности, а может, это качество было в ней и от природы…
Как бы то ни было, а Грейс мечтала о поступлении в математический колледж, чему в немалой степени способствовали обнаружившиеся у девочки способности к точным наукам, которые она унаследовала от своей матери. Однако американское общество начала века еще только начинало вкушать плоды феминизма, и истинным предназначением женщины считались традиционные ценности в виде семьи, детей, мужа… Серьезное изучение математики, в глазах общественного мнения, было неподобающим занятием для представительницы прекрасного пола. А потому шансов на воплощение своей мечты у Грейс Мюррей было немного. Впрочем, жизнь – штука сложная, порой приносящая неожиданные сюжетные повороты, до которых не додумался бы ни один романист. Как это ни горько звучит, но именно несчастье, произошедшее в семье, позволило Грейс реализовать свою мечту. Случилось так, что отцу, страдавшему тромбофлебитом, ампутировали обе ноги… Увы, Уолтеру Мюррею было уже не под силу содержать семью и, что самое по тем временам ужасное, он не мог обеспечить хорошего приданого своим двум дочерям. Отец принял единственно возможное решение – дать девочкам хорошее образование, наравне с единственным сыном, чтобы они могли позаботиться о себе сами. Именно отец, как позже признавалась Грейс Мюррей, вдохновил ее на получение высшего образования, презрев общественное мнение, уготовившее ей стандартную роль домохозяйки. И она сполна использовала представившуюся возможность.
В 1923 году шестнадцатилетняя Грейс Мюррей подала документы в Вассар Колледж (Vassar College) и успешно… “срезалась” на экзамене по латыни. Пришлось Грейс основательно проштудировать этот “мертвый” язык, и следующая попытка, предпринятая через год, увенчалась успехом. Тут надо сказать, что история самого Вассар Колледжа заслуживает отдельного описания. Основателем этого учебного заведения в 1861 году стал Мэтью Вассар, потомственный пивовар. Сам не имевший даже среднего образования, Вассар всегда тянулся к знаниям, и, будучи весьма прогрессивным человеком, он половину своего состояния (около полумиллиона долларов, по тем временам сумма астрономическая) вложил в основание первого в Америке женского колледжа. Да не простого, а колледжа, дававшего своим ученицам полноценное образование. И вот именно этот колледж закончила в 1928 Грейс Мюррей. Девушка получила диплом бакалавра математики и физики, а ее успехи были отмечены почетным дипломом старейшего академического общества “Фи Бета Каппа” (Phi Beta Kappa).
На этом, однако, образование не закончилось. В 1930 году она успешно окончила Йельский университет (Yale University), став магистром математики. И в этом же году Грейс Мюррей стала миссис Хоппер, выйдя замуж за Винсента Фостера Хоппера (Vincent Foster Hopper), преподавателя английской словесности Нью-Йоркской коммерческой школы. Правда, некоторые острословы из числа сокурсников утверждали, что решающим фактором для Грейс при выборе мужа послужила его удивительная фамилия – Hopper (блоха). Ведь Grace Hopper – это не что иное, как грациозная или изящная блоха. Студенты есть студенты! Но, с другой стороны, замужество все-таки вещь серьезная, хотя кто знает, кто знает…
В 1931 году миссис Грейс Мюррей Хоппер вернулась в Вассар Колледж преподавателем математики с окладом 800 долларов в год, или что-то около 67 долларов в месяц. Казалось бы, начинается тихая семейная жизнь, но только не для “бедовой девчонки” Грейс. В1934 году Грейс Мюррей Хоппер стала первой в истории женщиной, защитившей в Йельском университете докторскую диссертацию по математике. Пришло признание ее математических заслуг, и для госпожи Хоппер началась новая жизнь. Участие в международных конференциях и семинарах, доклады и выступления в американских университетах, успешная научная работа, собственная кафедра, профессорство и… крах личной жизни. В 1940 году супруги расстались. А вслед за этим профессор Хоппер приняла решение о поступлении на военную службу. Грейс любила нестандартные ходы. Впрочем, до воплощения в жизнь очередного решения этой неординарной женщины было не так-то и близко. Дело в том, что рекрут Грейс Мюррей Хоппер ни по каким параметрам не подходила для армейской службы. Начать с того, что возраст был у нее уже далеко не призывной (34 года), по меркам военных, весила она слишком мало, для того чтобы ее можно было призвать на службу, да к тому же страдала гастритом, слабыми легкими и вдобавок ко всему еще и была профессором математики. Вы себе представляете тощего профессора математики, несущегося по полю с винтовкой наперевес? Вот и армейское начальство такой картины себе представить не могло и потому всячески пыталось доказать “этой взбалмошной дамочке”, что ни армия, ни флот США в ее услугах не нуждаются. Но у рекрута Хоппера на этот счет было свое мнение.
Как это ни странно, Грейс опять же помогло несчастье. Началась вторая мировая, и требовались новобранцы. Три года госпожа Хоппер добивалась своего, собирая всяческие комиссии и добиваясь от военных специальных решений по своему вопросу (“в виде исключения”, “принимая во внимание”, “с учетом обстоятельств”…). Наконец, в 1943 году под натиском этой хрупкой женщины вооруженные силы США капитулировали. Грейс Мюррей Хоппер была призвана на флот. После принятия в декабре 1943 года военной присяги и прохождения ускоренного курса военной подготовки младший лейтенант Грейс Мюррей Хоппер была прикомандирована к Интендантскому управлению ВМФ США. Место службы – Бюро артиллерийских вычислительных проектов при Гарвардском университете. Должность – третий программист вычислителя Mark I, едва ли не первой в мире автоматической электронной вычислительной машины, обладавшей фантастическим быстродействием, – до трех арифметических действий в секунду.
Все это великолепие использовалось для расчета баллистических таблиц, столь необходимых для артиллерийских стрельб. Надо сказать, что работа эта была достаточно нудной и требовала от программистов громадной усидчивости и внимания, поскольку для осуществления повторяющихся расчетов приходилось каждый раз заново создавать программу. Так вот при работе на компьютере Mark I впервые были введены некоторые приемы, которые в дальнейшем нашли практическое применение в программировании, став своеобразной классикой. В частности, первыми инструментами, которые экономили труд программистов, стали подпрограммы: в августе 1944 года для Mark I была написана первая подпрограмма для вычисления sin(x). Хотя справедливости ради надо сказать, что сам термин “подпрограмма” был введен позже англичанином Морисом Уилксом.
Дальнейший ход событий объяснялся извечной человеческой ленью. Ну посудите сами, обидно и скучно каждый раз заново писать одни и те же программы, зная, что кто-то уже этим занимался. И то решение, что уже витало в воздухе, привнесла в практику программирования именно Грейс Хоппер. Она занялась “коллекционированием”… подпрограмм. Коллекция пополнялась достаточно быстро, и вскоре уже накопилась целая “библиотека подпрограмм” из лучших образцов творчества ее коллег. Нехитрый подход позволил убить сразу двух зайцев. Во-первых, уменьшилось время, требующееся для разработки новых программ, поскольку заново нужно было разрабатывать только те элементы программы, которые до этого еще не опробовались. А во-вторых, резко уменьшилось количество ошибок, поскольку ранее разработанная программа была отлажена предшественниками и, как правило, уже не содержала ошибок. Выигрыш был очевиден.
За безупречную службу и работу на вычислительных машинах серии Mark (Mark-I, II, III), Грейс Мюррей была отмечена флотским командованием. Кстати, примерно к этому же времени относится еще одна, поистине анекдотическая ситуация, приведшая к появлению нового термина в программировании – debugging. Случилось так, что в компьютер Mark II неведомо каким образом залетел мотылек и… закоротил контакты одного из бесчисленных реле внутри вычислительного “монстра”. Позже Грейс Мюррей Хоппер так рассказывала об этом случае: “Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debugging). Термин debugging (отладка) с тех пор прижился и стал использоваться для обозначения поиска неисправностей в компьютере, особенно в программном обеспечении”.
В 1949 году Грейс Хоппер перешла на работу старшим математиком во вновь образовавшуюся фирму Eckert-Mauchly, которая занималась разработкой первых электронных вычислительных машин. Хоппер принимала участие в разработке программных средств для коммерческого компьютера UNIVAC-1.
И тут неутомимая Грейс опять-таки придумала, что можно модернизировать. Надо сказать, что в то время для облегчения процесса составления программ на машинном языке вместо записи команд в двоичной системе счисления использовалась восьмеричная система счисления. Грейс Хоппер так хорошо освоила эту систему, что однажды даже заполнила баланс своего банковского счета в восьмеричной системе счисления, забыв, что банки пока что еще работают в десятичной системе. “Я столкнулась с проблемой жизни в двух мирах, – вспоминала Грейс Хоппер, – вероятно, это было одной из причин, побудивших меня по возможности избавиться от восьмеричных чисел”. Как это можно сделать? Заставить компьютер “понимать” более-менее обычный человеческий язык! Идея для того времени просто-таки революционная. Впрочем, у Грейс Хоппер уже был предшественник.
В 1949 году Джон Моучли создал систему под названием Short Code. Она позволяла записывать решаемую задачу в виде математических формул. Дальше при помощи специальной вспомогательной таблицы нужно было символ за символом преобразовывать эти формулы в двухлитерные коды. На следующем шаге специальная программа компьютера превращала эти коды в двоичный машинный код. Система хотя и облегчала процесс написания программы, все же была достаточно громоздкой и неудобной. “Ленивая” Грейс Хоппер решила упростить ее. Конечно, упростить с точки зрения потенциального пользователя, а отнюдь не структуры самой системы.
В 1951 году Грейс Хоппер создала первый компилятор. Она же, кстати, ввела в обиход и сам этот термин. Разработанный компилятор осуществлял функцию объединения и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. Первый компилятор получил обозначение А-0, затем, по мере его расширения и улучшения, в последующие годы появились версии А-1, А-2, А-3.
В 1954 году группой под руководством Грейс Хоппер была разработана система АТ-3, которая включала в себя язык программирования и компилятор. В дальнейшем система получила коммерческое название MATH-MATIC и продавалась компанией Remington Rand (новое название Eckert-Mauchly) вместе с компьютером UNIVAC-1.
При создании нового языка программирования Грейс Хоппер использовала революционный по тем временам подход. Для начала было отобрано около 30 английских легко запоминающихся слов типа: add (сложить), compare (сравнить), transfer (переслать). Слова были отобраны не простые – каждое из них содержит неповторимую комбинацию из первой и третьей букв, поэтому компилятор при генерации машинного кода мог игнорировать все остальные буквы в слове. В дальнейшем этот принцип стал использоваться при создании прочих языков программирования.
В 1956 году было завершено создание “необычного” языка и компилятора. Он получил название В-0, а с 1958 года система В-0 поступила на рынок под коммерческим названием FLOW-MATIC. В отличие от языка ФОРТРАН, ориентированного для разработки научных приложений, FLOW-MATIC был первым языком для задач обработки коммерческих данных.
В 1959 году началась работа по созданию еще более совершенного, аппаратно-независимого языка для коммерческих приложений. Она успешно завершилась в 1961 году созданием языка COBOL (Common Business Oriented Language). Одним из основных консультантов при создании языка была, конечно же, Грейс Мюррей Хоппер, получившая с тех пор забавное прозвище “бабушка КОБОЛА”. Кстати, COBOL до сих пор используется во многих финансовых приложениях.
В возрасте шестидесяти лет Грейс Хоппер получила звание капитана третьего ранга, и она отправилась на заслуженный отдых. Но если сама капитан Грейс Хоппер могла обойтись без флота, занимаясь любимой математикой и программированием, то, как оказалось, флот без нее – нет. Через год, в 1967 году “пенсионерка” вернулась на действительную военную службу. С ней был подписан “пожизненный контракт”, и Грейс Мюррей Хоппер назначили на должность главного системного аналитика американского военно-морского флота. Редчайший, едва ли не единственный случай в истории американского флота, когда военнослужащий-женщина была вновь призвана на военную службу!
К 1980 году Грейс Хоппер стала капитаном Управления вычислительной техники в Вашингтоне. В 1983 году она получила звание капитана первого ранга, а в ноябре 1985 года – звание контр-адмирала, став первой и единственной женщиной в мире, удостоившейся такого звания на исходе восьмого десятка. А с 1982 года и вплоть до своей окончательной отставки в 1986 году она была старейшим действующим офицером американской армии.
Только не надо думать, что возраст сказался на задоре и энтузиазме “бабушки программирования”. Обзаведясь после возвращения в строй собственным кабинетом, “кэп три” Хоппер поспешила украсить его настенными часами, идущими в обратную сторону, а на стол водрузила коробку для хранения документации с шокирующей надписью… “personal computer”.
Круг ее интересов не ограничивался исключительно воинской службой – Грейс Хоппер преподавала вычислительную математику студентам и военным слушателям. Учеников поражала ее образность, юношеский задор и сумасшедшая жестикуляция. В легенду вошли ее “вещественные” призывы к оптимизации затрат времени и сил. Так, например, экономия одной наносекунды иллюстрировалась 30-сантиметровым куском медной проволоки. А как-то раз Грейс не поленилась принести в аудиторию целую “микросекунду” – трехсотметровую катушку провода.
Более 40 университетов и колледжей присвоили ей различные звания. А когда в 1969 году впервые выбирали “человека года” в компьютерном мире США, то именно Грейс Мюррей Хоппер была удостоена этого звания.
И все же годы брали свое. В 1986 году в восьмидесятилетнем возрасте контр-адмирал Грейс Мюррей Хоппер была окончательно списана с флота. Правда, старушка на этом не успокоилась и еще успела поработать консультантом в компании DEC. А в 1991 году лично президент Соединенных Штатов Америки Джордж Буш (отец нынешнего президента США Джорджа Буша, теперь уже младшего) вручил ей Национальную медаль за развитие технологий.
1 января 1992 года Грейс Мюррей Хоппер не стало. Вместе с ней ушла целая эпоха в истории вычислительной техники, когда сила и убежденность одиночек закладывали основу для дальнейшего развития программного и аппаратного обеспечения на десятилетия вперед. Вклад Грейс Хоппер в развитие программирования трудно переоценить и можно сравнить разве что с тем, какое значение имели работы Ньютона для развития физики.
Как и положено по флотскому уставу, контр-адмирала Грейс Мюррей Хоппер похоронили на Арлингтонском кладбище, отдав все воинские почести. Впрочем, на этом история не заканчивается… Весной 1996-го в состав ВМФ США вошел ракетный фрегат USS Hopper (DDG 70).
Так что контр-адмирал Грейс Мюррей Хоппер по-прежнему в строю. Да и фрегат, наверное, пришелся бы старушке по вкусу, ведь Потрясающая Грейс, как ее называли на флоте, с детства любила технику…