Книга На заре новой эры. Автобиография отца виртуальной реальности, страница 97. Автор книги Джарон Ланир

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «На заре новой эры. Автобиография отца виртуальной реальности»

Cтраница 97

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

Если оставить в стороне эти гипотезы, то более конкретное, визуальное и мгновенно редактируемое программирование обходилось бы без режимов и лучше подходило бы для виртуальной реальности. Вы получили бы возможность изменять мир, находясь внутри него. А это куда более забавно!

Но то, о чем я только что рассказал, лишь фантазия о том, что могло произойти. Концепция программирования на основе исходного кода взяла верх.

У исходного кода много привлекательных качеств. Можно зафиксировать состояние программы при каждом тестировании, так что, по крайней мере, в теории тестирование может оказаться более тщательным. (На практике устранять неисправности программного обеспечения остается все так же сложно, но это уже другой вопрос. Для тех, кто не знает: термин «баг программы» произошел, когда виновницей сбоя одной из программ, запущенных на одном из первых компьютеров Хоппер, стала моль, которая пробралась внутрь корпуса.)

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

Уловка

Искусственное разделение на программирование и выполнение кода было побочным эффектом самой идеи текстового кода. Оно нехарактерно для программирования.

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

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

Я называю это амбициозное начинание фенотропным программированием, хотя его также называют нейромемитическим или органическим. Термин «фенотропное программирование» предполагает, что поверхности повернуты друг к другу.

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

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

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

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

Редактор и преобразование

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

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

Сейчас любой код, на каком бы то ни было языке программирования, выглядит одинаково. В нем установлены бесконечные повторения «ЕСЛИ, ТО, ПОВТОРИТЬ» и любых других слов и символов.

В фенотропной системе существуют разные алгоритмы взаимодействия с пользователем, а также разные виды программ.

Эти конструкции, которые вы воспринимаете и которыми управляете во время фенотропного программирования, называются редакторами. Редактор может выглядеть как изображения на экране компьютера или как виртуальные объекты в виртуальном мире.

Редактор – это преобразование между средством взаимодействия интерфейса с пользователем и комбинациями битов.

Если вы редактируете биты программы, пока она запущена, это означает, что используемый вами редактор должен быть в состоянии интерпретировать и представлять биты для вас таким образом, чтобы вы могли понять, как их изменить. Должен существовать не один способ это сделать. Разные редакторы должны указывать на одну и ту же комбинацию битов, одну и ту же программу, и разными способами представлять ее программисту.

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

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

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

Вариативность

Это не значит, что абстракции морально устареют.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация