Глава 7. (1979) У Роберты замечательная идея

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

Дж. К. Роулинг, писательница

Роберта сыграла в основании компании Sierra поистине легендарную роль. Но это еще не все.

За годы до основания Sierra, когда я строил свою карьеру программиста, Роберта тоже пошла работать в IT-индустрию.

Это была не ее идея, а моя.

Я хотел, чтобы Роберта пошла работать, а она хотела оставаться дома на хозяйстве с нашими детьми. Причина, по которой я уговаривал Роберту выйти на работу, была проста: у нас было бы больше денег, если бы и Роберта нашла себе работу. Я также полагал, что ей понравится работать с компьютерами. Я сам свою работу очень любил, и я надеялся, что если и Роберта попробует, то работа принесет ей такую же радость.

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

Да, я мало что знала о компьютерах, но мое знакомство с ними не исчерпывалось одними только рассказами Кена на эту тему. Я провела с Кеном много времени в компьютерных залах – не только когда он учился в Калифорнийском политехническом, но и на курсах в Control Data Institute, когда он учился там, а затем на его первой работе оператором ЭВМ. Кен часто просил меня менять ленточные накопители, а затем и жесткие диски на разных своих работах. Это было отчасти и потому, что он изучал свое «программирование» и не хотел отрываться из-за необходимости поменять ленту или дисковый накопитель. Получалось, что я и сама довольно много времени «операторствовала», пока мы с Кеном «ждали» в компьютерных залах. Вот таким образом я и сумела получить работу оператором ЭВМ (в колледже Линкольн-Лэнд) и сделать это легко, без каких-либо курсов. Я не просто «сидела и играла с детьми». Я еще и училась.

Роберта Уильямс (замечание, которое она посчитала нужным сделать, прочитав то, что я написал выше)

Роберта очень хорошо справлялась с обязанностями оператора ЭВМ, хотя ей на этой работе пришлось укрощать нового начальника. В первый же день руководитель предложил ей взять на себя дополнительную функцию – готовить кофе двум его программистам и ему самому. Роберта отказалась, сообщив, что не умеет варить кофе. Это была чистейшая правда – но она и не хотела этому учиться! Спустя несколько дней начальник Роберты попросил ее набрать на пишущей машинке письмо. Она сразу же ответила: «Я не умею печатать на машинке», – а вот это уже неправда, но Роберте было все равно. Она как-никак была оператором ЭВМ, а не секретаршей!

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

Это был знак: пора возвращаться в теплую Калифорнию.

Отец Роберты, которого теперь уже нет в живых, работал в округе Лос-Анджелес сельскохозяйственным инспектором. У него была отличная работа с высокой зарплатой и замечательными льготами. Джон периодически поучал нас, как хорошо работать на государство.

Это натолкнуло меня на мысль: если работать на государство так уж хорошо и приятно, почему бы Роберте не поработать именно там? Администрация округа публиковала объявления о вакансиях, и я видел, что там много позиций начального уровня, предполагающих работу с компьютерами. Хотя опыт работы там и не требовался, кандидатам нужно было пройти тестирование, чтобы работодатель мог определить, у кого есть необходимые знания и способности, а у кого нет. Были и собеседования, но ради беспристрастности все было устроено так, что решение по кандидату принималось в первую очередь по итогам тестирования, а во вторую уже по собеседованию.

Роберта – умная женщина. Я знал, что она прекрасно справится с любым тестом, но хотел устранить все сомнения. Поэтому я кое-что придумал. Я сам сделаю вид, что устраиваюсь на работу начального уровня и пройду тест. Так я мог бы узнать, какие вопросы будут в тесте, и с этими знаниями помочь и Роберте подготовиться к тестированию.

Я сдал тест – разумеется, на отлично. Я мог бы специально дать неправильные ответы, но честнее было ответить на вопросы как можно лучше.

Я оправдывался перед собой примерно так:

• Я ничего не записывал

• Я честно ответил на вопросы

• Если бы из администрации округа позвонили и предложили мне отличную работу с большой зарплатой, я бы согласился

• Я же не собирался давать Роберте сами ответы, я только говорил ей, что изучать

• Роберту должны были проверять на знания, и она получила эти знания до того, как пришел ее черед проходить тестирование

Сжульничал ли я? Можно и так сказать, но это уж вы решайте сами. Тест я сдал, а потом потратил много часов, натаскивая Роберту по темам, которые должны были попасться в тесте. В основном вопросы касались двоичной арифметики, шестнадцатеричной системы счисления и основ компьютерной терминологии. Роберта быстро все схватывала и легко обучалась. В том месяце тестирование на «отлично» сдали два человека с фамилией Уильямс.

Я получил несколько предложений о работе от администрации округа, но так и не соблазнился. Роберта тоже получила несколько предложений и начала свою новую жизнь в качестве оператора ЭВМ – теперь уже она таскала магнитные ленты на благо округа Лос-Анджелес.

Проработала она там недолго. Полгода, что ли? Это было так давно, что никто из нас не помнит. Конечно, почти сразу же после того, как жена вышла на работу, я захотел, чтобы она продвигалась вверх по карьерной лестнице. Роберта и к работе-то отнеслась без энтузиазма, а к идее о том, что ей нужно искать работу программистом – и подавно.

Роберта думала, что я сошел с ума, когда настаивал именно на таком трудоустройстве. Я уговорил ее пройти в колледже курсы программирования на языке COBOL[9], на котором в то время программировал я сам. Параллельно с обучением на курсах я дополнительно поднатаскал ее на домашних занятиях и убедил разослать резюме. Все это время Роберта не переставала на меня ворчать.

Найти ей работу оказалось проще простого. В середине семидесятых годов на улицах Лос-Анджелеса проще было встретить слона, чем отыскать женщину-программиста. Так и представляю себе лица менеджеров, когда им на стол легло резюме молодого начинающего программиста по имени «Роберта». Разве такое бывает? Роберту немедленно приняли на работу программистом на языке COBOL в компанию Lawry’s Foods из Лос-Анджелеса.

Официально должность Роберты называлась «программист-стажер на COBOL». Работала она хорошо, но ей не хватало мотивации, чтобы по-настоящему вникнуть в суть дела. Кроме того, ей поручили проект по обустройству корпоративной бухгалтерии, но в бухгалтерском учете Роберта не разбиралась никак.

Но ни одна из этих проблем не ставила работу под угрозу. Кто мог бы уволить женщину-программиста в середине 1970-х? Это было просто невозможно. И, по правде говоря, Роберта очень хорошо справлялась. Если в течение рабочего дня у нее что-то и не получалось, то дома я помогал ей разобраться и исправить код. Все задачи у нее были сделаны и сделаны правильно. Думаю, в Lawry’s замечали, что Роберта работает как-то необычно, но в конечном счете всех все устраивало.

Роберта проработала в Lawry’s не слишком долго: ей не нравилось программирование, нашему сыну нужно было уделять больше внимания, а я редко бывал дома.


Лос-анджелесские пробки: час на дорогу туда, час обратно


Мы с Робертой постоянно обсуждали, что хотим уехать из Лос-Анджелеса. Причин было много, но в основном все сводилось к тому, что мы говорили: «Разве не здорово было бы жить где-нибудь в лесу?» Наш второй сын Крис родился в мае 1979 года, а нашему старшему, Диджею, скоро должно было исполниться шесть лет. Хотели ли мы, чтобы он, когда подрастет, ходил в школу в Лос-Анджелесе, где его наверняка подстерегают наркотики и насилие? К тому же меня выматывала дорога на работу и обратно – приходилось по несколько часов в день стоять в лос-анджелесских пробках.

К сожалению, для разработчиков программного обеспечения в маленьких городках с работой было туго. Если я хотел работать программистом, жить надо было там, где я мог найти работу.

Решение нашлось, когда мне предложили работу в авиастроительной компании Boeing в Сиэтле. Сегодня Сиэтл – это центр IT-индустрии, там расположены штаб-квартиры Microsoft, Expedia, Amazon, Zillow и многих других компаний. Однако в те времена всех этих фирм не было еще и в планах: единственным работодателем в городе, который хоть чего-то стоил, была Boeing. Сиэтл в те времена был городом немаленьким, но и не особенно большим.

Чтобы принять предложение о работе в Сиэтле, нам нужно было продать дом в Бербанке, штат Калифорния. Мы выставили наш дом на продажу, и его вроде бы купили, но по условиям сделки сумму на 90 дней нужно было положить на специальный счет в банке. Компания Boeing согласилась меня подождать, но спустя буквально несколько дней, когда мы уже собирались переезжать, продажа сорвалась[10]. Мы собрали вещи и мысленно уже были в Сиэтле – страшное разочарование. Мы хотели уехать из Лос-Анджелеса, и Сиэтл был нашей единственной надеждой. Boeing отозвала свое предложение о работе.

Моя последняя работа «на дядю» на полный рабочий день была в компании под названием Informatics. Это была работа мечты, на которой я получал невероятный опыт – там мне довелось поработать с новейшими технологиями на новейших системах. Сейчас это трудно представить, но в то время IBM доминировала на рынке. Все знали поговорку: «Никого никогда не увольняют за покупку IBM». Компьютеры IBM были самыми дорогими, но лучшими – самыми мощными, самыми быстрыми, за ними стояли лучшие продажники, они занимали доминирующее положение на рынке. Я поставил себе задачу номер один: изучить все, что связано с IBM.

Informatics создала компьютерный язык – он же еще и система баз данных – под названием Mark IV. На компьютерах IBM он был крайне популярен. Мне самому всегда хотелось работать над созданием языка программирования или системы баз данных: для программиста лучше работы не придумать. К тому же меня окружали талантливейшие люди, ведь Informatics не жалела денег на зарплаты и грамотно подбирала себе кадры. Каждый день я учился чему-то новому.

Однако все это было не так важно, как наше желание переехать из Лос-Анджелеса. И, к сожалению, у меня не было других возможностей это сделать, кроме как начать работать на себя. Мне нужно было открыть какую-то компанию, которой можно было бы управлять из дома, живя в лесу.

Я и Боб Лефф – тоже инженер-компьютерщик в Informatics – каждый день обедали вместе и обсуждали идеи компаний, которые мы могли бы открыть.

Я размышлял над этой затеей – какой бы бизнес мне открыть – и отметил, что как раз тогда корпорация Tandy (она же Radio Shack) выпустила свой персональный компьютер[11], и примерно в то же время Стив Джобс и Стив Возняк представили Apple II.

Еще я увидел, что какая-то крошечная компания Microsoft выпустила для компьютера TRS-80 язык программирования под названием BASIC. Я подумал, что сейчас для этих «персональных компьютеров» может возникнуть целый рынок других языков программирования, и мы с Бобом начали рассуждать, как можно портировать Fortran (тоже язык программирования) на TRS-80.

Как раз когда я планировал следующий шаг, Роберта подарила мне на Рождество компьютер Apple II. Apple II был намного мощнее TRS-80 и мог даже загружать программы со стандартных аудиокассет![12]

Я сразу понял, что будущее именно за Apple II. У этого компьютера был невероятно большой объем памяти (16k) и мощный процессор (6502).

Мы с Бобом Леффом начали работать над реализацией Fortran на компьютере Apple II. Microsoft предлагала для Apple II свой BASIC, и я был уверен, что сможем их обойти – все-таки Fortran как язык программирования был намного мощнее.


TRS-80 Model 1


Apple II


Пример программы на Fortran


Во времена, когда я только начал заниматься компилятором Fortran, я все еще работал в компании Informatics и еще подрабатывал у нескольких других работодателей.

Одна из этих подработок требовала, чтобы я брал домой телетайп, позволяющий мне писать код для какого-то невидимого удаленного компьютера. Этот телетайп мне, возможно, предоставила Лос-Анджелесская детская больница, но теперь я такие мелочи уже не вспомню.

Для меня это была далеко не первая встреча с устройствами, подключенными к удаленным мейнфреймам (большим компьютерам). На самом деле, мои подработки, благодаря которым я писал код для разных лос-анджелесских организаций, были оформлены как консалтинговая практика под названием On-Line Systems. Я поднаторел в работе с компьютерами, к которым люди обращались через удаленные терминалы. В частности, я специализировался на технологиях IMS и CICS, а также на системе баз данных IMS-DB.

В те дни еще не было такого понятия, как «Интернет». На самом деле, тогда не было еще ничего даже отдаленно похожего на Интернет. Существовали удаленные терминалы, их подключали к компьютерам-мейнфреймам – но это подключение было непосредственно к мейнфрейму и ни к чему другому. Не все терминалы были такими же громоздкими, как телетайп, который я принес домой. Большинство терминалов, с которыми я тогда работал, были уже с ЭЛТ-дисплеями (на основе электронно-лучевой трубки) и использовали для отображения страниц данных систему, не сильно отличающуюся от современной, которая используется сейчас в Интернете для отображения веб-страниц (HTML).


Телетайп, акустический модем и считыватель бумажных лент


С телетайпом обращаться приходилось так: программу надо было загрузить с бумажной ленты, а затем с помощью акустического модема подключиться к удаленному компьютеру. Модемом было маленькое устройство, которое передавало данные в виде звука – немного похоже на азбуку Морзе, когда случайные, на первый взгляд, гудки и писк представляли данные. И их передавали в виде звука по телефонной линии.

Этот модем передавал данные со скоростью «110 бод», что на техническом языке означало «одуреть как медленно». «Насколько медленно?» – спросите вы. Ну… почти все фотографии, которые я делаю на свой iPhone, размером около 2 мегабайт. Чтобы передать 2 мегабайта данных на скорости 110 бод, потребовалось бы не менее сорока пяти часов, если бы соединение вообще не оборвалось раньше. Достаточно сказать, что никто не отправлял фотографии через акустический модем.

Вполне возможно, что я принес домой телетайп, просто чтобы поиграться с ним. По крайней мере, это единственное назначение телетайпа, которое я могу вспомнить. Я как-то смог дозвониться по телетайпу в Массачусетский технологический институт и поиграть в игры.

У них там было не так много игр, и я не смог найти ту самую оригинальную игру Star Trek, с которой начался мой интерес к компьютерам.

Зато я нашел игру под названием Colossal Cave Adventure.

Я заинтересовался, что это такое, запустил программу, и, к моему удивлению, меня встретили такие слова…


> ВЫ СТОИТЕ У КОНЦА ДОРОГИ ПЕРЕД НЕБОЛЬШИМ КИРПИЧНЫМ ЗДАНИЕМ.

ВОКРУГ ВАС ЛЕС. НЕБОЛЬШОЙ РУЧЕЙ ВЫТЕКАЕТ ИЗ-ПОД ЗДАНИЯ И ТЕЧЕТ ПО ОВРАГУ.

]


А? И что теперь? Что я должен был делать? Никаких инструкций вроде бы больше и не было.

Все, что я мог придумать, – набрать HELP (ПОМОЩЬ).


> Чтобы играть в игру, вводите в командную строку ниже короткие запросы. Если ввести слово LOOK (ПОСМОТРИ), игра расскажет, что вас окружает. Введите INVENTORY (ВЕЩИ), чтобы посмотреть список вещей, которые вы несете с собой. Команды GET (ВОЗЬМИ), DROP (БРОСЬ) и THROW (КИНЬ) помогают взаимодействовать с объектами. В этой игре стоит пробовать разные команды и смотреть, что произойдет.

]


Любопытно! Я экспериментировал, набирая различные предложения, которые как будто бы и не давали никакого результата, пока я не ввел простую фразу GO BUILDING (ИДИ ЗДАНИЕ).


> Вы внутри здания, это колодезный домик для большого источника.

На полу лежат ключи.

Неподалеку блестящая латунная лампа.

Здесь вкусная еда.

Здесь бутылка воды.

]


Тут все стало очень интересно. Роберта была в этот момент неподалеку на кухне, и я позвал ее к компьютеру. Она прочитала напечатанный текст у меня из-за плеча, а затем отодвинула меня в сторону. Она хотела сама попробовать. Я был недоволен! Только вошел во вкус, а жена отобрала у меня игрушку.

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

Работа над моим компилятором Fortran шла бойко, и вскоре она стала гораздо проще – Apple выпустила дисковод для гибких магнитных дисков (дискет). Аудиокассеты были медленными и ненадежными носителями информации, тогда как на дискету помещалось уже около 110 тысяч байт (символов) информации. Дискеты, правда, тоже были ужасно медленными, но хотя бы более надежными.


Дискета на 110 Кб. Сюда может поместиться одна картинка в низком качестве


Ранняя текстовая приключенческая игра от Скотта Адамса и Adventure International


Тем временем Роберта тосковала по уже пройденной Colossal Cave – ей хотелось поиграть во что-нибудь подобное.

Я заказал ей несколько игр на аудиокассетах – их выпускала флоридская компания под названием Adventure International. Разрабатывал их некий Скотт Адамс, и устроены они были примерно так же, как и Colossal Cave. Игрок вводил с клавиатуры команды, чтобы исследовать мир, который игра полностью описывала текстом. Роберта быстро прошла все купленные игры, а затем начала думать о том, не создать ли ей собственную…

Жена несколько раз пыталась показать мне, над чем работает, но я был занят и все пропускал мимо ушей. Все мое время поглощали разрабатываемый компилятор, основная работа на полную ставку и попутные подработки.

И вот однажды в субботу вечером наша жизнь круто изменилась, когда Роберта сказала, что хочет сходить со мной на ужин в ресторан – у нее для меня какой-то сюрприз. Я понятия не имел, что это может быть за сюрприз. Мы заказали столик в шикарном стейк-хаусе (The Plank House) и вызвали детям няню.

Что бы там Роберта ни задумала, это, похоже, было для нее важно.

За ужином Роберта изложила идею собственной приключенческой игры. Она задумала игру под названием Mystery House («Таинственный дом») – концепция в целом была основана на романе Агаты Кристи «Десять негритят» и настольной игре «Клуэдо»[13]. В Mystery House восемь персонажей должны были оказаться заперты в доме, где их одного за другим убивали. Пока Роберта описывала убийства, мне хотелось спрятаться под стол: жена оперировала словами, не слишком типичными для романтического ужина: «убийство», «смерть», «пистолет», «нож», «кровь» и «душить». Другая семейная пара за соседним столиком явно слышала обрывки разговора и видела, как Роберта оживленно и очень громко говорит что-то в духе: «Ледорубом в глаз – разве не здорово?»

Роберта продолжила обсуждение и по возвращении домой – она раскатала на кухонном столе большой лист ватмана, весь разрисованный пузырями с текстом и соединительными линиями. В пузырях значились описания мест: «Крыльцо», «Кладбище», «Чердак».

Роберта говорила, а я внимательно слушал. Наконец-то она меня заинтересовала! Я начал размышлять, как можно сделать такую игру. На мой взгляд, это была тривиальная задачка по программированию – полдня работы, и готова игра на радость Роберте. У нее эта идея явно вызывала нешуточный энтузиазм.

Я размышлял вслух и спросил Роберту: «Интересно, можно ли сделать так, чтобы игра показывала еще и картинки – где происходит действие?» Роберта спросила, возможно ли это, и я ответил: «Не думаю, но было бы забавно попробовать». Если я и собирался на несколько дней оторваться от своего компилятора, то только ради какого-нибудь развлечения. И я уже начал задаваться вопросом, можно на Apple II отображать картинки или нет.

Загрузка...