Один старшеклассник сгорбился над машиной и клавиатурой цвета хаки, другой наблюдал, отпуская время от времени непонятные замечания. Справа от клавиатуры был встроен наборный диск для модема; слева располагался перфоратор, который непрерывно извергал бумажную ленту шириной в дюйм, с восемью рядами отверстий. Каждый символ определялся комбинацией отверстий (на дюйме ленты помещалось десять символов; для маленькой программы хватало двух-трех футов). Считывающее устройство переводило программу и отправляло ее на GE-635.
   Шум стоял невообразимый – низкое гудение, пушечный грохот перфоратора и стрекотание клавиатуры. Стены и потолок комнаты пришлось обшить для звукоизоляции белыми пробковыми щитами. Однако при всем шуме и медленной работе ASR-33 – обычный удаленный терминал, без дисплея, без строчных букв – был произведением искусства. У меня дух захватило. Я почуял, что с этой машиной можно работать.
   Тот год стал поворотным для цифровых технологий. В марте 1968-го Hewlett-Packard представил свой первый настольный программируемый калькулятор. В июне Роберт Деннард получил патент на однотранзисторную ячейку динамической памяти с произвольным доступом (DRAM) – новый дешевый метод временного хранения данных. В июле Роберт Нойс и Гордон Мур совместно основали корпорацию Intel. В декабре, на легендарной презентации в Сан-Франциско, Дуглас Энгельбарт из Стэнфордского исследовательского института впервые продемонстрировал компьютерную мышь, текстовый процессор, электронную почту и гипертекст. Подавляющее большинство эпохальных изменений в технологии следующих двух десятилетий зародились в эти десять месяцев: дешевая и надежная память, графический интерфейс пользователя, эффектные программы-«приманки» и многое другое. Если бы кто-нибудь захотел собрать картину воедино, он сумел бы предсказать будущие превращения компьютеров и сферы их использования.
 
   Классические мейнфреймы моей юности были размером с трейлер и безумно дороги. По мощности тогдашние IBM и UNIVAC не превосходили нынешние карманные калькуляторы, но занимали целые комнаты и выделяли огромное количество тепла, даже после того как на смену вакуумным лампам пришли транзисторы. Обслуживанием занимались опытные операторы, поддерживающие бесперебойную работу, а пользователи оставались снаружи, заглядывая в дверь. Для доступа к компьютеру программисты использовали перфораторы, чтобы превратить написанный от руки код в стопку перфокарт – одна карта на строчку. Стопку карт программист скреплял резинкой и передавал оператору, чтобы компьютер прочитал их.
   Затем программист отправлялся в офис – ждать, поскольку работа попадала в расписание оператора. В зависимости от приоритета они могли взять вашу стопку через несколько часов или через несколько дней. Стоило одной карточке помяться или попасть не на свое место в колоде, стоило пропасть единственной запятой, выдавалось сообщение об ошибке – и больше ничего. Программистам приходилось самим вылавливать ошибку и начинать сначала.
   Так называемая пакетная обработка хорошо действовала в случае масштабных задач, например составления платежной ведомости крупной корпорации. Но она так утомила программистов, что они развернули партизанское движение за большую интерактивность. В 1957 году мечтатель Джон Маккарти продемонстрировал прототип радикально нового программного обеспечения: «систему разделения времени», которая «позволяет каждому пользователю действовать, словно он один работает с машиной». Вместо того чтобы ждать, пока будет обработана пачка перфокарт, пользователь общается с компьютером с помощью клавиатуры терминала. Можно «говорить» с компьютером, получать быстрый ответ, затем вносить коррективы. Программирование становилось больше похожим на беседу.
   Разделение времени сделало вычислительные машины доступнее, распределив стоимость на сотни пользователей. Десятки людей могли одновременно обращаться к компьютеру, при этом центральный процессор переключался от работы одного пользователя к следующему в долю секунды. Новый «поочередный» режим оказался не просто более эффективным. Это был скачок, позволивший отказаться от колод перфокарт и намного повысить производительность работы пользователей. В 1965 году General Electric объединила улучшенную версию системы Маккарти с оригинальным Дартмутским Бейсиком и организовала коммерческое обслуживание. Три года спустя Билл Дугалл и «Клуб матерей» заказали ее для Лейксайда.
   Мне повезло: я достиг совершеннолетия во время фундаментальных подвижек в компьютерной промышленности. Вычислительные мощности, прежде доступные только правительственным органам, крупным корпорациям и университетам, теперь предоставлялись по часам. Новые технологии доставили эти мощности в отдельные офисы и школы. Как всегда, время сыграло решающую роль. Родись я на пять лет раньше, мне, подростку, не хватило бы терпения мучиться с «пакетной обработкой». Появись я на пять лет позже, когда распределение времени вошло в обиход, у меня не появилась бы возможность пробовать что-то новое.
 
   В Лейксайде программирование не было включено в курс математики, а преподавалось отдельно. За нами приглядывал Фред Райт, молодой учитель математики, который летом прошел курсы программирования на перфокартах в Стэнфорде. Мистер Райт выдал нам учебник по Бейсику и несколько элементарных задачек, чтобы «раздразнить аппетит», а потом оставил нас в покое. И мы, не зная, как правильно, изобретали собственные методы. Мы стали мудрыми по необходимости.
   Нам в помощь была предоставлена лишь скудная и поверхностная документация. В учебнике по Бейсику было пятьдесят с чем-то страниц, и я расправился с ним за день или два. Я выучил примерно двадцать главных ключевых слов и то, как работают определенные клавиши на телетайпе. Язык казался иностранным первые два часа, потом наступила ясность. Бейсик был гораздо легче французского: четкая логика, никаких неправильных глаголов, компактный словарь. Если я застревал, то обращался к старшим: а как сделать это? как распечатать то? Они обогнали меня примерно на месяц и с удовольствием демонстрировали свои познания.
   В одной из первых программ, позаимствованных из учебника, я нарисовал синусоиду. Каретка телепринтера моталась туда-сюда, выдавая безупречный узор звездочек, словно движимая невидимой рукой. Прошло несколько дней – и Фреду Райту уже нечему было нас учить. Он лишь иногда заглядывал к нам, улыбался и спрашивал:
   – Как дела, ребятки?
   Некоторые строгие учителя ворчали, что нам предоставили слишком много свободы, но мистер Райт любил балансировать на грани между контролем и хаосом, дразня наш энтузиазм.
   Невозможно описать, с каким волнением я садился к телетайпу. Свою программу, написанную на тетрадном листе, я набивал на клавиатуре, включив перфоратор. Потом я набирал номер, соединяясь с компьютером, ждал гудка, подключался с помощью школьного пароля и нажимал кнопку «СТАРТ», чтобы читающее устройство считало перфоленту – на это уходило несколько минут.
   И вот наступал торжественный момент. Я набирал слово «RUN», и результаты распечатывались со скоростью десять знаков в минуту – допотопная скорость по сравнению с сегодняшними лазерными принтерами, но впечатляющая в те времена. Вскоре становилось ясно, работает ли программа; в противном случае появлялось сообщение об ошибке. В любом случае я разрывал связь, чтобы сэкономить деньги. Затем исправлял программу: доходил на перфоленте до ошибки и набирал правильные команды на клавиатуре, одновременно набивая новую перфоленту – тонкая работа, которая в наши дни делается одним кликом мышки и нажатием клавиши. Добившись, чтобы программа работала, я скреплял рулон перфоленты резинкой и клал на полку до следующего сеанса.
   Для нынешней молодежи этот процесс может показаться безнадежно нелепым – все равно что чесать левое ухо правой рукой. Но для студентов конца 1960-х было удивительно получать «немедленный» ответ от компьютера, даже если и приходилось ждать несколько секунд следующего хода машины при игре в кости. В каком-то смысле этот терминал разделенного времени обозначил начало моей жизни в персональных компьютерах еще по появления персоналок. Программирование отвечало моему желанию выяснять, работает что-то или нет, и чинить при необходимости. Я обожал копаться во внутренностях вещей – от транзисторов и интегральных схем до той детской книжки по технике. Однако написание собственной программы казалось мне самым творческим занятием из всего, что я пробовал. Я понимал, что всегда будет чему учиться, накапливая знания и умения слой за слоем.
   Вскоре я начал проводить обеденное время и вообще любую свободную минуту у телетайпа вместе с такими же чокнутыми. Остальные, возможно, считали нас странными, но мне было все равно. Я нашел призвание. Я стал программистом.
   Около двадцати учеников появлялись в компьютерной время от времени, но только для шестерых она стала центром вселенной. Хотя программирование по сути индивидуальный процесс, мы начали объединяться в братство. Учить нас было некому, и мы сами осваивали команды и профессиональные приемы. Из старших в братство входили, пожалуй, только Роберт Маккау и Харви Мотулски, а ядро составляли четверо младших, и среди них я. Рик Уэйланд (его отец работал инженером на «Боинге») напоминал Спока из «Стартрека», только без остроконечных ушей: тихий, добрый и дотошный. Рик в девятом классе построил собственный компьютер на соленоидах для игры в крестики-нолики, но никогда не жаждал славы; он предпочитал держаться в тени. Кент Эванс, сын священника, был на два года моложе нас с Риком. Он носил кудрявую шевелюру, сложную систему брекетов и обладал неистощимой энергией. Он был готов участвовать в чем угодно.
   Как-то осенью я увидел долговязого конопатого восьмиклассника, который пробирался через толпу к телетайпу, – длинные руки, длинные ноги и комок нервов. Он выглядел как типичный ученик-неряха: свитер, широкие коричневые штаны, громадные кожаные туфли. Белобрысые волосы торчали во все стороны. С первого взгляда про Билла Гейтса было понятно: он действительно умен; он любит быть первым и любит показать, как он умен; он очень, очень упорен. Потом мы постоянно сталкивались в компьютерной. Часто мы там сидели только вдвоем.
   Семья Билла была выдающейся даже по лейксайдским меркам; его отец позже стал президентом ассоциации адвокатов штата. Помню, с каким трепетом я впервые пришел в большой дом Билла – примерно в квартале от озера Вашингтон. Родители выписывали Fortune, и Билл читал журнал с благоговением. Однажды он показал мне специальный ежегодный выпуск и спросил:
   – Как думаешь, каково это – управлять компанией из первой пятисотки?
   Я признался, что понятия не имею. А Билл сказал:
   – Может, когда-нибудь у нас будет собственная компания.
   В 13 он уже был многообещающим предпринимателем.
   Если я пытался изучить все, что попадало в поле зрения, Билл полностью сосредотачивался на чем-то одном. Это было хорошо видно, когда он писал программу: он сидел, зажав в зубах маркер, постукивал ногой и раскачивался; ничто не могло его отвлечь. У него была особая манера печатать – шестью пальцами. Существует известная фотография – мы с Биллом в компьютерном зале, вскоре после нашего знакомства. Я сижу на стуле с жесткой спинкой у телепринтера, на мне аккуратный зеленый вельветовый пиджак и водолазка. Билл в клетчатой рубашке стоит рядом, вытянув шею, и внимательно наблюдает, как я печатаю. Билл выглядит даже моложе своих лет. Я похож на его старшего брата (которого у Билла не было).
 
   Как все подростки, мы любили играть. Харви Мотулски создал текстовый вариант «Монополии», где компьютер с помощью генератора случайных чисел «бросал кубик». Боб Маккоу собрал программу виртуального казино (включая кости, блек-джек и рулетку) – она состояла из трех сотен строк кода. Мы с гордостью повесили распечатку на стену – она тянулась через потолок и спускалась по противоположной стене.
   За месяц мы потратили годовой бюджет «Клуба матерей» на компьютерное время, и нам выделили еще немного. В начале ноября, когда компьютерный блек-джек стал приедаться, Харви сообщил мне новость. В университетском районе Сиэтла открылась компания, предоставляющая компьютерное время. Они набирали людей для тестирования новой модели компьютера – PDP-10 корпорации Digital Equipment.
   На следующий вечер я попросил отца отвезти меня в Computer Center Corporation – она находилась в десяти минутах езды от дома. Я уставился через зеркальное стекло в зал, где никогда не гас свет, словно на волшебную витрину: черный мейнфрейм, ящик за ящиком, мерцающие огоньками панели. Один только центральный процессор был шириной в пять футов. Я первый раз увидел настоящий компьютер живьем; даже не верилось, что такое чудо может существовать всего-то в сорока кварталах от моего дома. Я желал только одного: войти, подключиться и работать.
   Сегодня средний ноутбук работает в тридцать тысяч раз быстрее, чем машина, которой я жаждал, и обладает памятью в десять тысяч раз больше. Но для своего времени PDP-10 был лучшим, что предложила эволюция на замену машинам «пакетной обработки». Корпорация DEC, созданная Кеном Олсеном и Харланом Андерсоном, в 1960 году предложила PDP-1 – первый действительно интерактивный компьютер, с которым можно было «общаться». Меньше чем через десятилетие PDP-10 стал основой сети Министерства обороны ARPANET (первый Интернет) и рабочей лошадкой компьютеров с распределением времени. Он работал быстрее, чем система General Electric в Лейксайде, имел больше программ (включая Фортран и другие языки) и богатые онлайновые возможности.
   К счастью для меня и моих лейксайдских друзей, все это замечательное железо зависело от новой операционной системы, TOPS-10, которая имела склонность давать сбой, как только приходилось одновременно обслуживать слишком много пользователей. ССС – Computer Center Corporation (мы называли ее «Це в кубе») получила арендованный PDP-10 в октябре 1968-го, планируя начать продажу компьютерного времени с Нового года. Тем временем систему TOPS-10 предстояло отладить до появления первых платных клиентов. У ССС был и дополнительный стимул: до тех пор пока программное обеспечение не начнет работать надежно, арендная плата не взималась. Нужен был кто-то, кто станет гонять систему в хвост и в гриву, – и за это взялись мы.
   Среди акционеров ССС была мать одного из учеников Лейксайдской школы; она слышала про наше техническое братство. Через несколько дней после моей разведки Фред Райт повел нас в ССС знакомиться. Местный гуру изложил условия сделки: мы получаем неограниченное время на терминалах в выходные при условии, что будем соблюдать основные правила.
   – Можете пробовать повесить компьютер, – сказал он, – но если он повиснет от ваших действий, вы обязаны рассказать, что именно делали. И больше так не делать, пока мы сами не предложим.
   В субботу мы встретились в терминальном зале ССС – раза в три просторнее нашей уютной комнатки в Лейксайде. Мы с восторгом смотрели на шесть терминалов ASR-33: больше не нужно дожидаться своей очереди. Дверь вела в святая святых – компьютерный зал. Операторы работали круглосуточно, в три смены. Квадратный зал освещали яркие лампы дневного света; под блестящим поднятым полом прятались толстые силовые кабели и кабели данных. Там, где устанавливались новые громадные дисководы, пол поднимали и прокладывали новые кабели. От множества кондиционеров и громадных компьютерных вентиляторов шум стоял такой, что некоторые операторы надевали наушники – как рабочие на фабрике.
   Перейти с GE-635 на PDP-10 – все равно что пересесть с «Короллы» на «Феррари». Суббот катастрофически не хватало. Мы садились на автобус в ССС сразу после уроков, наплевав на физкультуру, – лишь бы приехать пораньше; со школьными портфелями в руках (я обожал свой кожаный коричневый – он открывался от малейшего прикосновения). Мы постепенно становились хакерами – в изначальном, некриминальном смысле этого слова: фанатиками-программистами, работающими на пределе. Как отметил Стивен Леви, хакерская культура – это «меритократия», власть образованных. Твой статус не зависел от возраста или от того, чем зарабатывает на жизнь твой отец. В счет шло только одно: мастерство и желание учиться программированию.
   Каждому неофиту требуется наставник; в ССС их было трое – программисты мирового уровня, с виду весьма оригинальные. Все они, в отличие от администраторов, не считали нас досадной помехой; возможно, в нас они видели молодых себя. Иногда казалось, что я из старших классов попал на семинар аспирантов по продвинутому системному программированию.
   Стив Расселл, по кличке Тормоз, главный по аппаратному обеспечению, маленький и кругленький, обладал своеобразным чувством юмора. В 31 год он вслед за Джоном Маккарти перебрался из Дартмута в Массачусетский технологический. Там Расселл создал на PDP-1 «Звездные войны» – первую по-настоящему интерактивную компьютерную игру.
   Билл Уайер, худой очкарик, говорил мало. Автор SOS, одного из первых текстовых редакторов, он был похож на средневекового писца. Его всегда можно было увидеть за терминалом – он без устали корпел над сложнейшими программами.
   Дик Грюн, бывший консультант DEC, который познакомился с Расселлом и Уайером в Стэнфорде, был самым общительным из всех, приверженцем нездоровой пищи и славился своей шевелюрой и фальстафовским весельем. Он любил повторять, что еще не создана такая операционная система, которую он не сможет повесить, – и при его мозгах в это охотно верилось.
   Они звали нас «мальчишками из Лейксайда» или «тестировщиками». Иногда они заставляли нас одновременно запускать множество копий шахматной программы – чтобы попытаться перегрузить систему. Наша задача отлично соответствовала подростковому стремлению ломать все подряд – просто ради смеха, но направляла его в полезное русло. Как я сказал позже в интервью сиэтлскому журналисту: «Это лучший способ учиться – использовать лучшую на то время машину и смотреть, как она работает и как заставить ее работать на пределе».
   Был и другой подход – мы гоняли в усиленном режиме часть программы, пока она не рухнет; тогда мы записывали на бумагу все свои действия и шли дальше. Самое лучшее – если удавалось повесить всю операционную систему: тогда телепринтер застывал и только жужжал, если кто-то пытался печатать. Потом Расселл с Грюном отыскивали причину поломки и радовались как дети – знали, что их платеж корпорации DEC снова перенесен. И мы тоже были счастливы. Пока нам удавалось вылавливать ошибки, мы оставались в блаженном краю бесплатного компьютерного времени.
   Рядом с наставниками я от смущения почти терял дар речи. Мы перенимали их жаргон; «клудж», например, означал небрежную временную заплатку в программе. Гуру терпели наши приставания и время от времени бросали нам кость – показывали что-то, над чем сейчас работали. Мы благоговели перед их умением подобрать оптимальный алгоритм и наиболее экономично его реализовать – умением, чрезвычайно важным в эпоху ограниченной компьютерной памяти.
   Мы могли свободно заниматься собственными маленькими проектами. Билл сочинял военную игру; Рик боролся с Фортраном. Я писал программу-сваху, проверяющую людей на совместимость. По вечерам мы обычно получали зал в полное распоряжение. Если нужно было забрать распечатки программ, мы стучались в машинный зал, приветствовали дежурного оператора, забирали распечатки и возвращались к телетайпам. Можно было еще успеть бросить взгляд на PDP-10, но и только.
 
   Ключом к коммерческому разделению времени было надежное, высокоскоростное устройство хранения данных – способ предоставить легкий доступ к информации. CCC месяцами возилась со старыми дисками, способными дать каждому пользователю место лишь для пары десятков файлов умеренной длины. Поэтому понятно, с каким восторгом Рассел получил коробку футов восьми в длину и четырех в высоту: магнитный диск с перемещаемыми головками от Bryant Computer Products в Уолд-Лейк, Мичиган. Представитель компании (по акценту – явный южанин), сопровождавший устройство, называл его «Гигант Брайант». Название прижилось.
   Устройство было восхитительно мало. Электромотор в центре вращал толстый вал с укрепленными на нем 12 стальными дисками с оксидным покрытием – каждый больше трех футов в диаметре. Диски вращались, а магнитные головки на рычагах с гидроприводом, поддерживаемые тонкой прослойкой воздуха, двигались над поверхностью дисков, считывая данные. На устройстве можно было хранить около 100 млн символов – значительно больше, чем на любых других устройствах (на обычных сегодняшних ноутбуках объем данных в шестьсот раз больше займет 0,002 % объема диска).
   К сожалению, «Гигант Брайант» часто давал сбой. То и дело по малейшей причине (достаточно было пройти неподалеку) головка касалась диска и сдирала оксидную пленку: фатальная авария, данные безвозвратно утеряны, диск ремонту не подлежит.
   Для архивного хранения данных CCC использовала менее капризное устройство на магнитных лентах – DECtape. Это были четырехдюймовые контейнеры – достаточно маленькие, чтобы поместиться в кармане, и достаточно крупные, чтобы хранить миллион символов. 260-футовая лента вмещала столько же информации, сколько две с половиной тысячи футов бумажной перфоленты – или чуть больше, чем восьмидюймовая дискета, которую IBM представила пять лет спустя. При всех ограничениях механического катушечного устройства DECtape работал быстрее и надежнее, с двойным резервированием и двумя слоями майлара, защищающими оксидный слой. Во время демонстрации представители DEC пробивали в ленте дыру диаметром в дюйм, а потом показывали, что данные сохранились.
   Но главное – DECtape поддерживал древовидную структуру, такую же, как и «Гигант Брайант» или будущие дискеты. Обычная магнитная лента работала как последовательный поток, изменить записанные данные было невозможно; если записать что-то новое в середине ленты, последующие данные можно утерять. А на DECtape информация разбивалась на отдельные блоки – каждый блок можно было переписать, не затрагивая остальные. Теперь стало возможным хранить по несколько программ на одной ленте, искать любую по имени, редактировать любую независимо или записывать новые данные поверх старых. Пока я не купил домой собственный терминал, мои картриджи DECtape были первым элементом компьютерной технологии, принадлежавшим лично мне. Мы хотели иметь их побольше – картриджи были знаком статуса. Эти маленькие картриджи делали мою работу менее эфемерной, более материальной – она словно обретала реальную и вечную ценность.

Глава 4
Братство

   Мы с Биллом оказались самыми стойкими среди лейксайдцев в CCC. Обычно отец заезжал за мной на машине, чтобы отвезти домой пообедать. Я хотел остаться – иногда отец разрешал, иногда нет. Родителей беспокоило, что я начал отставать в школе. Стали появляться низкие отметки, и учителя, похоже, не слишком одобряли мое новое увлечение. Оценивая компьютерное программирование, мистер Маэстретти писал: «Пол добился больших успехов. Он проявляет огромный интерес к работе и достиг мастерства, далеко превосходящего… средний уровень». Но по поводу физики, по которой он поставил мне в середине года «С+» (хотя весной я вытянул «А»), он сожалел, что «все силы [мои] направлены на работу с компьютером – за счет других дисциплин».
   Учитель по английскому, мистер Тайлер, огорченный моим хроническим безразличием к домашним заданиям, философски заключал: «Пол – фанатик (в старом религиозном смысле слова) и, охваченный энтузиазмом, почти не замечает ничего остального. Как объяснить ученику пагубность его подхода? Не знаю. А может быть, прав именно он, а не мы?»
   На самом деле я бурно развивался в профессиональной среде, работая с тем, что мне нравилось. Чего еще желать для шестнадцатилетнего?
   Предоставленные сами себе, мы с Биллом корпели над программами, пока не сводило желудок от голода; тогда мы отправлялись через дорогу в заведение под названием Morningtown Pizza. Рядом пристроился ночной магазин – перед ним парковались полицейские машины, а сами полицейские в задней комнате резались в карты. Мы жадно проглатывали пиццу прямо на месте или приносили обратно в CCC – и старались не закапать маслом телетайпы. Мы работали, пока не уходили все, кроме ночного оператора. Однажды я работал один и вовсе потерял счет времени. Автобусы перестали ходить, и было поздно звонить отцу, чтобы он забрал меня; пришлось идти домой пешком – целый час. Меня всю дорогу провожал бродячий пес; потом родители пристроили его нашим знакомым.
   Для меня святым Граалем программного обеспечения была операционная система, нервная система компьютера. Она выполняет распределительную функцию, позволяя центральному процессору считать: переключаться от программы к программе; сохранять информацию в файлах; передавать данные на модемы, внешние диски и принтеры. О ней не думаешь, пока не возникнет ошибка и система не рухнет.