Чтобы программа стала лучше, можно было бы попробовать сделать то же самое с меньшим количеством команд, приложив при этом достойные усилия, так как в маленькой «памяти» компьютеров тех дней было очень мало места и в них не могло помещаться много инструкций. Джон Маккарти однажды отметил, как его аспиранты, которые тусовались вокруг IBM 704 , работали над своими компьютерными программами, пытаясь выжать из машинных команд все, что только было возможно, чтобы в итоге программа была максимально компактна и чтобы в машину нужно было вставлять наименьшее количество перфокарт. Удаление одной или двух инструкций для них было почти навязчивой идеей. Маккарти сравнивал этих студентов с лыжниками-баммерами (bummers), которые ездят на максимальной скорости. Студенты получали те же острые ощущения от этого «максимального кодекса» как и фанатичные лыжники, которые получали удовольствие, отчаянно и со свистом проносясь с вершины холма. Поэтому попытки отрезать часть инструкций от компьютерной программы без воздействия на конечный результат стали в итоге называться «программным баммингом» и вы могли бы часто слышать людей, бормочущих под нос что-то вроде: «Возможно, я сумею бамнуть несколько инструкций нафиг и сократить загрузку программы восьмеричной коррекции с четырех карт до трех».
В 1959 году интересы Маккарти немного сместились: он оставил шахматы и занялся новым способом общения с компьютером. Это был новый «язык» под названием LISP. А шахматным проектом занялись Алан Коток и его друзья, которые были весьма нетерпеливы и готовы приступить немедленно к решению проблемы. Работая на IBM, которая функционировала в режиме пакетной обработки, они начали обучать IBM 704, потом модель 709, а впоследствии и заменившую ее модель 7090, решению задачи расстановки ферзей на доске. В конечном счете, группа Котока стала самым большим пользователем компьютерного времени во всем вычислительном центре МТИ.
Однако работа с IBM сильно выматывала. Не было ничего хуже долгого ожидания в промежутке после сдачи ваших перфокарт и моментом, когда ваши результаты вручались вам назад. Если вы напечатали не в том месте хотя бы одну букву, то программа вылетала с ошибкой, и вы должны были начинать всю работу снова. Кроме того, как снежный ком росло количество чертовых правил, которые пронизывали всю атмосферу вычислительного центра. Большинство из этих правил было предназначено для того, чтобы держать сумасшедших компьютерных фанов типа Самсона, Котока и Сандерса, на должном физическом удалении от машины. Самым жестким правилом из всех было то, что никто не должен быть прикасаться к переключателям или непосредственно вмешиваться в работу машины. Как раз это ребята из СиП хотели сделать больше всего на свете и просто умирали от этого страстного желания, а действующие ограничения сводили их с ума.
Один Жрец, а точнее — помощник Жреца низкого уровня, во время ночной смены был особенно настойчив в выполнении этих бюрократических распоряжений. Для него Самсон изобрел подходящую месть. Однажды, копаясь в развалах электронного хлама в магазине Эли, он случайно наткнулся на электронную плату, которая в точности походила на плату, аналогичную той, на которой были смонтированы электронные лампы, находившиеся внутри IBM. Однажды ночью, около 4 часов утра, этот младший помощник Жреца отлучился на минуту из комнаты. Когда он возвратился, Самсон сказал ему, что машина вышла из строя, но они нашли источник проблемы, после чего показал ему полностью разбитый модуль от старой IBM 704, которую он нашел у Эли.
Помощник жреца едва смог вымолвить: « Г-где ты это взял?»
Самсон, большие зеленые глаза которого могли легко принимать маниакальное выражение, медленно показал на свободное место в стойке машины, где, конечно, никогда никакой платы не стояло, но сиротливая пустота которого, была как нельзя кстати.
У помощника жреца перехватило дыхание. По его лицу было видно, что от испуга его внутренности вот-вот выйдут наружу. Он начал стенать и взывать к Господу. Вне всякого сомнения, перед ним начали проноситься кошмарные видения в виде вычета в миллионы долларов из его зарплаты. Он успокоился только после того, как пришел Старший Жрец, который несколько понимал менталитет этих молодых вундеркиндов из TMRC и объяснил ему, что же происходит на самом деле.
Он будет далеко не последним администратором, который на своей шкуре почувствует недовольство хакера, которому мешают в доступе к системе.
* * *
В один из дней, в клуб нанес визит бывший член TMRC, который теперь работал на факультете института. Его звали Джек Деннис. В начале 1950-х, когда он сам был студентом, он с такой же неистовой увлеченностью работал под моделью железной дороги. Деннис недавно начал работать на компьютере, который МТИ только что получил из Lincoln Lab, дочерней институтской лаборатории, которая занималась военными научными исследованиями. Компьютер назывался TX-0, и это было один из первых транзисторных компьютеров в мире. В Lincoln Lab его использовали исключительно для проверки гигантского компьютера под названием TX-2, который имел настолько сложную память, что специально для этого построили «маленького брата», который мог успешно диагностировать ее проблемы. Теперь, когда его работа была закончена, TX-0, стоимостью три миллиона долларов был передан Институту в виде «долгосрочной ссуды» и, похоже, никто в Lincoln Lab не отметил в календаре дату возвращения. Деннис спросил у ребят из СиП в TMRC: хотели ли бы они на нее посмотреть? С тем же успехом можно было спросить монахинь: «Эй, монашки! Хотите встретиться с Римским папой?».
TX-0 размещался в Здании №26, на втором этаже Научно-Исследовательской Лаборатории Электроники[7], непосредственно над первым этажом Вычислительного центра, на котором размещался неповоротливый IBM 704. Лаборатория RLE походила на рубку управления старинного космического корабля. TX-0, или Tixo, как ее иногда называли, для своего времени была маленькой по размерам машиной, так как это был один из первых компьютеров, которые использовали транзисторы размером с палец, вместо электронных ламп размером с руку. Тем не менее, он занимал большую часть комнаты, и это не считая пятнадцати тонн вспомогательного оборудования для кондиционирования. Рабочие компоненты TX-0 были установлены на нескольких высоких, тонких шасси, которые походили на металлические стеллажи для книг, опутанные проводами, с аккуратными небольшими рядами маленьких, контейнеров, похожих на бутылочки, в которые были вставлены транзисторы. Другая стойка имела металлическую переднюю панель, пестревшую мрачновато выглядящими рукоятками управления. Перед стойками была расположена L-образная консоль, которая являлась пультом управления этого космического корабля из романа Герберта Уэллса, с синим покрытием, на которое можно было положить локти или бумаги. На коротком конце этой буквы «L» стоял Flexowriter, который походил на пишущую машинку, переделанную для ведения противотанковой войны — его основание покоилось на станине, выкрашенной в шаровый (серый) цвет, которым обычно пользовались военные. Наверху были расположены органы управления, которые выглядели как выпячивающиеся ящики, выкрашенные в положенный желтый цвет. На обращенных к пользователю сторонах ящиков, находилось несколько ручек, ряды мигающих лампочек, размерами в четверть дюйма, матрица из стальных переключателей, каждый из которых был размером с большое рисовое зерно, и действительно большая,лучшая из всех на этот момент, настоящая катодная лучевая трубка (CRT), округлой формы и дымно-серого цвета.
Ребята из TMRC благоговейно затрепетали. Эта машина не использовала перфокарт.Пользователь сначала пробивал свою программу на длинной и тонкой бумажной ленте при помощи Flexowriter-а (кроме того, в соседней комнате имелось несколько дополнительных Flexowriter-ов), затем садился за консоль, загружал программу, заправив ленту с ней в перфосчитыватель, и наблюдал за выполнением программы. Если с программой что-то шло не так, то пользователь немедленно узнавал об этом. Он мог определить источник проблем, нажимая на некоторые из выключателей, или проверяя, какой из сигнальных огней мигает или горит. Компьютер даже имел аудио выход: во время исполнения программы, спикер раположенный ниже пульта, играл своего рода музыку, похожую на плохо настроенный электрический орган, чья мелодия вибрировала с нечетким, эфироподобным шумом. Аккорды этого «органа» менялись, в зависимости от того какие данные машина считывала в конкретную микросекунду. После того, как вы становились более или менее знакомы с издаваемыми звуками, вы могли действительно слышать, на какой части вашей программы работал компьютер. Это вы могли также узнать по треску Flexowriter-а, работа которго была весьма похожа на ожесточенную стрельбу из пулемета.
Но еще более удивительными были «интерактивные» способности машины, на которой пользователям были выделены интервалы времени для использования TX-0 целиком для своих нужд. Кроме того, вы могли вносить в программу изменения, сидя непосредственно за компьютером.Это было просто фантастикой!