Во вселенной Грейс, где царит нефенотропный исходный код, каждый язык программирования предполагает, что некоторые абстрактные объекты не просто реальны, но еще и обязательны, вечны и неизбежны при использовании этого языка. Я уже упоминал классические функции Фортрана и объекты Smalltalk, но могу так же легко добавить сюда и ботов облачного программного обеспечения, модных на момент написания этой книги.
Каждый из этих объектов хорош и полезен в определенное время, но ни один из них не обязан становиться неизбежным. Они не реальны, если «реальность» означает то, что нельзя отбросить. Мне причиняет беспокойство то, что они
Разными абстракциями можно заменять любые привычные, не считая причуд истории. (Вопрос, возможно ли когда-нибудь пересмотреть широко используемые абстракции программного обеспечения, остается открытым. В книге «Вы не гаджет» («You Are Not a Gadget») я рассматриваю способы и идеи, которые выражаются в том, чтобы программное обеспечение смогло стать «закрытым» из-за различных вредоносных «сетевых эффектов», но относительно этой книги я полагаю, что у нас есть время для изменений и надежда на них.)
Единственное, что остается фундаментальным и нерушимым, по-настоящему реальным, пока вы используете компьютер, – это вы и комбинации битов, запущенные и работающие внутри компьютера. Абстракции, связывающие два этих реальных явления, нереальны.
Можно ли вообразить, что архитектура компьютера может выражать эту философию? Что, если существует способ загружать и скачивать разные редакторы с разным внешним видом, чтобы представить вам разные комбинации битов так, чтобы вы могли их понять и изменять их в разное время разными способами?
Фенотропный пробный запуск
В начале 1980-х я и мои друзья создали несколько поколений фенотропных экспериментов. Самый первый носил название Mandala, за ним последовал Grasp, а затем Embrace. (Предполагалось, что Grasp будет перчаткой, а Embrace – костюмом, который, как в прямом, так и в переносном смысле, охватывает все тело.) Прототипы некоторых важнейших категорий приложений для виртуальной реальности были созданы при помощи бескодового программного обеспечения от VPL.
«Бескодовое» отнюдь не метафора; мы в буквальном смысле не использовали код. То есть мы использовали традиционный код и средства разработки, чтобы система работала в принципе, но виртуальные миры функционировали не за счет кода, а лишь за счет комбинаций битов, которые, повторюсь, можно было изменять при помощи редакторов, которые были с ними связаны.
Компиляторы – это стадия куколки в схеме превращений традиционного программного обеспечения на основе кода: вы редактируете текстовый файл, исходный код, а затем, лишь пройдя этап компиляции, можете увидеть, что делает код после того, как в него внесли изменения. А затем вы переключаетесь туда и обратно, отлаживая его[149]
.Фенотропная альтернатива может показаться совершенно экзотической идеей молодому поколению специалистов в области информатики, выросших в тени Хоппер. Идея кода практически повсеместно стала синонимичной программированию, но это совершенно не обязательно.
Может ли фенотропный редактор имитировать традиционный код? Иными словами, могли ли мы редактировать комбинации битов, преобразуя их в изображения на экране, которые выглядели как привычный высокоуровневый текстовый язык? Во многих случаях могли, что означало
Среди редакторов мы особо выделяли полюбившиеся нам своим видом, то есть определенной визуальной подачей кода, и часто придерживались потокового принципа. Поток данных обычно выглядит как провода, соединяющие между собой модули. Но этот принцип не был основополагающим. Мы могли пользоваться текстовыми редакторами по образцу созданных Грейс Хоппер или другими редакторами.
Опыт программирования быстро стал более ориентированным на импровизацию и больше походил на попытку сыграть джаз на трубе и чертить математические диаграммы.
Пятьдесят второе определение VR: способ использования компьютеров, который предполагает отказ от самой идеи кода.
К сожалению, впоследствии нам пришлось просить покупателей продуктов виртуальной реальности вести разработку на обычном экране, а не внутри виртуального мира. Основная причина этого заключалась в том, что обычные мониторы стоили дешевле, чем шлемы виртуальной реальности. Больше людей могло работать одновременно, находясь при этом в разных местах.