Джимми Мехер - Археолог цифрового века – Том 1. 1966-1979
- Название:Археолог цифрового века – Том 1. 1966-1979
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:2021
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джимми Мехер - Археолог цифрового века – Том 1. 1966-1979 краткое содержание
Археолог цифрового века – Том 1. 1966-1979 - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Adventureбыла написана под операционной системой TOPS-10 для мини-компьютеров DEC PDP-10. Как уже упоминалось, ЭВМ производства DEC пользовались у хакеров безоговорочной любовью, которая длилась по меньшей мере лет двадцать – с 1960 по 1980 годы. Во-первых, компания-производитель постоянно стремилась к инновациям, причем не только в производимой технике. Во-вторых, сами машины были достаточно мощными, чтобы решать серьезные задачи, но вместе с тем достаточно компактными, чтобы их можно было без особого труда перемещать. Но главное даже не это, а другое: DEC не просто понимала потребности хакеров, а разделяла их. Для нее передовые исследовательские учреждения вроде МТИ и Стэнфорда служили полигонами для разработки и обкатки нового программного и аппаратного обеспечения. Наиболее перспективных хакеров DEC даже время от времени приглашала к себе в штат. Трудно представить более разительный контраст со снисходительным и закоснелым гигантом под названием IBM. Операционная система TOPS-10, разработанная DEC, пользовалась точно такой же огромной любовью, и ее развитие с конца 60-х до середины 70-х годов велось при активном участии хакерского сообщества. TOPS-10 сохраняла свои позиции главной хакерской ОС вплоть до 1977 года, когда начался плавный переход на Unix и TOPS-20, духовную наследницу от все тех же разработчиков из DEC.
Исходный код Adventureбыл написан на языке Fortran 42 42 https://ru.bmstu.wiki/Fortran
(FORmula TRANslating system, т.е. «система перевода формул»), которому на тот момент уже исполнилось два десятилетия. Это был первый высокоуровневый язык программирования, получивший широкое распространение; его разработали в конце 50-х годов в недрах компании IBM для своих же мейнфреймов. Краузер и Вудс программировали на стандарте Fortran IV, который появился в 1965 году. Как бы хакеры ни плевались от BASIC, Fortran, сказать по правде, был не сильно лучше: в нем тоже приходилось вручную нумеровать строки, а также обильно пользоваться вставными структурами с оператором GOTO, без которых ничего не работало. Более не подходящий для текстовых приключений язык отыскать трудно – еще и потому, что Fortran не поддерживал строковые переменные. Именно поэтому Краузер вынес весь игровой текст в отдельный файл: с ним так было удобнее работать. По иронии судьбы, в том же году, когда Вудс завершил работу над Adventure, появился Fortran 77 – крупное расширение, которое, помимо прочего, давало возможность манипулировать полноценными строковыми переменными. Увы, переносить проект на этот стандарт было уже поздно.
Но почему именно Fortran? Дело в том, что выбор языков, поддерживаемых TOPS-10, был невелик. В число альтернатив Fortran входил язык ассемблера (но писать на нем игру вроде Adventure– еще большее мучение), а также ненавистный всем BASIC и, наверное, еще более ненавистный COBOL 43 43 https://ru.bmstu.wiki/COBOL_(COmmon_Business_Oriented_Language)
(COmmon Business Oriented Language, «обобщенный язык для применения в сфере бизнеса») – страшно негибкий язык, разработанный исключительно для неинтерактивной работы со структурами данных, т.е. рутинных расчетов и бизнес-вычислений, которые казались хакерам невыносимо скучными. Известный нам Эдсгер Дейкстра, желая, видимо, продемонстрировать, что сарказм не всегда идет рука об руку с изобретательностью, отзывался о COBOL примерно в том же духе, что и о BASIC: «Программирование на Коболе калечит мозг, поэтому обучение ему должно трактоваться как преступление». Собственно, методом исключения выбор и пал на Fortran.
Однако несмотря на то, что Краузер с Вудсом писали на одном и том же языке, подходы к оформлению кода у них коренным образом различались. Оригинальный исходный код, написанный Краузером, представляет собой весьма суровый образчик спагетти-кода и практически лишен комментариев, то есть сам по себе все равно что «лабиринт из маленьких запутанных переходов». Да, он, несомненно, лаконичен и прекрасно оптимизирован, но едва ли кто-то, кроме самого Краузера, был в состоянии его поддерживать или хотя бы прочесть. Окончательная версия Вудса, напротив, —образец чистоты и ясности: множество развернутых комментариев, а структура прозрачная и логичная – насколько, конечно, позволяет ограниченный инструментарий Fortran IV. Впрочем, даже невзирая на эти ограничения, читать код Вудса – одно удовольствие. Именно этим, я думаю, и объясняется, каким образом Adventureвпоследствии столь быстро портировали на множество других языков и платформ: код Вудса позволял делать это чуть ли не с закрытыми глазами.
Сравнивать черновую заготовку с законченной версией, конечно, нечестно. Едва ли программа Вудса была такой читаемой с самого начала; ее шлифовкой явно занимались вплоть до самого релиза. Однако определенные выводы сделать все-таки можно. Во-первых, код явно демонстрирует различие в темпераменте: Краузер, хоть и признанный гений программирования, был скорее одиночкой, и потому явно не стремился комментировать свои решения и делать код понятным для последователей. Во-вторых, как уже упоминалось выше, Краузер с Вудсом принадлежали к разным поколениям хакеров. Краузер начал работать в 60-е годы, когда никаких законов «правильного» программирования не было и в помине; главное – добиться результата любым способом, который позволяло хилое «железо» тех лет. Вудс же сложился как хакер уже в 70-е годы, когда структурированность, прозрачность, читаемость и удобство сопровождения кода уже выходили на первый план и когда программисты сформулировали основные правила, которых мы – с некоторыми добавлениями и уточнениями – придерживаемся до сих пор.
В следующей главе мы поговорим о том, чем отличалась законченная версия Adventureс точки зрения геймплея.
12. Дон Вудс продолжает «Приключение», часть 2
Изначальный текст Adventureпочти не претерпел изменений; Вудс лишь расширил его, немного переписав лаконичные инструкции, вызываемые по команде «ПОМОЩЬ», и добавив в игровой мир новые локации. Разница в стиле программирования на литературной составляющей не сказывается: Вудс умело подражает лаконичной, но при этом убедительной прозе Краузера. Понять, где заканчивается оригинальная версия и начинаются доделки Вудса, практически невозможно, точно так же как невозможно догадаться, что всю вторую половину игры сочинил совершенно другой человек.
Если действительно задаться целью выискивать различия, то можно отметить, что Вудс позволял себе включать в игру больше фантастических элементов и анахронизмов, а также не стеснялся время от времени ввернуть что-нибудь зрелищное. Хороший пример анахронизма – автомат, в котором продаются запасные батарейки для лампы. У Краузера лампа работала неограниченно долгое время – и логично, думал я, ведь профессиональный спелеолог и в симуляции прописал бы карбидную лампу, но никак не электрическую. Увы, эта гипотеза оказалась несостоятельной, так как даже в оригинальной версии на команду «ПОТЕРЕТЬ ЛАМПУ» следовал ответ: «ТЫ ТРЕШЬ ЭЛЕКТРИЧЕСКУЮ
Читать дальшеИнтервал:
Закладка: