Клуб программистов Лейксайда
Клуб программистов Лейксайда
Осенью 1968 года, когда Гейтс был в восьмом классе, они с Алленом основали “Клуб программистов Лейксайда”, который был гиковским вариантом уличной банды. По словам Аллена, это по сути был мужской клуб, где уровень соперничества и тестостерона зашкаливал. Однако довольно быстро это все превратилось в прибыльный бизнес. Гейтс считал себя душой клуба и мотивировал остальных фразами вроде “давайте заявим о себе людям и попробуем им что-то продать”17. Позднее Аллен не без ехидства заметил: “Все и так пахали как проклятые, а Гейтс еще успевал командовать и выставляться, не особо напрягаясь”18.
В “Клуб программистов Лейксайда” вошли еще два “постоянных посетителя” той комнаты с терминалом. Один из них, Рик Вейланд, был одноклассником Аллена и прислуживал в алтаре в местной лютеранской церкви, а его отец работал инженером в компании Boeing. Двумя годами ранее Рик собрал в подвале своего дома компьютер. Невероятно красивый, скуластый, высокий и хорошо сложенный Вейлан внешне сильно отличался от других компьютерных гиков из их клуба. Ему приходилось нелегко, потому что он был геем, а в 1960-е об этом не принято было говорить в открытую, особенно в такой консервативной школе.
К группе присоединился и Кент Эванс, который учился с Гейтсом в восьмом классе. Его отец был священником унитарианской церкви. Эванс был приветлив со всеми без исключения. Он родился с расщелиной твердого неба и даже после операции улыбался криво, хотя от этого не менее обаятельно. Эванс без стеснения и страха брался за любое дело, был готов позвонить крупному начальнику, с которым не договаривался о звонке, или взоити на вершину горы. Он придумал название “Клуба программистов Лейксайда”, зная, что это позволит им получать бесплатную тестовую продукцию компаний, которые рекламируются в журналах об электронике. Ему было интересно предпринимательство, и они вместе с Гейтсом читали каждый выпуск Fortune. Они стали лучшими друзьями. Гейтс помнит, что они собирались завоевать мир: “Мы часами висели на телефоне. Я до сих пор помню его номер”19.
Осенью 1968 года “Клуб программистов Лейксайда” получил первый заказ. Несколько инженеров из Университета Вашингтона основали небольшую компанию, которая сдавала в аренду рабочее время на компьютере. Они разместились в бывшем помещении автомобильной компании Buick, назвались Computer Center Corporation, сокращенно C–Cubed, и купили мейнфрейм PDP-10 компании DEC. Эта многоцелевая машина идеально подходила под их задачи, а еще это был любимый компьютер Гейтса. В C–Cubed планировали удаленно сдавать мейнфрейм в аренду различным клиентам, например компании Boeing, которые подключались бы к нему через терминалы по телефонным линиям. В C–Cubed работала мать одного из учеников Лейксайда, она и наняла Гейтса и его друзей в качестве тестировщиков. Это как позвать третьеклассников оценивать продукцию шоколадной фабрики. Их задачей было гонять PDP-10 в хвост и гриву, пока он не зависал, то есть нужно было программировать и играть на нем по вечерам и в выходные. C–Cubed договорилась с DEC, что, пока мейнфрейм тестируется, использовать его можно бесплатно. В DEC и не подозревали, что убивать их компьютер будут юные программисты-лихачи из Лейксайда.
Было поставлено два условия: когда компьютер зависал, нужно было подробно описать, что они для этого сделали, и повторять эти действия было нельзя, пока их снова не попросят. По словам Гейтса, их наняли для поиска ошибок, как дрессированных обезьянок. “Мы должны были выжать из компьютера максимум, просто гонять его на полной мощности”. У PDP-10 было три магнитных ленты, и удальцы из Лейксайда нагружали компьютер так, что работали все ленты сразу, а затем запускали с десяток программ, чтобы задействовать как можно больше оперативной памяти и вывести машину из строя. Гейтс считал это крайне глупым занятием20. Они испытывали системы PDP-10 на прочность, а взамен могли сколько угодно долго писать на нем свои программы. Они создали электронную версию игры “Монополия”, где число, выпадающее на кубиках, определял генератор случайных чисел. Гейтс не отказал себе в удовольствии и разработал сложную военную игру — он очень почитал Наполеона, тоже блестящего математика. “В ней ты получал армии, которые должны были сражаться, — вспоминает Аллен. — Программного кода к игре было так много, что понадобилось бы 50 метров бумаги для телетайпа, чтобы его распечатать”21.
На автобусе друзья доезжали до C–Cubed и целые вечера и выходные проводили у компьютерного терминала. “Я крепко подсел, — рисуется Гейтс. — Мы оттуда не выходили целыми сутками”. Они программировали, пока не начинали умирать от голода, а затем переходили улицу и шли в хипповое местечко Morningtown Pizza. Гейтс помешался. Его комната была ровным слоем завалена одеждой и распечатками с кодом. Родители пытались установить в доме “комендантский час”, но не помогло. “Трей был настолько увлечен, что иногда после отбоя убегал из дома через дверь в подвале и всю ночь программировал”22, — рассказывает Гейтс-старший.
Их куратором от C–Cubed стал не кто иной, как Стив “Слаг” Рассел, ироничный и талантливый программист, который во время учебы в МТИ написал игру Spacewar. Теперь он передавал эстафетную палочку молодежи. Расселу приходилось постоянно напоминать Гейтсу и Аллену, что нельзя повторять действия, из-за которых компьютер завис, до того, как им будет разрешено23. Но они не всегда сдерживались. “Когда я к ним заглядывал, то получал вопрос или десяток вопросов, а я из тех, кто отвечает на все очень обстоятельно”24, — вспоминает Рассел. Особенно его удивляло, что Гейтс угадывал, какой из программистов DEC просчитался. Обычно его сообщения об ошибках звучали так: “В этой строчке кода у мистера Фаболи опять та же самая ошибка — он не проверял состояние семафора при смене статуса. Если вот сюда добавить эту строчку, то все заработает”25.
Гейтс и Аллен осознавали всю важность операционной системы — она выполняла роль нервной системы компьютера и отвечала за логистику. Это позволяло центральному процессору производить вычисления, переключаться между программами, записывать данные в память компьютера, передавать и получать информацию через модем или дисководы и печатать документы. Операционная система для PDP-10 называлась TOPS-10, и Рассел принес приятелям руководства к ней. Их нельзя было брать домой, поэтому друзья часто засиживались в C–Cubed до утра.
Гейтс понял, что они не смогут понять все тонкости работы операционной системы без исходного кода и комментариев к нему, в которых разработчики описывают смысл каждого действия. Но эта информация была доступна только главным программистам компании, а никак не школьникам из Лейксайда. Это делало запретный плод еще слаще. Однажды на выходных они выяснили, что рабочие распечатки с кодом выбрасываются в мусорный контейнер на заднем дворе здания. “Гейтс весил килограммов пятьдесят, не больше”, — думал Аллен, поэтому он решил его подсадить, сложив руки в замок. Гейтс нырнул в контейнер и принялся рыться в офисном мусоре. Наконец, он нашел пачку испачканной и сложенной в гармошку бумаги. “Мы отнесли драгоценные распечатки в комнату с терминалом и часами внимательно их изучали, — говорит Аллен. — Розеттского камня[83] у меня не было, поэтому я понимал максимум одну или две строчки кода из десяти, но я все равно был в полном восторге от того, как компактно и элегантно написан код”.
Получив часть мозаики, Гейтс и Аллен захотели погрузиться еще глубже, понять архитектуру операционной системы. Для этого было необходимо изучить язык ассемблера, разобраться с базовыми командами вроде Load B. Add C. Store in A, которые понятны непосредственно машине. “Рассел приметил мой новый интерес и со словами: «Ты должен это прочесть» протянул мне документацию по ассемблеру в блестящей пластиковой обложке”26, — вспоминает Аллен. Они с Гейтсом проштудировали весь текст, но поняли не все. Тогда Рассел принес им другое руководство со словами: “А теперь вам нужно прочесть вот это”. В итоге они стали хорошо разбираться как в базовых вещах, так и в тонкостях. Это сочетание позволяло писать эффективный и элегантный код для операционной системы.
Когда все ошибки в PDP-10 были устранены и система была признана стабильной, клуб из Лейксайда больше не мог пользоваться компьютером бесплатно. “Они как будто сказали: «Обезьянки, всем спасибо, все свободны»”27, — говорил Гейтс. Им немного помог “Клуб матерей Лейксайда”, который оплачивал юным программистам часы на удаленном компьютере, однако имелись ограничения по времени и потраченной сумме. Гейтс и Аллен понимали, что им никак не уложиться в отведенный лимит, и решили обмануть систему. Друзья получили доступ к внутреннему файлу школьной бухгалтерии, взломали защиту и узнали пароль администратора, при помощи которого бесплатно подключались к PDP-10. Но их поймали еще до того, как они успели натворить дел: учитель математики нашел у них распечатку с логинами и паролями. Новость об их проказе дошла до самых высоких начальников в C–Cubed и DEC, и в школе в кабинете директора прошла серьезная встреча с участием представителей обеих компаний. Гейтс и Аллен приняли максимально виноватый вид и изображали глубочайшее раскаяние, но это не помогло. Им запретили входить в систему до конца семестра и все лето.
“Я немного отвлекся от компьютеров, попробовал побыть нормальным, — говорит Гейтс. — Я решил доказать всем, что могу получить пятерки по всем предметам, даже не открывая учебник. Вместо этого я читал биографию Наполеона и романы вроде «Над пропастью во ржи»”28.
Почти год “Клуб программистов Лейксайда” находился в спячке. Осенью 1970 года школа стала покупать рабочее время на PDP-10 у компании Information Sciences, Inc (ISI) в городе Портленд, штат Орегон. Стоило это дорого, пятнадцать долларов в час. Гейтс и его друзья быстро нашли способ подключаться к компьютеру бесплатно, но их опять поймали. Тогда они отправили в ISI письмо, в котором предлагали свои услуги взамен на возможность работать на PDP-10.
Менеджеры ISI сомневались. В итоге четверо школьников вооружились распечатками со своим программным кодом и отправились в Портленд, чтобы продемонстрировать свой уровень. Каждый описал свой опыт и предоставил резюме, шестнадцатилетний Гейтс написал свое карандашом на линованной бумаге. Им поручили разработать программу, которая бы рассчитывала зарплату с учетом различных вычетов, удержаний и налогов и подготавливала чеки для выплат29.
Именно в тот период отношения между Гейтсом и Алленом ухудшились. Программу нужно было написать не на BASIC, любимом языке Гейтса, а на COBOL, более сложном языке, который был разработан Грейс Хоппер и ее коллегами и стал бизнес-стандартом. Рик Вейланд COBOL знал и написал среду разработки под COBOL для системы ISI, и Аллен быстро освоил этот редактор. В тот момент они решили, что работы хватит только им двоим и лучше получить себе побольше рабочего времени на компьютере, поэтому Гейтса и Кента Эванса они не позвали30.
Следующие полтора месяца Гейтс читал книги по алгебре и старался избегать Аллена и Вейланда. “А потом до Пола и Рика дошло: вот отстой, у них проблема”, — вспоминает Гейтс. Для написания программы нужно знать не только COBOL, но и разбираться во всяких социальных вычетах, федеральных налогах и госстраховании по безработице. “И тут они говорят мне, что у них трудности и не мог бы я вернуться к ним и помочь”. Тогда Гейтс грамотно разыграл партию и навсегда определил их с Алленом будущие взаимоотношения: “Я согласился. Но сказал, что буду главным. И что я привыкну быть главным, и что потом со мной будет очень тяжело иметь дело, если я вдруг не буду главным. Если они согласны поставить меня во главу сейчас, то я буду главным всегда и везде”31.
На том и порешили. Гейтс вернулся в строй и настоял, чтобы отношения между участниками “Клуба программистов Лейксайда” были оформлены официально. Тогда все подписали договор, который помог составить отец Гейтса. И хотя их партнерские отношения не предполагали назначения президента, Гейтс стал себя так называть. Ему было шестнадцать. Затем он поделил их заработок — рабочие часы на компьютере стоимостью 18 тысяч долларов, — обделив Аллена: “Я выделил 4/11 части себе, 4/11 Кенту, 2/11 Рику и 1/11 Полу. Всем понравилась моя идея разделить куш на одиннадцать частей. Но Пол очень ленился и ничего не делал, и по моим прикидкам, Пол сделал вполовину меньше, чем Рик, а Рик сделал вполовину меньше того, что сделали мы с Кентом”32.
Поначалу Гейтс попытался взять себе больше, чем Эванс. Но Кент такого ему с рук не спускал, так как был подкован в вопросах бизнеса не меньше Гейтса. Когда программа расчета зарплат была доделана, Эванс в очередной раз записал в свою деловую книжку: “Во вторник едем в Портленд, показываем программу и, что называется, закладываем фундамент для будущего сотрудничества. До этого момента мы работали ради знаний и опыта, а также ради возможности пользоваться компьютерами, что было бы дорого оплачивать самим. Пора и нам получить некоторую денежную компенсацию”33. Переговоры шли со скрипом, компания ISI пыталась удержать часть положенного друзьям компьютерного времени, поскольку у тех не хватало кое-какой документации. Тогда отец Гейтса написал письмо, которое помогло разрешить спор и подписать новый контракт.
Осенью 1971 года, когда Гейтс учился в одиннадцатом, предпоследнем классе, Лейксайд объединился со школой для девочек. Составление расписания стало для администрации настоящим кошмаром, поэтому Гейтса и Эванса попросили написать соответствующую программу. Гейтс понял, как сложно это будет сделать, и отказался. Он знал, что в школьном расписании имеется множество переменных — например, обязательные предметы и предметы по выбору, график работы учителей, расписание занятости помещений, классы для отличников, сдвоенные уроки и лаборатории, занятия с плавающим расписанием… В итоге за программу взялся их учитель по информатике, а Гейтс и Эванс вели за него уроки. Однако в январе учитель погиб в авиакатастрофе, и Гейтс и Эванс согласились продолжить его дело. Они решили начать писать программу с нуля и часами сидели в компьютерном классе, иногда оставались там на ночь. В мае она еще не была готова, и друзья очень торопились, хотели закончить программу к новому учебному году.
Эванс, хоть и очень устал, все же пошел в горный поход. При этом он не был спортсменом. Гейтс сильно удивился, что Эванс вообще записался в секцию альпинизма: “Думаю, он хотел испытать себя”. Отец Эванса знал, что сын вымотан, и умолял его не ехать: “В наш последний с ним разговор я пытался отговорить его от похода, но Кент привык доводить все до конца”. Группа училась страховаться на довольно пологом склоне, когда Эванс поскользнулся и упал. Он попытался подняться, но покатился дальше и пролетел 180 метров вниз по снежному склону и леднику. Ему нужно было расставить руки в стороны, чтобы затормозить, но он прижал их к себе для защиты, в итоге несколько раз ударился головой о камни и умер в спасательном вертолете.
Директор Лейксайда позвонил Гейтсам домой, родители позвали Билла в свою комнату и сообщили скорбную новость[84]. Похоронную службу провел Роберт Фулгам, священник унитарианской церкви, как и отец Эванса. Фулгам преподавал в Лейксайде искусства, а позднее стал популярным писателем, издав, например, книгу “Все важное для жизни я узнал в детском саду”. Гейтс признается, что до этого момента не думал о смерти: “Во время службы я должен был произнести речь, но я просто не смог встать на ноги, я две недели вообще ничего не мог делать”. После этого он много времени проводил с родителями Эванса, для которых “Кент был центром Вселенной”34.
Пол Аллен как раз закончил первый курс Университета штата Вашингтон. Гейтс позвонил ему и попросил приехать в Сиэтл, чтобы помочь с программой для составления расписания. Гейтс признался, что рассчитывал на Кента, а теперь нуждается в помощи. Гейтс был совсем плох. “Билл несколько недель был в депрессии”35, — вспоминает Аллен. В то лето 1972 года они часто ночевали в компьютерном классе перед экраном PDP-10, как в старые добрые времена. Гейтс обладал живым умом и смог разобраться с головоломкой про переменные. Он разбил проблему на несколько небольших подзадач, которые можно было решать последовательно. Также он записался на курс по истории, на который ходили все лучшие девушки и только два мальчика (Гейтс и один “законченный нытик”). К тому же он сделал так, чтобы по вторникам после обеда у него и его друзей-одноклассников не было занятий. Они сделали себе футболки с пивной бочкой и надписью “Вторничный клуб”36.
Весной Intel выпустила новый процессор Intel 8008, созданный на базе первого однокристального микропроцессора Intel 4004. Гейтс и Аллен были зачарованы. Их настолько потрясла статья о новом процессоре, напечатанная в журнале Electronics Magazine, что много лет спустя Гейтс будет помнить номер страницы, на которой она была напечатана. Аллен уговаривал Гейтса написать язык программирования под Intel 8008, например вариант языка BASIC, ведь было заявлено, что процессор можно использовать как компьютер. И если бы у них получилось, каждый человек смог бы купить себе компьютер и поставить его в офисе или даже дома. Гейтс отмел эту идею, поскольку считал, что Intel 8008 не потянет такие задачи: “Он будет работать медленнее черепахи и станет посмешищем. BASIC съест почти всю его память. Маловато в нем мощности”. Аллен с Гейтсом согласился, и компаньоны решили подождать год или два — пока не появится процессор в два раза производительнее, как обещал закон Мура. Формат их сотрудничества становился все более определенным: Аллен генерировал и искал идеи, можно сказать, отделял зерна от плевел, а Гейтс слушал его соображения, задавал вопросы, а затем фокусировался на лучших предложениях и помогал их реализовать. Между ними бывали трения, но в целом их союз был продуктивным и удачным37.
Гейтс заключил сделку с компанией, которой нужна была программа для анализа маршрутов транспортных средств. Сотрудники компании клали поперек дорог резиновые трубки, а специальное устройство подсчитывало, сколько машин через них переезжало. Аллен и Гейтс решили создать специальный компьютер, который обрабатывал бы исходные данные. Гейтс, которого вкус часто подводил, назвал свою новую фирму Traf-O-Data. Они с Алленом пошли в ближайший магазин электроники Hamilton Avnet и торжественно выложили 360 долларов за один процессор Intel 8008. Аллен хорошо помнит тот день: “Продавец вручил нам небольшую картонную коробку, мы тут же ее открыли и впервые в жизни увидели микропроцессор. Это был тонкий прямоугольник длиной где-то 2,5 сантиметра. Он был завернут в алюминиевую фольгу и закреплен на непроводящей резиновой подставке. Для двух мальчишек, которые росли во времена громоздких мейнфреймов, это было просто восьмое чудо света”. Гейтс помнит, в каком удивлении были сотрудники магазина, когда два подростка пришли покупать Intel 8008. Он заявил продавцам, что дороговато они хотят за такую маленькую штучку, но на самом деле приятели были под впечатлением, поскольку понимали, что эта “маленькая штучка” — мозг целого компьютера. И они очень боялись повредить процессор, когда разворачивали фольгу38.
Чтобы написать программу для Intel 8008, Аллен эмулировал работу этого процессора на мейнфрейме. Это в очередной раз подтвердило теорию, которая опиралась на идеи Алана Тьюринга: в 1930-е годы XX века он писал о том, что любую машину можно запрограммировать работать как любую другую машину. Позднее Аллен скажет, что благодаря этой IT-магии они поняли: программы важнее компьютеров39. Гейтс и Аллен сделают этот концепт частью компьютерной революции.
Приятели действительно ставили ПО выше, чем саму технику, поэтому неудивительно, что они без труда написали хорошую программу для анализа дорожного движения, но не могли обеспечить устойчивую работу некоторых механизмов, например устройства, которое должно было читать ленты с данными о транспортном потоке. Когда они уже были уверены, что все отлично работает, домой к Гейтсу приехал инженер компании-заказчика, чтобы забрать рекламный образец. Они сидели в гостиной Гейтсов, и Билл пытался заставить устройство работать, но в тот день IT-боги были не на его стороне. Он побежал за мамой, умоляя ее подтвердить, что накануне все работало40.
Весной 1973 года, когда Гейтсу оставалось доучиться в школе один семестр, его и Аллена пригласили на работу в Bonneville Power Administration, одну из федеральных энергосбытовых компаний США. Компания по всей стране искала специалистов по PDP-10, которые могли бы написать программу для их системы управления электросетью. Родители Гейтса и директор Лейксайда сошлись во мнении, что эта работа даст Биллу намного больше знаний и опыта, чем семестр в школе. Аллен в том же ключе смотрел на семестр в университете, ведь у него появился шанс снова поработать вместе с Гейтсом на PDP-10, да еще и за деньги. Они загрузили все вещи в машину Гейтса, “мустанг” с откидным верхом, и за два часа проехали примерно 260 километров на юг от Сиэтла, где располагался головной офис компании. Там друзья вместе сняли квартиру.
Работать они должны были в подземном бункере у реки Колумбии, на противоположном берегу от Портленда. Гейтса впечатлила огромная диспетчерская, которая “была круче, чем все, что показывали по телевизору”. Аллен и Гейтс спускались под землю и программировали по двенадцать часов и больше. “Когда Билл чувствовал, что подвисает, он брал растворимый напиток Tang, сыпал порошок себе на руку и слизывал, чтобы получить ударную дозу сахара, — вспоминает Аллен. — Тем летом у него ладони вечно были оранжевые”. Иногда они уходили в “рабочий запой”, не отходили от компьютеров по два дня подряд, а потом мертвым сном спали по восемнадцать часов, чтобы “проспаться”, как называл это Гейтс. Они соревновались, кто дольше пробудет в здании, и сидели там по три, по четыре дня подряд. “Всякие зануды пытались отправить нас домой, уговаривали сходить в душ, но мы просто помешались на программировании”, — рассказывает Гейтс41.
Время от времени Гейтс делал экстрим-перерывы и катался на водных лыжах, иногда стартуя не с воды, а с платформы для дайвинга, а затем возвращался в бункер и вновь с головой погружался в разработку программы. С Алленом они ладили. Проблемы возникали, только когда рассудительный и методичный Аллен обыгрывал Гейтса в шахматы, который играл более небрежно и агрессивно. Иногда Гейтс так злился из-за проигрыша, что смахивал фигуры на пол, и после нескольких таких случаев они перестали играть42.
Гейтс подал документы всего в три университета: Гарвард, Йель и Принстон. И все три заявки отличались друг от друга. Гейтс хвастал, что знает о поступлении в вузы все, и понимал, что его личные достижения позволят ему везде получить высокие оценки.
Для Йеля он подчеркнул свою дипломатичность и политические амбиции, особый акцент был сделан на его месячной стажировке в Конгрессе. В заявке для Принстона он фокусировался на своем интересе к информатике и программированию. Гарвард же Гейтс заверял, что всей душой предан математике. Он также рассматривал МТИ, но в последний момент передумал и вместо собеседования пошел играть в пинбол. Его приняли во все три университета, и он выбрал Гарвард43.
Аллен его предупреждал:
— Знаешь, Билл, в Гарварде найдутся люди, которые намного сильнее тебя в математике.
— Исключено! Абсолютно исключено! — ответил Гейтс.
— Вот увидишь — настаивал Аллен44.
Данный текст является ознакомительным фрагментом.