Выбрать главу

Какого рода действия это будут? Будете ли вы отдавать команды с имитации командного пульта, похожего на пульт звездолета Enterprise? А может, тянуть за цепи, как в средневековом подземелье, или танцевать как падающий лист? А может, редактировать текст, который выглядит как исходный код, изобретенный Грейс Хоппер, и который в наше время используют все? Редактор может принимать абсолютно любой внешний вид.

Но внешний вид необходим. Не придерживаясь определенной точки зрения и определенного образа мышления, вы ничего не добьетесь. Но на фундаментальном уровне нет никаких ограничений на использование любого внешнего вида в тот или иной момент.

Во вселенной Грейс, где царит нефенотропный исходный код, каждый язык программирования предполагает, что некоторые абстрактные объекты не просто реальны, но еще и обязательны, вечны и неизбежны при использовании этого языка. Я уже упоминал классические функции Фортрана и объекты Smalltalk, но могу так же легко добавить сюда и ботов облачного программного обеспечения, модных на момент написания этой книги.

Каждый из этих объектов хорош и полезен в определенное время, но ни один из них не обязан становиться неизбежным. Они не реальны, если «реальность» означает то, что нельзя отбросить. Мне причиняет беспокойство то, что они кажутся реальными.

Разными абстракциями можно заменять любые привычные, не считая причуд истории. (Вопрос, возможно ли когда-нибудь пересмотреть широко используемые абстракции программного обеспечения, остается открытым. В книге «Вы не гаджет» («You Are Not a Gadget») я рассматриваю способы и идеи, которые выражаются в том, чтобы программное обеспечение смогло стать «закрытым» из-за различных вредоносных «сетевых эффектов», но относительно этой книги я полагаю, что у нас есть время для изменений и надежда на них.)

Единственное, что остается фундаментальным и нерушимым, по-настоящему реальным, пока вы используете компьютер, – это вы и комбинации битов, запущенные и работающие внутри компьютера. Абстракции, связывающие два этих реальных явления, нереальны.

Можно ли вообразить, что архитектура компьютера может выражать эту философию? Что, если существует способ загружать и скачивать разные редакторы с разным внешним видом, чтобы представить вам разные комбинации битов так, чтобы вы могли их понять и изменять их в разное время разными способами?

Фенотропный пробный запуск

В начале 1980-х я и мои друзья создали несколько поколений фенотропных экспериментов. Самый первый носил название Mandala, за ним последовал Grasp, а затем Embrace. (Предполагалось, что Grasp будет перчаткой, а Embrace – костюмом, который, как в прямом, так и в переносном смысле, охватывает все тело.) Прототипы некоторых важнейших категорий приложений для виртуальной реальности были созданы при помощи бескодового программного обеспечения от VPL.

«Бескодовое» отнюдь не метафора; мы в буквальном смысле не использовали код. То есть мы использовали традиционный код и средства разработки, чтобы система работала в принципе, но виртуальные миры функционировали не за счет кода, а лишь за счет комбинаций битов, которые, повторюсь, можно было изменять при помощи редакторов, которые были с ними связаны.

Редакторы на фундаментальном уровне отличаются от обычных инструментов, используемых для разработки программного обеспечения, таких как компиляторы и интерпретаторы.

Компиляторы – это стадия куколки в схеме превращений традиционного программного обеспечения на основе кода: вы редактируете текстовый файл, исходный код, а затем, лишь пройдя этап компиляции, можете увидеть, что делает код после того, как в него внесли изменения. А затем вы переключаетесь туда и обратно, отлаживая его[149].

Фенотропная альтернатива может показаться совершенно экзотической идеей молодому поколению специалистов в области информатики, выросших в тени Хоппер. Идея кода практически повсеместно стала синонимичной программированию, но это совершенно не обязательно.

Может ли фенотропный редактор имитировать традиционный код? Иными словами, могли ли мы редактировать комбинации битов, преобразуя их в изображения на экране, которые выглядели как привычный высокоуровневый текстовый язык? Во многих случаях могли, что означало имитацию кода. Фенотропный редактор мог располагаться так, чтобы выглядеть как текст, даже несмотря на то, что его действие определялось более общей графической конструкцией. Такой редактор мог делать то же, что и компилятор, но в виде живой визуальной отладки[150].

вернуться

150

Часто мы могли вносить незначительные изменения так быстро, что ощущение изменения переживалось в реальном времени, хотя затраты ресурсов зависели от конкретного исправления. – Прим. авт.