Хакеры: Герои компьютерной революции - Стивен Леви
Шрифт:
Интервал:
Закладка:
Госпер мог оценить преданность Гринблатта своему делу, так как его упорство в попытках окончить институт (в который он поступил в 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 называла «человеческой волной» в программировании, когда на решение задачи бросались десятки программистов, а в итоге все заканчивалось ничем. Лучше было полагаться на двух-трех человек, чем на одинокого крестоносца, так что когда один хакер заканчивал свою тридцатичасовую сессию, подтягивался кто-нибудь еще и продолжал начатое. Это было что-то вроде команды, работавшей последовательно.
После того как PDP-6 MacLISP (названный в честь Project MAC) был доведен до ума, хакеры начали интегрировать этот компьютерный язык в свои программы, а также в свою собственную речь. Например, соглашение, принятое в LISP и использовавшее букву "p" в качестве предиката, было толчком к созданию хакерской манеры задавать вопрос. Когда кто-нибудь спрашивал «Еда-П?», то любой хакер знал, что его спрашивают, не хочет ли он пойти перекусить. Термы LISP "T" и «nil» означали, соответственно, «да» и «нет». Принятие LISP не означало уменьшения любви хакеров к ассемблерному языку, особенно на PDP-6 с ее элегантным набором инструкций. Но и Гринблатт и даже Госпер позднее поняли, что LISP был мощным средством для построения систем, которое очень хорошо укладывались в принципы Хакерской Этики.
DEC проявил интерес к MacLISP, и Коток договорился с тем чтобы Гринблатта и остальных, поздно вечером допускали в офис DEC в Мэйнарде, где они могли бы работать над программой, набирая и отлаживая код. Это было частью общей договоренности между МТИ и DEC, поэтому ни у кого не возникло никаких вопросов. Правильной Вещью было удостовериться в том, что любая хорошая программа получала максимальное распространение, потому что информация была свободной, и мир мог только выиграть от ее ускоренного распространения.
После работы над MacLISP, Гринблатт был, возможно, самым авторитетным системным хакером на PDP-6. Новый администратор лаборатории ИИ, молодой человек с югозапада страны, по имени Рассел Нофтскер, нанял Гринблатта, в основном, для того чтобы поддерживать и совершенствовать это живое существо, которое было компьютерной операционной системой. Но взгляды Гринблатта не ограничивались только системами, он очень активно интересовался концепциями искусственного интеллекта. Он решил использовать компьютерные системы для того, чтобы действительно сделать что-нибудь полезное в этой области, а так как он всю свою жизнь играл в шахматы, то было логичным, что он работал над программой для игры в шахматы. Программой, которая бы превзошла то, что в свое время написал Коток, а также остальные шахматные проекты ИИ, которые предпринимались в различных лабораториях по всей стране.