Как и волшебную лампу Аладдина, компьютер можно было заставлять выполнять желания.
Вне всякого сомнения, от использования этой силы мог выиграть каждый, и каждый мог выиграть от мира, построенного на основах Хакерской Этики. Хакеры молча верили в это, своевольно расширяя общепринятую точку зрения на то, что компьютеры могут делать и что они должны делать, ведя мир к новым способам взаимодействия с компьютером.
Тем не менее, новые идеи пробивали себе дорогу с большим трудом. Даже в таком продвинутом учреждении как МТИ, некоторые профессоры рассматривали маниакальное влечение к компьютерам как весьма легкомысленную трату времени или даже как легкую форму сумашествия. Однажды один из хакеров TMRC по имени Боб Вагнер попытался объяснить профессору инженерного факультета, что представляет собойкомпьютер. Тогда Вагнер испытал на своей шкуре столкновение компьютерных и антикомпьютерных точек зрения, еще более живо и отчетливо, чем когда он слушал курс по численному анализу. Профессор, читавший численный анализ, требовал, чтобы каждый студент выполнял свое домашнее задание на грохочущих и неуклюжих электромеханических калькуляторах. Коток был в той же группе. Его, как и Сандерса, ужаснула перспектива работы с этими низкотехнологичными устройствами. «Почему мы должны это делать, если у нас есть компьютер?», — спросили они друг друга.
После этого Вагнер начал работу над компьютерной программой, которая эмулировала поведение калькулятора. Идея была возмутительной по своей сути. Для кого-то это было абсолютно нецелесообразным использованием дорогостоящего машинного времени. Оно, в соответствии со стандартными представлениями, должно было использоваться только для вещей, максимально полно использовавших возможности компьютеров и для которых в ином случае потребовалось бы множество математиков и масса времени на обсчет результатов. Хакеры считали иначе: все, что выглядело интересным и прикольным, заслужило быть отданным на съедение компьютеру. Они искренне верили в это и занимались этим, используя интерактивные способности машины, когда никто не заглядывает через плечо и не требует допуска для выполнения конкретного проекта. После двух или трех месяцев напряженной работы над тонкостями организации арифметики с плавающей точкой (это необходимо для того, чтобы программа знала, как обращаться с дробными числами) Вагнер написал три тысячи строк кода. Причем это все делалось на машине, которая не имела даже элементарного метода для умножения двух чисел. В результате, Вагнер заставил компьютер чудовищной стоимости выполнять работу, которую в состоянии сделать калькулятор, стоимостью в тысячи раз меньше. Чтобы отдать должное этой иронии, он назвал программу Expensive Desk Calculator[15], после чего с гордостью продемонстрировал всему классу свое задание, сделанное на компьютере, на одном из занятий.
Ему поставили «единицу». «Вы использовали компьютер!», — сказал ему профессор, — «А это не может бытьправильно».
Вагнер даже не попытался что-либо объяснить. Как бы он смог донести до своего учителя, что компьютер только что сделал реальностью то, что до сего момента относилось к разряду невероятных возможностей? Или как он смог бы ему объяснить то, что еще один хакер написал программу, которая называлась Expensive Typewriter[16], которая превращала TX-0 в нечто, на котором можно было набирать строки текста и печатать их на Flexowriter-е. Вы могли бы представить себе профессора, который принимает классную работу, написанную при помощи компьютера?
Вселенная человека и машины не была отмечена ни на одной карте, и практически никто, кроме самих хакеров не имел о ней никакого представления. Как бы смог этот профессор, или кто-нибудь другой на его месте, кто не был также погружен в эту Вселенную, понять, что Вагнер и его друзья использовали компьютер только для того, чтобы, по словам Вагнера, сымитировать «странные ситуации, которые вряд ли кто-либо мог предвидеть»? Со временем профессор, как и любой другой человек на его месте, понял бы, что мир, открытый компьютером был бесконечен.
Если кому-то нужны дальнейшие доказательства, то можно вспомнить о проекте, над которым на вычислительном центре работал Коток — программа игры в шахматы. Над ней начал работать еще на IBM 704 «дядя Джон» Маккарти, как его называли хакеры. Хотя Коток и некоторые другие хакеры, которые помогали ему в работе над программой, испытывали презрение к пакетному способу мышления фирмы IBM, которое окружало машину и людей вокруг нее, они были вынуждены нелегально занять некоторое количество машинного времени и интерактивно его использовать. Днем ранее они выдержали битву с системными программистами на IBM 704, в ходе которой выяснилось, какая из групп пользователей является самым большим потребителем машинного времени. Пули свистели по обеим сторонам баррикад, но, в конце концов, эти парни в белых рубашках и черных галстуках уступили и разрешили Котоку и его группе касаться кнопок и переключателей на 704, что было весьма редким осязательным контактом с этой именитой бестией, созданной в IBM.
Роль Котока в претворении в жизнь шахматной программы была показательна в том же плане, что и роль хакеров в области искусственного интеллекта. Обычно, какая-нибудь «Большая Голова», например Маккарти или его коллега Марвин Минский, начинала научный проект или интересовалась вслух реальностью реализации некоторой задачи на компьютере, а хакеры, если им это было интересно, начинали над этим работать.
Шахматную программу начинали писать на языке ФОРТРАН, который был одним из самых первых компьютерных языков. Компьютерные языки были гораздо более похожи на естественные языки, чем язык ассемблера, на них было гораздо легче писать, и с их помощью в нескольких строчках программы можно было сделать гораздо больше. Однако, каждый раз, когда компьютер получал список команд, написанных на языке ФОРТРАН, компьютер должен был сначала перевести эти инструкции в свой собственный бинарный код. Это делалось при помощи программы, называемой компилятором, которая делала максимум этой работы, равно как и занимала максимум ценного пространства памяти компьютера. В итоге, использование компьютерного языка было большим шагом в сторону от прямого контакта с компьютером, поэтому хакеры, как правило, предпочитали использовать ассемблер, или как они его называли, «машинный» язык, в отличие от менее элегантного «высокоуровневого языка» подобного языку ФОРТРАН.
Коток, вообще-то, признавал, что из-за огромного количества инструкций, которое было необходимо реализовать в программе для игры в шахматы, часть кода следовало писать на ФОРТРАНЕ, а часть — на ассемблере. Они хакерили программу по частям, при помощи «генераторов перемещений», которые были основной структурой данных, а также применяя все виды инновационных алгоритмов для реализации стратегии. После ввода в машину всех правил для перемещения каждой из фигур, они добавили в нее несколько параметров, с помощью которых оценивались позиции фигур, рассматривались различные варианты ходов, и, в конечном счете, выполнялись перемещения фигур, которые переводили программу в еще более сложное состояние. Коток занимался ею в течение нескольких лет, программа росла в размерах, по мере того как МТИ модернизировал компьютеры IBM. И, наконец, в одну памятную ночь, несколько хакеров собрались вместе, для того чтобы посмотреть, как программа выполняет свои первые ходы в реальной игре. Программа достаточно уверенно разыграла дебют, но после восьми или около того ходов, на «доске» сложилось тяжелое для компьютера положение — над ним нависла угроза мата. Всем было любопытно, как машина на это отреагирует. Спустя некоторое время (все знали, что во время этих пауз машина «думает», если считать за «мышление» рассмотрение компьютером различных вариантов ходов, их оценку, отбрасывание большинства из них, и использование предопределенных параметров для того, чтобы выполнить окончательный ход). В конечном итоге, компьютер передвинул свою пешку на две клетки вперед, перепрыгнув через другую фигуру на доске. Ошибка! Но достаточно хитрая — компьютер вывел фигуру за пределы доски. Может быть, программа пыталась разработать новый шахматный алгоритм, с помощью которого она хотела одержать верх?