Весь Нил Стивенсон в одном томе. Компиляция
Шрифт:
Предполагаемый покупатель универсала: Конечно, в ваших словах есть доля истины, но, хм…. Я ведь понятия не имею, как управляться с танком!
Мегафон: Можно подумать, вы знаете, как управляться с универсалом!
Покупатель: Но у продавца универсалов есть механики. Если что-то сломается, я возьму отгул на работе, привезу им универсал, заплачу за работу и подожду в приёмной пару — тройку часов под звуки какой-нибудь ненавязчивой музыки.
Мегафон: Но если вы купите танк, наши волонтёры придут к вам домой, пока вы спите, и всё починят!
Покупатель: Да я их на порог не пущу, идиот несчастный!
Мегафон: Но…
Покупатель: Не видишь, что ли, все покупают универсалы!
Норовистый бит
Вряд ли я усмотрел бы связь между автомобилями и компьютерами, если бы меня в своё время не взяли прокатиться на старой спортивной развалюхе. Тогда я только — только записался на компьютерный курс
Чтобы соединить этот прибор (который вовсе не был компьютером) с «Мэйнфреймом» — головной вычислительной машиной государственного университета Айовы, находящемся на другом конце города, вы снимали телефонную трубку, набирали номер компьютера, слушали странные шумы и помехи, затем смачно опускали трубку на резиновые чашечки. Если вы не промахивались, одна каучуковая манжета обхватывала мембрану микрофона, вторая — громкоговорителя. Такой вот изощрённый секс информационных технологий, поза 69. Телетайп трясся, словно удалённый «Мэйнфрейм» заразил его пляской святого Витта, и выстукивал шифрованные послания.
Так как компьютерного времени было в обрез, мы использовали некое подобие пакетной обработки данных. Перед тем, как набрать номер, мы включали ленточный перфоратор (вспомогательный аппарат, прикрученный к стенке телетайпа) и печатали программы. Каждый раз, когда мы нажимали клавишу на клавиатуре, телетайп со стуком пробивал на бумаге набранную нами букву, и мы видели, что печатали. В то же время он преобразовывал эту букву в набор из восьми двоичных символов, битов, и штамповал на перфоленте соответствующее количество дырок. Бумажные кружочки, выбитые из продырявленной ленты, плавно опускались в пластиковый лоток, который медленно заполнялся настоящими, истинными битами. В последний день нашего пребывания в школе, самый одарённый парень класса (не я), возможно, в шутку, возможно, от переизбытка чувств, выпрыгнул из-за парты и вывалил на голову преподавателя мусорную корзинку этих битов. Это единственное воспоминание о школе, которое я никогда не забуду, — замерший в оцепенении учитель, багровеющий от сдерживаемой ярости, и миллионы битов (мегабайты) [614] , осыпавшие его с головы до ног.
614
Так у автора (примечание переводчика).
Одним словом, моё взаимодействие с компьютером носило строго организованный характер и имело четкое разделение на несколько стадий, а именно: 1) сидя дома перед листом бумаги с карандашом в руках, в нескольких милях от ближайшего компьютера, я усиленно думал, что же я хочу от компьютера и как перевести мои желания на понятный компьютеру язык — буквенно — цифровую последовательность; 2) я нёс этот лист бумаги через, так сказать, информационно — санитарный кордон (три мили пешком через снежные завалы) в школу и заносил последовательность в некое устройство (не компьютер), которое преобразовывало символы в двоичные числа и наносила их видимое обличье на перфоленту; 3) затем, при помощи модема с резиновыми чашечками, я пересылал эти числа университетскому «Мэйнфрейму», который 4) производил с ними арифметические действия и отправлял обратно на телетайп результаты вычислений (другие двоичные числа); 5) телетайп трансформировал их обратно в буквы и со стуком распечатывал на странице; 6) я, пристально в вглядываясь в набор букв, истолковывал их как значимые символы.
Разделение обязанностей вышеописанного процесса ясно как божий день: компьютеры производят арифметические действия над битами. Люди истолковывают биты как значимые символы. Однако сейчас, с выходом в свет новейших операционных систем, которые, ради доступности широким массам пользователей, употребляют, а чаще — злоупотребляют силой метафоры, всё стало несколько более запутанным и сложным. Вдобавок — возможно, потому что из-за метафор операционные системы воспринимаются, как некая разновидность магии и искусства, — люди начинают эмоционально привязываться (как когда-то отец моего друга привязался к спортивной машине) и становиться зависимыми от этих частей программного обеспечения.
Людей, взаимодействующих с компьютерами посредством графического пользовательского интерфейса MacOS или Windows (то есть почти каждого первого), наверное, смутят и обескуражат описания телетайпа, который я использовал в 1973 году для связи с компьютером. Но каждой технологии — свой срок.
Люди могут общаться друг с другом разными способами — с помощью музыки, искусства, танца, мимики, жестов. Какие-то из данных способов общения проще представить в виде сроки символов, какие-то сложнее. Не составит труда переложить на машинный язык письменную речь, так как письмо само по себе не что иное, как строка символов. Если символьные знаки принадлежат фонетическому алфавиту (а не идеографическому письму), то преобразовать их в биты не составит никакого труда, что и доказывают появившиеся в начале девятнадцатого столетия азбука Морзе и различные виды телеграфа.Человеко — компьютерное взаимодействие возникло несколько сот лет тому назад, задолго до появления самого компьютера. Когда, приблизительно во время Второй мировой войны, появились первые ЭВМ, люди (что вполне естественно) общались с ними посредством привычных, уже известных им устройств, переводящих буквы в биты и наоборот, то есть с телетайпами и перфораторами.
Эти устройства олицетворяли собой два принципиально разных подхода к обработке данных. Работая с перфоратором, вам приходилось пробивать целую стопку карт и прогонять их всем скопом через устройство ввода. Это называлось пакетной обработкой. То же самое можно было сделать и на телетайпе с помощью устройства ввода с перфоленты, и именно такой способ работы и поощрялся нашими школьными учителями. Однако, как бы они не старались держать нас в неведении, телетайп позволял делать и нечто большее, то, что перфоратору было не под силу. Подключив модем и установив канал связи, в телетайпе можно было набрать строку и нажать клавишу «Enter». Телетайп отправлял строку компьютеру, тот в ответ присылал (или не присылал) несколько своих строк, которые телетайп не спеша выстукивал на ленте, предоставляя расшифровку вашей переписки с машинами. Поначалу данный способ общения не имел даже названия, лишь годы и годы спустя, когда ему на смену пришли более современные средства обмена информацией, задним числом его нарекли интерфейсом командной строки (Command Line Interface).
В колледже, куда я поступил, в огромных, давящих объемами комнатах размещались чуть более усовершенствованные типы всё тех же приёмо — передающих аппаратов, перед которыми сидели десятки студентов и писали программы. И хотя эти устройства работали по типу матричного принтера, с программистской точки зрения, они ничем не отличались от старых добрых телетайпов. Кроме одного — в режиме разделения времени эти компьютеры работали на порядок лучше. То есть «Мйэнфреймы» оставались «Мэйнфреймами», но одновременно они уже могли общаться с довольно внушительным количеством терминалов. Ненужные более перфокарты заполнили коридоры и подсобки, а пакетной обработкой данных теперь пользовалась крошечная группа полностью свихнувшихся энтузиастов, и в конце концов от неё остались лишь овеянные зловещей тенью воспоминания. Мы же сбросили оковы пакетной обработки и вверили себя интерфейсу командной строки, даже не подозревая, что тем самым сделали первый шаг по направлению к парадигме операционных систем.
Груды смятой гармошкой бумаги устилали пол под хвалеными телетайпами, неисчислимые рулоны бумаги наматывались на валики. Почти вся бумага — чистая, нетронутая пером безжалостно выбрасывалась или пополняла кипы макулатуры. Подобное невиданное варварство подняло волну возмущении в среде экологов, и вскоре телетайпы заменили на видеотерминалы или, как их ещё называли, «стеклянные телетайпы» — почти бесшумные, не тратящие почём зря бумагу. Хотя, опять же, с программистской точки зрения, они тоже почти ничем не отличались от телетайпов эпохи Второй мировой войны. Короче говоря, мы общались с компьютерами на древнеанглийском языке вплоть до 1984 года, когда Macintosh явил миру графический пользовательский интерфейс (Graphical User Interface). Но даже во времена расцвета графического пользовательского интерфейса (или ГПИ, как я собираюсь его теперь называть) командная строка продолжала жить глубоко — глубоко в недрах большинства современных компьютерных систем, словно неискореняемый, данный от природы инстинкт. И живёт до сих пор.
ГПИ
Первое, что необходимо понять разработчику нового программного обеспечения — каким образом перевести некое количество информации (пиксели, если он работает над графическим приложением, цифры, если создает электронную таблицу) в линейную последовательность байтов. Обычно такие последовательности называются файлами, но если вы хотите быть «в теме», зовите их «потоками» (streams) [615] . Как человек, по сути своей, всё тот же кроманьонец, так данные последовательности, по сути своей, всё те же телеграммы — та же фигня, только вид сбоку. То, что вы видите на экране монитора — Лара Крофт из «Расхитительницы гробниц», сообщения голосовой почты, факсы, документы, напечатанные с использованием тридцати семи различных шрифтов — просто — напросто телеграммы, только более длинные и требующие более сложных арифметических операций.
615
К сожалению, технология streams, разработанная корпорацией Sun, не получила широкого распространения, и файлы до сих пор называются файлами (примечание технического редактора).