Максим Владимирович Моторный
Исповедь в коде Ascii
В начале было Слово. И Слово было у Бога.
Иоанна 1:1.
Блажен читающий и слушающий слова пророчества сего
и соблюдающие написанное в нем; ибо время близко.
Откровение 1:3.
Все началось в тот самый день, когда я создал виртуальную машину. Когда я ее еще только задумывал, она предназначалась для отладки вирусов. Я хотел создать точный эмулятор РC, но, столкнувшись с рядом чисто технических проблем, я отступил. К тому времени объем кода достиг восьмидесяти тысяч строк, и мне стало жалко бросать разработки. И тогда я решил направить их в другое русло.
В начале было действительно слово. И слово это – Программа. Именно так выглядит заголовок главного исходника на Паскале. А с большой буквы это слово только потому, что это признак хорошего стиля кодирования. Такой же, как функциональная декомпозиция или каскадная структуризация. Все через него начало быть, это истинно как True.
Я отвел под эмуляцию двадцать мегабайт и заполнил среду фракталами. Затем я поместил в нее колонии "Жизни", только с гораздо усложненным алгоритмом. Целыми днями я торчал в музеях с фотоаппаратом, а затем часами возился со сканером, вводя примитивы птиц и зверей. Когда галерея была готова, я принялся внедрять ее в свой мир. Шесть дней я потратил на это, и одержимость Моя достигла того предела, что я сначала отвлекался на работе, а затем и вовсе взял отгул. Ту неделю я почти не спал, оторваться меня заставлял лишь до невозможности перегретый монитор. Уже позже я поставил свой компьютер в серверную стойку, а пока одолжил второй монитор. Я похудел и оброс щетиной (кто знает, не причина ли это, что Бога рисуют с бородой), в комнате воняло потом и нестиранными носками. Размер моего мира пришлось увеличить до ста пятидесяти мегабайт.
Утром на седьмой день я осторожно запустил эмуляцию в пошаговом режиме. К моему огромному удивлению, мир не самоуничтожился и не впал в цикл. Структуры стали развиваться. От основных заложенных мною законов протянулись веточки следствий и начали сплетаться друг с другом. Я сохранил все файлы и, не дождавшись завершения работы Windows, вытянул их сети шнур питания, и заснул, умостив голову прямо на столе, кое-как отпихнув в сторону клавиатуру.
Я не сразу вернулся к нормальной жизни. Первые месяцы я почти безвылазно сидел дома, наблюдая за тем, как совершенствовался мой мир. А он ведь не просто совершенствовался – он самосовершенствовался! Да, мои первоначальные фракталы менялись; графические примитивы, сосканированные с шести стороне обретали пространственные очертания; одни программы рождались, уничтожали других, заимствовали их код и генерировали свой собственный. Те восемьдесят процентов дискового ресурса, которые я отвел для инфоволюции, потихоньку начали заполняться кодом, которого я не писал!
В те дни все было просто или относительно просто. Моделируемое время я пускал не быстрее объективного, а потому мог без проблем разобраться или даже откорректировать автогенерированный код. Я так и делал, направляя инфоволюцию в нужное мне русло. Только объем дискового пространства на моей машине сдерживал меня от эволюций по нескольким направлениям. Для этого бы пришлось целиком скопировать все файлы проекта.
Особенно тщательно я следил за одним существом, которого я назвал Адамом. Оно представляло первоначально собой файл размером в сто семьдесят килобайт, было прорисовано тщательнее других примитивов, обладало особым иммунитетом, который обеспечивали ему семнадцать фаговых систем, начальным уровнем знаний на двести процентов выше стандартного и имело принципиально новый алгоритм поведения. Оно одно за тридцать шесть дней моделируемого времени создало автокода больше, чем любая другая инфосистема. Я был в восторге.
Мое отчуждение от жизни сразу же заметили мои друзья. Заметили и не одобрили. Все они были первоклассными программистами, фанатично любили свою работу, но поголовно считали, что компьютер не может заменить реальной жизни. Но я то знал, что моя моделируемая жизнь не хуже, так называемой, реальной. Однажды они пришли ко мне домой посмотреть, чем я занимаюсь. Я несколько часов потратил на объяснения. Они ушли, сказав, что все это крайне интересно, но не стоит этим забивать себе голову так, чтобы не оставалось времени на другое. Я спросил: "А что другое?" Мне ответили: "Любовь, например".
И тогда я понял, чего не хватало мне в виртуальном мире. Не хватало особого созидательного чувства. Не стимула для созидания, нет. А созидания, как самоцели. Я решил взять за основу самую совершенную форму жизни в моем Эдемском Саду. Как я уже говорил, все тогда поддавалось вычислению. Огрубив мою модель мира и применив к ней алгоритм Адама, я получил, что количество генерируемого им автокода будет расти не беспредельно, а лишь до определенной границы при данной среде. Я получил график кривой и по точке изгиба вычислил необходимое время моделирования. А затем направил все ресурсы моего компьютера на виртуальную модель. Через четыре дня фактического, реального времени инфосистема "Адам" достигла в той среде своей точки Омега. Я остановил эмуляцию.
К тому времени дисковый резерв сократился до тридцати процентов. Четвертая часть автокода и седьмая автографики принадлежала Адаму. Он не только увеличивал свою базу данных и оттачивал свои алгоритмы, он еще и помогал делать это другим, взаимодействуя почти со всеми ему доступными неагрессивными инфосистемами.
Я увеличил дисковое пространство до полугигабайта, избавившись от большей части прикладных программ и от всех игр. Я докупил тридцать два мегабайта памяти и разогнал свой процессор.
Затем я принялся за любовь. Для этого я создал еще одно существо и нарек его Евой. Я извлек весь прогрессивный код Адама, все его ядро (а не только несчастное ребро) и декомпилировал его в Ассемблер. Я программировал Еву три недели, а Адам все это время спал. Я обнаружил, что десять из семнадцати фагов модифицировались, подстроившись под окружающую среду, а пространственные очертания отточились до совершенства сложнейших фрактальных структур. Я удалил семь неизменившихся защитных алгоритмов, добавил тринадцать новых, отредактировал текстуры и вручную отладил поведенческое ядро Евы, направив его по отличной от Адама ветви. Затем я вставил обоим килобайтный код совместимости для сглаживания конфликтов. Адски устав (объем кода и автокода, надо сказать, сильно возрос от начала эмуляции), я запустил имитатор.
Все работало превосходно! Я чуть было не сошел с ума от радости. Тогда у меня и возник проект автопрограммирования в глобальных масштабах. Я видел перед собой язык программирования пятого поколения, то есть систему с неформальным общением и возможностью решать задачи не последовательным перечислением элементарных или макроэлементарных действий, а посредством точного изложения условия задачи. Этот или подобный мир можно настроить таким образом, чтобы он генерировал автокод не спонтанно, а согласно потребностям. Но для этого нужно было проследить весь процесс инфоволюции.
Однако, справедливости ради, стоит заметить, что меня увлекала не столько идея языка программирования пятого поколения, сколько миросоздание в чистом виде без иных мотивов и целей.
Я жил словно в радужном сне, но в то же время чувствовал, что такая идиллия не может продолжаться вечно. И она закончилась в тот день, когда ко мне снова пришли мои друзья. Они отдали мне трехдюймовую дискету и попросили запустить имеющийся на ней файл на моем симуляторе. В качестве эксперимента. Они заверили меня, что ничего плохого не произойдет. Тогда я еще верил своим друзьям.
В моем Эдемском Саду росло дерево – динамическая библиотека, ядро виртуальной машины, тот самый код, который поддерживал функционирование всего мира. Я запретил любой системе заимствовать код ядра во избежание самоосознания, как потенциальной угрозы зацикливания. Еще я опасался, что инфосистема, взявшая код ядра, сама станет строить примитивную виртуальную машину внутри симулятора, что приведет к излишнему расходу ресурсов, затормозит и исказит развитие моего мира в целом.