Хакеры: Герои компьютерной революции
Шрифт:
Госпер иногда подкалывал Гринблатта за его привычки. Особенно его раздражала привычка Гринблатта тереть одну руку об другую, что приводило к тому, что от них отваливались маленькие кусочки грязи. Госпер называл их «блаттлями». Если Гринблатт работал за столом Госпера и оставлял эти «блаттли» на его столе, то Госпер обычно промывал после него стол нашатырным спиртом. Госпер также иногда подкалывал Грннблатта за его ужасную манеру разговора, частое подкашливание, плохое произношение и бормотание, хотя многие из Гринблаттовских выражений вошли в специфический жаргон, который все хакеры использовали в той или иной степени. К примеру, вероятнее всего именно Гринблатт популяризовал практику удвоения слов для усиления выражений, как иногда это случалось, когда он, взбудораженный, пытался что-либо объяснить Госперу, Котоку и Самсону; слова его начинали заплетаться,
Несмотря на эти странности его натуры, хакеры очень уважали Гринблатта. Он был таким, каким он есть, так как он для себя четко определил приоритеты — он был хакером, а не социальным существом, и не видел для себя ничего более полезного, чем хакерство. Оно настолько захватывало его, что он иногда по полгода не мог найти времени, чтобы получить свою зарплату. «Если бы он присел и попытался выразить словами свои мысли и то, что он делал, то он никогда бы ничего не сделал», —говорил позднее Госпер, — «Если бы он беспокоился о правилах грамматики, то он никогда бы ничего не написал. Он делал то, к чему он был способен. Он был полным прагматиком. И пошло к черту все то, о чем говорили люди. Если кто-то полагал, что он глуп и странен, то это были их проблемы. Некоторые люди действительно так считали, и они ошибались».
Госпер мог оценить преданность Гринблатта своему делу, так как его упорство в попытках окончить институт (в который он поступил в 1965 году) привело к тому, что у него появились проблемы. Это не означало ни последнего года обучения в МТИ, ни каких-то проблем с учебой, так как он пытался выполнять в меру сил требования учебного плана. Проблема была в том, что у него был подписан договор с Военно-Морским Флотом США. Перед поступлением в МТИ, он сдал специальный экзамен, в котором он показал результаты, достаточно хорошие, для того чтобы быть включенным в специальную исследовательскую программу для студентов. Каждое лето он работал на флот, который оплачивал половину его обучения. По договору, также, требовалось отработать на флот после окончания учебы в течение трех лет. Когда Госпер подписывал договор, в нем был один пункт, который отменял обязательства по обязательной отработке после окончания института, но только в том случае, если вы могли бы найти фирму, которая бы заплатила за вас тридцать тысяч долларов. Во время учебы Госпера на старших курсах эта ловушка захлопнулась, и его мог спасти только перекупщик, потому что у него самого таких денег не было.
Перспектива работы на флот была для него ужасна. Во время своей летней работы он столкнулся с душераздирающей системой, которая была полной противоположностью Хакерской Этике. Программисты сидели в комнатах, полностью изолированные от машины. Иногда, в качестве заслуги за долголетнюю службу, особенно покорным и исполнительным сотрудникам дозволялось подходить к машине и видеть, как работает их программа. По рассказам, одна женщина, которой была дарована такая привилегия, зашла в комнату, после чего вид мигающих лампочек и жужжание дисков вызвал у нее обморок. В дополнение ко всему этому, будущий шеф Госпера в ВМФ, был человеком, который не понимал, почему логарифм суммы не равен сумме логарифмов.
Кроме того, у Госпера сложилось впечатление, что у ВМФ была большая любовь, чуть ли не физическое влечение к компьютерам Univac. Этот компьютер был гротескной пародией на компьютер, и был таким же неповоротливым гигантом, как и то что, изготовляла IBM. ВМФ следовало бы знать, что все это было грандиозным обманом, но Univac все равно использовали, что было классическим примером неизбежного извращенного порождения бюрократии Внешнего Мира. Сожительство с этой машиной для Госпера было равнозначно погружению в ад. Госпер использовал компьютер для того, чтобы находить все новое, что до него не встречал никто, и для него было крайне важным, чтобы компьютер, который он использовал, был оптимальным во всех смыслах. PDP-6 была наилучшей машиной из всех, которые он встречал, и для себя он решил, что он ее ни на что не променяет, в особенности на такого монстра как Univac. «Если я видел машину, в которой имела место невероятная тупость, ошибки в дизайне или нечто в этом роде, это раздражало меня до крайности», — объяснял позднее Госпер, — «В то же время PDP-6 выглядела как бесконечно совершенствующаяся машина. Если что-то было не так, то это можно было поменять. В некотором смысле мы жили внутри этой чертовой машины. Это было частью окружавшего нас мира. Практически это был социум… Я не мог представить себе своей жизни без PDP-6».
В конце концов, Госпер определился с тем, где ему взять деньги, чтобы вернуть их флоту. Он должен был их отработать, работая на компанию, в которой была PDP-6. Он выполнил этот жесткий пункт договора, найдя работу в той же фирме, на которую Гринблатт работал весь этот год — Charles Adams. То, что компания Adams никогда работала «правильно» на PDP-6 (Хотя Гринблатт настаивал на том, что он выполнил свою часть подготовки машины к работе «от и до») не слишком беспокоило Госпера. От чего он действительно покрылся пятнами — когда он узнал, что компания Charles Adams свернула проект на PDP-6 и приобрела точную копию неповоротливого гиганта Univac, который был у военных моряков.
К этому времени увеличилось финансирование Project MAC и Билл Госпер нашел способ втиснуться в ведомость расходов. Ему не пришлось менять свои привычки так как, работая в оговоренные часы на Adams, он каждую ночь пропадал на девятом этаже, работая на PDP-6.
Хакерские крылья Гринблатта к этому времени полностью окрепли. Одним из проектов, над которым он работал на PDP-6, был компилятор LISP, что позволило бы использовать на этой машине самую последнюю и наиболее совершенную версию языка, разработанного Джоном Маккарти для искусственного интеллекта. Юный Питер Дейч написал в свое время LISP для PDP— 1, но этот вариант был неэффективен, так как на «единице» было мало памяти. LISP, который работал с символами, а не числами (они легко трансформировались в бинарный вид) пожирал невероятное количество памяти.
Некоторые хакеры, включая Госпера, считали, что реализация LISP на PDP-6 является полной тратой времени. Госпер, который всегда был озабочен тем, что у компьютеров те дни не хватало вычислительной мощности, позднее изумлялся тому, как они были невежественны во время работы в лаборатории ИИ, пытаясь выполнять невозможные задачи и обвиняя в неудачах не те ничтожные машины, которые были в их распоряжении, а самих себя. На старшем курсе, Минский подкинул Госперу задачу, в ходе которой следовало изучить является ли некоторое оптическое явление стереоскопическим или монокулярным. Ему удалось сделать несколько шагов к решению этой задачи, и, в конце концов, создать изящную фигуру в виде клеверного листа, с помощью, которой удалось продемонстрировать это явление. Тем не менее, большую часть времени он бился головой о кирпичную стену, пытаясь выжать из машины больше, чем она была в состоянии сделать. Поэтому одной из задач, которую Госпер считал невозможной, состояла в разработке пригодного компилятора LISP на PDP-6, который мог бы быть полезен в качестве анализа символьных последовательностей, но никак не для полезной работы. Он считал, что это очередная глупость Минского, которую Гринблатт и остальные пытались реализовать.
У Гринблатта было другое видение проблемы. Хотя он понимал, что LISP на PDP-6 будет в некотором роде хаком, не полностью обоснованным с практической точки зрения, он видел необходимость движения в этом направлении. Это был мощный язык, давший возможность уйти вперед исследованиям в области искусственного интеллекта: это был язык, при помощи которого могли выполнять задачи, крайне сложно реализуемые иным способом, и с его помощью системы могли бы действительно обучаться. У Гринблатта только еще начали складываться конкретные очертания будущего; легкий намек на техническую реализацию хакерской мечты. Поэтому он, и еще несколько человек, даже Коток, который периодически приезжал из DEC, начали писать LISP на PDP-6. Они исписали в несколько слоев все классные доски в TMRC, и в конечном счете им удалось запустить его на машине.
Самые ответственные части были написаны Гринблаттом и еще одним хакером. Одновременная работа двух или трех человек над проектом рассматривалась как Правильная Вещь, что было весьма далеко от того, что IBM называла «человеческой волной» в программировании, когда на решение задачи бросались десятки программистов, а в итоге все заканчивалось ничем. Лучше было полагаться на двух-трех человек, чем на одинокого крестоносца, так что когда один хакер заканчивал свою тридцатичасовую сессию, подтягивался кто-нибудь еще и продолжал начатое. Это было что-то вроде команды, работавшей последовательно.