Хоппер и ее коллеги начали заполнять записные книжки фрагментами проверенного на практике кода, пригодного к повторному использованию. К 1951 году компьютеры усовершенствовались и научились хранить эти фрагменты — подпрограммы — в собственных системах памяти. Хоппер, в то время работавшая в компании Remington Rand, попыталась убедить начальство позволить программам вызывать эти подпрограммы знакомыми словами, например «вычти из зарплаты подоходный налог» вместо, как выражалась Хоппер, «попыток записать это восьмеричным кодом или всевозможными символами»[397].
Позже Хоппер утверждала: «Раньше никто об этом не думал, потому что таких ленивых, как я, не нашлось»[398]. Хоппер, прославившаяся своим трудолюбием, лукавит, но зерно правды в ее заявлении есть. Идея, которую она назвала компилятором, подразумевала компромисс: само программирование шло быстрее, но получавшиеся в результате программы работали медленнее. По этой причине Remington Rand не проявила интереса к изобретению. У каждого клиента были свои, индивидуальные требования к блестящим новеньким вычислительным устройствам, поэтому лучше, полагали в компании, чтобы специалисты компании программировали их как можно эффективнее.
Но Хоппер не унывала и написала первый компилятор в свободное от работы время. Он помог пользователям мыслить яснее, и это на многих произвело большое впечатление. Одним из таких клиентов был инженер Карл Хаммер, который благодаря нововведению за день смог решить уравнение, над которым его коллеги бились месяцами: хватило всего двадцати строк[399]. Программисты-единомышленники со всех Соединенных Штатов начали присылать Хоппер новые фрагменты кода. Она добавляла их в библиотеку для следующего выпуска и в итоге стала пионером программного обеспечения с открытым кодом.
Благодаря компилятору Хоппер сложился один из первых языков программирования — COBOL, но еще важнее было то, что он проложил путь к знакомому теперь разделению на «железо» и программное обеспечение. В уникальных изделиях вроде Mark I аппаратура и программное обеспечение были едины: схема переключателей работала только на данной машине, потому что каждая требовала совершенно иного подхода. А если компьютер способен запустить компилятор, он выполнит любую программу на его основе.
С тех пор людей, программистов, от базовых, физических микросхем отделяет все больше слоев абстракции, и каждый слой — это еще один шаг к освобождению умов программистов. Важность этого направления осознала именно Грейс Хоппер: надо думать о концепциях и алгоритмах, а не о переключателях и проводах.
Хоппер имела свое мнение о том, почему коллеги поначалу этому сопротивлялись. Дело было не в заботе о скорости работы программ. Нет. Они просто любили престиж, им нравилось осознавать себя единственными способными общаться с богоподобным компьютером от имени простых смертных, только что его купивших. Хоппер называла их «первосвященниками»[400]. Сама же она полагала, что возможность программировать должен иметь каждый. Теперь так оно и есть, и благодаря этому компьютеры стали намного полезнее.
V. Откуда берутся изобретения?
* * *
Во многих книгах пытались разгадать, как появляются инновации. Разнообразие ответов очень красноречиво. В книге Джоэля Мокира A Culture of Growth («Культура роста») рассматриваются мощные фоновые силы. Автор подчеркивает политическую раздробленность Европы эпохи Просвещения, благодаря которой интеллектуалы свободно путешествовали, убегая от преследований и ища покровителей. Стивен Джонсон в книге Where Good Ideas Come From[401] анализирует сети единомышленников, от кофеен 1650-х годов до сегодняшней Кремниевой долины. Кейт Сойер в книге Explaining Creativity («Объясняя креативность») черпает идеи в нейробиологии и когнитивной психологи. Существует множество других точек зрения на этот счет.
Данная книга посвящена не тому, как изобретения появляются на свет, в ней, скорее, описывается их связь с окружающими нас социальными и экономическими структурами. Тем не менее почти мимоходом мы уже многое узнали о происхождении инноваций.
Некоторые изобретения вызваны спросом: мы не знаем, кто изобрел плуг, но известно, что он явился ответом на происходящие в мире изменения. Кочевники-собиратели не вдруг перешли к сельскому хозяйству, чтобы воспользоваться внезапно появившейся технологией. Другой пример — колючая проволока, потребность в которой была очевидна всем. Джозеф Глидден создал самый удобный из многочисленных конкурирующих вариантов, но мы мало знаем о том, как протекал его творческий процесс. Видимо, обошлось без чудес: в конце концов, задним числом конструкция представляется довольно очевидной, и Глидден просто первым ее придумал.