Чтение онлайн

ЖАНРЫ

Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию
Шрифт:

Подход Хоппер к программированию был систематическим. Она разбивала все физические проблемы или математические уравнения на мелкие арифметические шаги. «Вы просто говорите компьютеру, что делать, шаг за шагом, — поясняла она. — Нужно взять это число, и добавить его к тому числу, и положить результат туда-то. Теперь взять это число, и умножить его на то число, и положить его туда-то» [160] . Когда программа уже была набита на ленту и наставал момент ее проверять, команда, обслуживающая Mark I, сначала в шутку, ставшую потом ритуалом, вытаскивала молитвенный коврик, становилась на него лицом на восток и молилась, чтобы их работа оказалась успешной.

160

Beyer, Grace Hopper, 53.

Иногда по ночам Блох слегка переделывал что-то в аппаратуре компьютера, что создавало проблемы для компьютерных программ, которые писала Хоппер. Она была человеком несдержанным, бывало,

использовала крепкие словечки, и отборная брань, которой она поливала остолбеневшего долговязого Блоха, стала предвестником той смеси вражды и товарищества, которая возникнет между разработчиками аппаратных средств и программного обеспечения. «Каждый раз, когда я запускаю программу, он приходит ночью и меняет схемы в компьютере, а на следующее утро программа перестает работать, — сетовала она. — К тому же утром он уже дома, и спит, и не может рассказать мне, что переделал». Как в таких случаях говорил Блох: «Разверзались ворота ада. Айкен не умел воспринимать это с юмором» [161] .

161

Henry S. Tropp, The 20th Anniversary Meeting of the Association for Computing Machinery, IEEE Annals, июль 1987 г.

Из-за таких случаев Хоппер заработала репутацию грубиянки. Такой она и была. Но она также могла сочетать грубоватость с умением работать в команде — способность, присущая программистам экстра-класса. Это ощущение командного «пиратского» братства — то, что роднит Хоппер с программистами последующих поколений, — не ограничивало ее, а скорее делало более свободной. Как писал Бейер, «именно способности Хоппер к работе в команде, а не ее дерзкий характер, способствовали самостоятельности ее мышления и действий» [162] .

162

Beyer, Grace Hopper, 5.

На самом деле не у импульсивной Грейс Хоппер, а у спокойного Блоха были более сложные отношения с командиром Айкеном. «У Дика всегда возникали неприятности, — вспоминала Хоппер. — Я пробовала объяснить ему, что Айкен похож на компьютер. Он сконструирован определенным образом, и если собираешься работать с ним, ты должен понимать, как он собран» [163] . Айкен, который сначала был недоволен присутствием женщины в его подразделении, вскоре сделал Хоппер не только главным программистом, но и своим первым заместителем. Много лет спустя он вспоминал с благодарностью ее вклад в рождение компьютерного программирования. Как он говорил, «Грейс была хорошим парнем» [164] .

163

Хоппер, устный рассказ, Smithsonian, 5 июля 1972 г.

164

История Говарда Айкена, изложенная Henry Tropp и I. Bernard Cohen, Smithsonian Institution, февраль 1973 г.

Среди методов программирования, которые Хоппер в Гарварде довела до совершенства, было создание подпрограмм — частей программы, предназначенных для выполнения конкретных задач. Подпрограммы загружаются один раз, но их можно вызывать всякий раз, когда это необходимо, — в любой момент выполнения основной программы. «Подпрограмма — это четко определенная, удобно закодированная, часто повторяемая программа, — писала она. — В компьютере Mark I / Harvard имелись подпрограммы для вычисления sin х, log10 х, и 10x, каждая из которых могла вызываться одним операционным кодом» [165] . Это была та самая концепция, которую Ада Лавлейс впервые описала в своих «Примечаниях» к статье об аналитической машине. Хоппер собирала библиотеку этих подпрограмм, которая все время пополнялась. В процессе работы над программированием компьютера Mark I она разработала концепцию компилятора — устройства для перевода исходного кода на машинный язык, используемый различными компьютерными процессорами, что в конечном итоге облегчило написание одной и той же программы для множества машин.

165

Grace Hopper and John Mauchly, Influence of Programming Techniques on the Design of Computers, Proceedings of the IRE, октябрь 1953 г.

Кроме того, ее команда внедрила общепринятые в настоящее время термины bug (в переводе — насекомое), означающий ошибку в программе, и debugging (устранение насекомых), означающий отладку программы. Вторая версия машины — компьютер Mark II /Harvard был установлен в здании, где на окнах не было противомоскитных сеток. Однажды ночью машина вышла из строя, и команда стала искать причину проблемы. Внутри они нашли разбившуюся и застрявшую в одном из электромеханических реле ночную бабочку с размахом крыльев в десять сантиметров. Она была извлечена и приклеена в журнал записей скотчем. Запись гласила: «Панель F (бабочка) в реле. Первая конкретная причина программной ошибки найдена» [166] .

С тех пор поиски глюков, то есть отладку программы, называли «поиском багов в машине».

166

Harvard computer log, 9 сентября 1947 г., http://www.history.navy.mil/photos/images/h 96000/h 96566k.jpg.

К 1945 году, во многом благодаря Хоппер, компьютер Mark I / Harvard стал самым легко программируемым в мире большим компьютером. Он мог переключаться с одной задачи на другую, просто получив новые инструкции с бумажной перфоленты, и не требовал аппаратной переделки или перепайки кабелей. Тем не менее эта замечательная особенность в значительной степени осталась незамеченной и тогда, и в истории компьютеров, поскольку в компьютере Mark I (и даже в его преемнике, Mark II, построенном в 1947 году) использовались медленные электромеханические реле, а не электронные компоненты, в первую очередь электронные лампы. «К тому времени, когда кто-то что-то узнал о нем, — рассказывала Хоппер о компьютере Mark II, — он уже был малоэффективен, и все переходили на электронику» [167] .

167

Грейс Хоппер, устный рассказ, Smithsonian, ноябрь 1968 г.

Инноваторы в области компьютерных технологий, как и другие первопроходцы, могут оказаться в отстающих, если зациклятся на своих решениях. Те же черты характера, которые делают их изобретательными, например упрямство и умение сконцентрироваться, могут сделать их невосприимчивыми к новым идеям. Стив Джобс был известен своим упрямством и целеустремленностью, но он же поражал и сбивал с толку своих коллег, когда внезапно менял подход, поняв, что теперь необходимо направить мысли в другом направлении. Айкену не хватало гибкости. Он не был достаточно гибким, чтобы в нужный момент исполнить пируэт. Он инстинктивно вел себя как капитан корабля, наделенный единоличной властью, поэтому у его экипажа не было привычки свободно выдвигать новые идеи, как это было в команде Мокли и Эккерта в Пенне (Пенсильванском университете). Кроме того, Айкен ставил на первое место надежность, а не скорость. Поэтому он держался за использование проверенных временем и надежных электромеханических реле даже после того, как инженеры из Пенна и Блетчли-Парка поняли, что будущее за электронными лампами. Его Mark I мог выполнять только около трех операций в секунду, в то время как ENIAC, строившийся в Пенне, мог выполнять за то же время пять тысяч операций.

Когда Айкен поехал в Пенн посмотреть на ENIAC и прослушать лекции, был написан отчет, где об этой встрече сказано: «Айкен был зациклен на своем собственном подходе и, кажется, не понял значения новых электронных машин» [168] . То же самое можно отнести и к Хоппер, посетившей ENIAC в 1945 году. Ей казалось, что Mark I лучше, поскольку его было легче программировать. В ENIAC, сказала она, «вы вставляете разные блоки и по сути конструируете новый компьютер для каждой задачи, а мы привыкли к концепции программирования и управления компьютером с помощью нашей программы» [169] . Для того чтобы перепрограммировать ENIAC, может потребоваться целый день, и это убивало его преимущество в скорости обработки, если только не нужно было все время решать одну и ту же задачу.

168

The Moore School Lectures, Институт Чарльза Бэббиджа, репринт (1985).

169

Грейс Хоппер, устный рассказ, Smithsonian, ноябрь 1968 г.

Но в отличие от Айкена у Хоппер был достаточно гибкий ум, и она вскоре изменила свой подход. В том году были придуманы способы более быстрого перепрограммирования ENIAC. И к радости Хоппер, эту революцию в программировании совершили в первую очередь женщины.

Женщины и ENIAC

Все инженеры, конструировавшие ENIAC, были мужчинами. Менее запомнившейся в истории оказалась группа женщин, особенно шесть из них, сыгравшие, пожалуй, не менее важную роль в развитии современной компьютерной техники. Поскольку ENIAC строился в Пенне в 1945 году, считалось, что он все время будет выполнять одни и те же определенные расчеты, например расчеты траекторий ракеты при разных условиях. Но война закончилась, и машина могла понадобиться для различных других расчетов — акустических волн, погодных условий, мощности взрывов новых типов атомных бомб, а это означало, что ее придется часто перепрограммировать.

Для этого требовалось вручную переключить кабели ENIAC и сбросить переключатели в начальное положение. Сначала программирование казалось рутинным занятием, возможно, даже черновой работой, и может быть, поэтому она была поручена женщинам, которым в то время не очень просто было стать инженерами. Но женщины, программировавшие ENIAC, вскоре доказали (и мужчины это позже поняли), что программирование компьютера могло быть не менее важным, чем его конструирование.

Поделиться с друзьями: