Роберта проработала в 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.
Я заинтересовался, что это такое, запустил программу, и, к моему удивлению, меня встретили такие слова…
> ВЫ СТОИТЕ У КОНЦА ДОРОГИ ПЕРЕД НЕБОЛЬШИМ КИРПИЧНЫМ ЗДАНИЕМ.
ВОКРУГ ВАС ЛЕС. НЕБОЛЬШОЙ РУЧЕЙ ВЫТЕКАЕТ ИЗ-ПОД ЗДАНИЯ И ТЕЧЕТ ПО ОВРАГУ.
]
А? И что теперь? Что я должен был делать? Никаких