Стивен Джобс. Нарцисс из Кремниевой долины (страница 6)
Главной вычислительной машиной в Массачусетском технологическом институте была IBM 704. Ее массовый выпуск наладили в 1954 году. Стоила она два миллиона долларов и весила около 15 тонн, даже без мощной системы охлаждения. В инструкции указывалось, что IBM 704 – это «крупномасштабный скоростной электронный калькулятор, управляемый внутренней хранимой программой с инструкциями одноадресного типа… Гибкая организация позволяет машине выполнять команды со скоростью примерно сорок тысяч команд в секунду при решении большинства проблем… Внутренняя скоростная память – на магнитных сердечниках. Когда объем памяти оказывается недостаточным, магнитные барабаны используются для того, чтобы хранить и выдавать большие объемы информации для быстрого доступа с небольшими интервалами. Когда необходимый объем памяти превышает возможности оперативной памяти и магнитных барабанов, используется магнитная лента… Программа может вводиться в калькулятор многими способами… Обычно команды в исходной форме пробиваются на перфокартах и вводятся в машину через читающее устройство…»[40].
Одно из самых строгих официальных правил заключалось в том, что никто, абсолютно никто, кроме обслуживающего персонала, не имел права без разрешения приближаться к машине, хотя, разумеется, многие студенты и молодые научные сотрудники ну просто сгорали от желания нарушить это правило.
Первый язык программирования высокого уровня – Fortran (Фортран) – был разработан американским специалистом в области информатики Джоном Бэкусом (1924–2007) в 1954 году, а первый компилятор (программа для перевода программы высокого уровня в машинный код) для указанного языка появился в 1957 году. Другой информатик – Джон Маккарти (1927–2011) – через год разработал язык LISP (List Processing language; Лисп). А уже весной 1959 года Массачусетский технологический институт предложил своим студентам первый учебный курс программирования; преподавал его сам Джон Маккарти.
Машинные языки быстро усложнялись.
Общение с машиной выходило на все более осмысленный уровень.
Теперь это было уже не обычное муторное составление программ в специальных кодах, требующее подробной записи команд и адресов в числовом (бинарном или восьмеричном) представлении, а настоящая творческая работа.
Интересно, что в те же самые годы за океаном – в СССР – исследователи шли тем же примерно курсом (уточним, параллельным), хотя развитию вычислительной техники очень мешала продолжающаяся там чисто идеологическая борьба с кибернетикой. Тем не менее первый учебный курс программирования в СССР (с использованием условного языка команд) был прочитан уже в 1952 году замечательным математиком Алексеем Андреевичем Ляпуновым (1911–1973)[41]. А с конца 1950-х годов в СССР начали выходить учебники программирования, среди них очень известный – Анатолия Китова и Николая Криницкого[42].
Сейчас трудно представить себе бурную радость хакеров при появлении новых все более доступных компьютеров. В Массачусетском технологическом институте таким «новым» стал TX-0. В отличие от прежних вычислительных мастодонтов, он не производился массово; техникам для работы сперва был предоставлен образец, созданный в Линкольновской лаборатории. Был он выполнен на транзисторах и печатных схемах, имел совсем небольшой экран, на котором в процессе работы высвечивались всего лишь зеленые буквы, точки и линии, даже допускал работу в интерактивном режиме, зато занимал целую комнату и стоил около трех миллионов долларов. Все же – штучное производство. Данные в TX-0 вводились с перфолент, а не с перфокарт, причем нужную перфоленту можно было «набить» тут же. Объем оперативной памяти TX-0 составлял всего несколько килобайт, но несомненное преимущество – энтузиастам из числа студентов и преподавателей разрешали работать с ним непосредственно!
В 1959 году появился еще более компактный (размером всего-то с тройку холодильников) компьютер PDP-1 – продукт недавно возникшей корпорации «Digital Equipment» (DEC; «Диджител экипмент»). Эта машина стоила уже только 120 тысяч долларов; немало, но все же не миллионы!
Чем занимались, чего достигли первые хакеры?
Говоря о юности Стива Джобса и Стива Возняка, о возникновении знаменитой фирмы «Apple», о создании первых настоящих персональных компьютеров не обойтись без реального понимания царящей в те годы атмосферы созидающего, всегда личностного труда. Даже неясно, в какой последовательности следует перечислять темы, вдохновлявшие и одновременно развлекавшие хакеров того поколения.
Ну, развитие языков программирования. Тут, в общем, все ясно.
«Рассел помогал дяде Джону (основоположнику теории искусственного интеллекта Джону Маккарти. – Г. П., С. С.) писать интерпретатор LISP для огромного неповоротливого гиганта IBM 704. По его словам, это была “ужасная инженерная работа”, в основном – из-за утомительного режима пакетной обработки на модели 704»[43].
Ну, первые компьютерные игры.
Под влиянием все того же неутомимого Джона Маккарти шла непрестанная работа над программами для игры в шахматы (за океаном, в СССР, этим тоже занимались с конца 1950-х – под руководством чемпиона мира, доктора технических наук Михаила Ботвинника). Одновременно велась работа над играми, близкими к тем, что популярны и сейчас, к примеру «Мышь в лабиринте». Пользователь рисовал световым пером хитроумный (по его представлению) лабиринт, затем ставил отметку на экране, и эта отметка (собственно, мышь), тыкаясь в стены, упорно отыскивала другие отметки (ломтики сыра) на экране. Существовала даже VIP-версия этой игры: в ней мышь отыскивала бокалы с мартини[44].
Ну, первые шаги компьютерной графики.
Здесь игры тоже были не последней мотивацией.
Вот, скажем, разработка оптимального маршрута с пересадками в огромном запутанном нью-йоркском метро. Программы подобного типа сейчас вовсю используются, к примеру, в системах продажи авиабилетов. Этот хак (обходное техническое решение) был даже опробован в реальности. Парочка экспериментаторов ехала в настоящем метро, а связь с ними через уличные телефоны обеспечивалась курьерами, связанными с лабораторией. Данные вводились в машину, программа выдавала нужные указания, и вся эта информация тут же отправлялась к экспериментаторам.
Наконец, открытие совершенно неожиданных (именно так!) возможностей компьютера. В компьютер PDP-1 стало воможным вводить музыкальную партитуру, переводя ноты в буквы и цифры, а он отвечал на это прекрасной трехголосной органной сонатой. Группа хакеров закодировала таким образом оперетты Гилберта и Салливана.
Показателен пример создания известной игры «Космические войны».
Это был существенный шаг по направлению к программированию в «реальном» времени: события, происходившие в компьютере, совпадали с временноˊй шкалой, в которой работали люди. Расселу наконец удалось сымитировать интерактивный стиль отладки, позволявший видеть, какая из инструкций программы была обработана неправильно. После этого, используя переключатель (Flexowriter), можно было перескочить на другую инструкцию.
Благодаря многочисленным энтузиастам возникла сильнейшая мотивация для развития систем, максимально приближенных к пользователю. Но в целом хакеры Восточного побережья все же были настроены более академично, чем в Калифорнии, – ведь в Массачусетском технологическом институте работали такие светила, как Джон Маккарти и Марвин Ли Минский (1927–2016). Они, кстати, сами были полны любопытства. Когда Минский, например, набрел (почти случайно) на способ изображения окружности на примитивном дисплее (стандартного графического программного обеспечения тогда попросту не существовало), это весьма подняло его акции в кругу хакеров.
Поверхностное прочтение книги Стивена Леви может привести к неправильному представлению, будто речь в ней идет в основном о шутках и забавах, на самом деле все в этой книге серьезно, а игра – это просто стиль хакеров. Главным их двигателем всегда было любопытство. В случае с изображением окружности на дисплее речь могла идти всего лишь о побочном эффекте математической программы по построению сплайнов (гибких лекал), но в другом случае, там, где Марвин Минский говорит об усовершенствовании программы движения трех точек на экране, речь, несомненно, идет о вполне реальной небесной механике – моделировании задачи трех тел. При этом на дисплее появлялись картинки, напоминавшие розу с тысячей лепестков. Сразу чувствовалась хакерская атмосфера, в которой откровенно шутливое легко перемешивалось с глубоко серьезным.
«В начале шестидесятых Марвин Минский начал организацию того, что в дальнейшем превратилось в первую в мире лабораторию, напрямую занимавшуюся искусственным интеллектом. В качестве рабочей силы ему понадобились гении программирования, не случайно он принимал хакерство в любом его виде»[45].
Мир не стоит на месте, мир постоянно меняется.
В Америке люди легко оставляют насиженные места.
В 1962 году Джон Маккарти перебрался из Массачусетского технологического института в Стэнфорд и организовал там Лабораторию искусственного интеллекта (SAIL – Stanford AI Laboratory), аналогичную той, которую возглавлял в Массачусетсе Марвин Минский. Распространению хакерства способствовало теперь появление на рынке высоких технологий новых интерактивных машин, таких как PDP-10 и SDS/XDS-940. Конечно, их количество в 1960-е годы невозможно сравнивать с количеством персональных компьютеров, появившихся в более поздние времена (например, PDP-6 тогда было выпущено всего 23 штуки), зато каждая университетская лаборатория или фирма, где устанавливались такие машины, сразу становилась центром притяжения для многих талантов. В то же время хакеры-ветераны постепенно покидали Массачусетский технологический институт и перебирались в другие места, разнося по всей стране свою культуру. Новые центры хакерства появлялись повсюду. На Западном побережье – Стэнфорд, Беркли, в центре – университет Карнеги-Меллон вблизи Питсбурга, наконец, Чикаго.
«Иногда хакеры уходили не в институты, а в коммерческие фирмы. Программист по имени Майк Левитт основал в Сан-Франциско фирму по развитию передовых технологий под названием “Systems Concepts”»[46].
Многие хакеры с Восточного побережья в дальнейшем переехали на Западное, где перспективы бизнеса выглядели более радужными.
Не всё, конечно, шло гладко.
«Иногда хакеры (такова реальность) отставали от новостей в своем деле и сами непроизвольно становились якорями, замедлявшими текущую работу, – не без юмора писал Эдвард Фредкин (род. 1934), профессор информатики, заместитель Марвина Минского. – Понятно, лаборатория старалась от таких работников освободиться. Иногда для них организовывали специальные командировки, обычно в достаточно отдаленные места. Ничего случайного в этом не было. Все это организовывал я сам»[47].
3
1960–1970-е годы в США были бурным временем.
Многое менялось, и менялось бесповоротно. Как пел Боб Дилан, любимый бард Стивена Джобса:
Эй, собирайтесь, люди,
Сюда, где бы вы ни бродили,
Ведь вода поднялась,
И никто от нее не уйдет.
Эти воды всех нас
До мозга костей промочили.
Выбор прост – кто не хочет спасаться,
тонет,
А кто хочет спасаться – плывет,
Ибо время пришло перемен…[48]
Каждый год приносил что-то новое, прежде казавшееся немыслимым.