Нил Стивенсон - В начале была командная строка
Поступив в колледж, я делал свои расчеты в больших, просто подавляющих помещениях, где десятки студентов сидели перед немного улучшенными версиями тех же самых машин и писали компьютерные программы: эти машины использовали растровый печатающий механизм, но были (с компьютерной точки зрения) идентичны старым телетайпам. В это время, компьютеры стали лучше справляться с разделением времени — это значит, мэйнфреймы остались мэйнфреймами, но они стали лучше общаться со множеством терминалов сразу. Следовательно, больше не было нужды, использовать пакетную обработку. Считыватели карт были выставлены в прихожие и кочегарки, и пакетная обработка осталась известной только яйцеголовым умникам, и следовательно приобрела определенный вкус старины, даже для тех из нас, кто знал, что она вообще существовала. Все мы были теперь не в Пакетном интерфейсе, а в Командной Строке — мой самый первый сдвиг в сторону парадигм операционной системы, если только я вообще что-нибудь понимаю.
Огромная стопка уложенной в гармошку бумаги на полу под каждым из этих прославленных телетайпов, и мили бумаги продергиваются через их валики. Почти вся эта бумага выбрасывалась или перерабатывалась, никогда не соприкасаясь с чернилами — это экологическое зверство было так вопиюще, что те машины вскоре заменили видеотерминалами — так называемые «стеклянные телетайпы», которые были тише и не тратили бумагу. Хотя, с компьютерной точки зрения, они были, неотличимы от телетайпных машин Второй Мировой Войны. Фактически, мы все еще использовали Виктрианскую технологию, чтобы общаться с компьютерами, вплоть до 1984 года, когда появились компьютеры Macintosh со своим Графическим Интерфейсом Пользователя. Даже после это, Командная Строка продолжила существовать как нижележащий слой — своего рода нижнемозговой рефлекс (brainstem — нижний мозг, прим. перев.) — многих современных компьютерных систем на всем протяжении расцвета Графических Интерфейсов Пользователя, или ГИПов (по аналогии с авторским GUIs, сокр. от Graphical User's Inteface — прим. перев.) как я буду их называть их с этих пор.
Графические интерфейсы пользователя
Сейчас первое, что любому кодеру нужно делать при написании новой части программного обеспечения, сообразить, с какого боку взяться за информацию, которая обрабатывается (в графической программе — изображение; в электронной таблице — колонки чисел) и превратить это в линейную строку байтов (байт — восьмибитная последовательность, когда Интернет был игрушкой агентства DARPA, их еще называли «восьмерками», то есть октетами — прим. перев.). Эти строки байтов обычно называются файлами или (отчасти более точно) потоками. Они подобны телеграммам, как современные люди — кроманьонскому человеку, то есть та же вещь, под другим именем. Все, что вы видите на экране вашего компьютера — ваша «Расхитительница Гробниц», ваши оцифрованные сообщения голосовой почты, факсы, и документы обработанные текстпроцессором, оформленные тридцатью семью разными шрифтами — все это, с компьютерной точки зрения, как обычные телеграммы, только значительно более длинные, и требующие больших вычислений. 3.02
Самый быстрый способ, попробовать это на вкус — запустить ваш сетевой браузер, залезть на сайт, и затем выбрать пункт меню «Вид/ Исходник Документа». Вы получите горстку машинного кода, которая выглядит приблизительно так:
<html>
<head>
<title>Shift Online</title>
<meta name="DESCRIPTION"
content="This is Shift Online,….">
<meta name="KEYWORDS"
content="Shift Online's homepage, homepage of Shift Online, Shift Magazine, Shift TV, Behaviour, Behaviour, Shift Online, Shift Magazine, …">
</head>
<frameset rows="80" frameborder="0" framespacing="0"
border="0">
<frame name="top" src="../html/core_top.html" noresize
scrolling="no" marginwidth="0" marginheight="0"
frameborder="0" framespacing="0">
<frame name="bottom" src="core_java.html" noresize
scrolling="yes" marginwidth="0" marginheight="0"
frameborder="0" framespacing="0">
</frameset>
Эта хрень называется HTML (Язык Гипертекстовой Разметки) и это в общем очень простой язык программирования, указывающий вашему сетевому браузеру как отображать страницу на экране. Каждый может изучить HTML, что многие люди и делают. Главный прикол в том, что независимо от того, какие великолепные мультимедийные вебстраницы они могут забацать, HTML файлы это всего лишь телеграммамы.
Когда Рональд Рэйган был радиодиктором, он обычно рассказывал о бейсбольных матчах, читая краткие описания, которые перетекали по телеграфным проводам и распечатывались на бумажную перфоленту. Он сидел там, заполняя собой комнату с микрофоном, и бумажная перфолента вылезала из машины и ползла по его ладони, напечатанная загадочными сокращениями. Если счет был «три-два», Рэйган описывал изображение, как оно виделось его мысленному взору: «Мускулистый левша выходит из зоны отбивающего, чтобы стереть пот со лба. Ампир выходит вперед, чтоб смести грязь со своего поля…» — И так далее. Когда шифрованный документ на бумажной перфоленте объявлял бэйс-хит, он должен был стукнуть по краю таблицы карандашом, создав небольшой шумовой эффект, и описывать дугу шара как если бы, он мог ее действительно видеть. Его слушатели, многие из которых возможно думали, что Рэйган действительно был в боллпарке, наблюдая игру, могли умозрительно представить сцену, согласно его описаниям.
Это ровно то же самое, как работает Всемирная Паутина (русский вариант расшифровки WWW — прим. перев.): HTML файлы что-то типа описания на бумажной перфоленте, а ваш сетевой браузер — Рональд Рэйган. Тот же самое в общих чертах справедливо для Графических Интерфейсов Пользователя.
То есть, ОС — это куча метафор и абстракций, которые находятся между вами и телеграммами, и воплощают различные трюки, какие программист использовал, для перевода информации, с которой вы работаете, — будь то изображения, сообщения электронной почты, фильмы или обработка текстовых документов — в ожерелья байтов, с которыми компьютер только и умеет обращаться. Когда мы использовали по сути телеграфное оборудование (телетайпы) или их высокотехнологичные аналоги («стеклянные телетайпы,» или командная строка MS-DOS), чтобы работать с нашими компьютерами, мы были очень близки к подножию этой кучи. Когда мы используем наиболее современные операционные системы, все равно, наше взаимодействие с машиной сильно опосредованно. Все, что мы делаем, интерпретируется и переводится раз за разом, на своем пути вниз, сквозь все метафоры и абстракции.
ОС компьютеров Macintosh была революционной в хороших и плохих смыслах этого слова. Очевидно, что интерфейсы командной строки были не для всех (в смысле, простоты освоения — прим. перев.), и, что было бы неплохо, сделать компьютеры более доступными для гуманитариев и «лириков» — если не по альтруистическим причинам, то поскольку те люди в своем роде составили несравненно более обширный рынок. Все было ясно, инженеры Mac видeли целую новую страну, лежащую перед ними; можно было почти услышать их бормотание: «Уау! На фиг файлы как линейные потоки байтов, вив ля революцьен! Ну-ка глянем, как далеко это может зайти!» Никакого интерфейса команднной строки на Macintosh не было; вы говорили с ним посредством мыши, или не говорили вообще. Это была расстановка акцентов, верительная грамота революционной чистоты. Казалось, что разработчики Mac решили спихнуть Интерфейс Командной Строки на свалку истории.
Моя персональная любвь с «Макинтошем» закрутилась весной 1984-го в магазине компьютеров на Кедровых Порогах в Айове, мой друг — случайно, как раз сын владельца эМ-Джи-Би — показал мне «Макинтош», выполняющий «МакПайнт», революционную графическую программу. И закончилось оно в Июле 1995-го, когда я попытался сохранить большой важный файл в моем Macintosh Powerbook, и вместо этого, он уничтожил данные так тщательно, что две разных аварийных дисковых утилиты оказались не в состоянии найти хоть какой-то признак, что файл когда-либо существовал. В течение десяти лет, у меня была страсть к MacOS, которая казалась правильной и разумной в то время, но в ретроспективе плющит меня не меньше клоунада, которую папик моего кореша поимел со своей тачкой.
Появление Mac вызвало своего рода священную войну в компьютерном мире. Появились ГИПы — что это? Блестящее новшество разработки, которое сделало компьютеры более человеко-ориентированными и следовательно доступными для масс, ведя нас к беспрецедентной революции в человеческом обществе, или оскорбительный кусок аудиовизуального фуфла, придуманный трехнутыми хакерскими типчиками из Бэй Эриа, что лишили компьютеры их мощности и гибкости и превратили благородную и серьезную работу вычислений в детскую видео игру?
Эта дискуссия действительно кажется более интересной мне сегодня, чем она была в середине 1980-х. Но люди более или менее прекратили обсуждать это, когда Microsoft закрепила идею ГИПов первыми «Форточками». На этом этапе, сторонники командной строки приобрели статус глупых старых ворчунов, и новая буза началась между пользователями MacOS и Windows.