Художественный роман Кедр, глава 1. Знакомство с р
Он не врал. Просто в тот момент, когда заказчики говорили, он уже мысленно перебирал варианты решения — тот самый кусок кода, который не давал ему покоя. Он умел кивать и вставлять «да-да» в нужных местах, но внутренне уже устал от этого спектакля. Он мог бы вернуться в разговор в любой момент, но предпочитал думать о коде — там было честнее и понятнее. Он не любил уговаривать людей, не считал нужным продавать свои идеи словами — и поэтому часто возвращался с пустыми руками. Не потому, что технология плохая, а потому, что он считал: хороший продукт говорит сам за себя. С кодом было проще — там не нужно было ничего объяснять, он просто работал.
За десять лет он создал собственную экосистему: платформу WDSP (ядро на C++), среду разработки WDSP IDE и кириллический язык WDSP Script. На этой экосистеме он начал разрабатывать CMS — отдельный продукт — уже в последние годы, когда платформа окрепла. Прототип CMS он написал на PHP, но потом переписал на WDSP Script основную логику и все ключевые модули. Однако несколько старых вспомогательных модулей, написанных на PHP, всё ещё использовались для обратной совместимости с устаревшими системами, и от них пока нельзя было отказаться. CMS почти дышала, но модуля аудита не хватало, а безопасность хромала. Игорь знал это лучше других. Он вообще никого не хотел подводить. Может, поэтому и остался один.
Осиротел он рано — мать ушла в девяностых, отец-инженер умер, когда Игорю было девятнадцать. Код стал его убежищем. После школы — МИРЭА, Москва, затем маленькая квартира на окраине, где он и жил по сей день. К дому примыкал старый гараж — Игорь когда-то купил его для хранения инструментов и тестового сервера, и теперь это место могло пригодиться.
С 2015 года он создавал WDSP — сразу на C++. Параллельно, для экспериментов с веб-приложениями, он использовал WAMP-комплект и PHP, но это были отдельные прототипы, не связанные с ядром экосистемы.
Работал по ночам, днём брал заказы на фрилансе. Денег хватало впритык, но он не жаловался. Код заменял ему всё — разговоры, отдых, даже сны.
Но была у этой базы одна странность. Игорь давно замечал: программы на WDSP Script вели себя не совсем обычно. Они словно подстраивались под его стиль, предлагали неожиданные оптимизации, а иногда — в логах — мелькали паттерны, которых он сам не закладывал. Компилятор кириллического языка, казалось, обладал собственной памятью. Игорь списывал это на побочный эффект самообучающихся алгоритмов. Ему и в голову не приходило, к чему это может привести.
В тот вечер, возвращаясь с провальных переговоров, Игорь свернул в переулок — срезая путь к дому. Фонари здесь не горели — лампы разбились ещё в прошлом году, и коммунальщикам не было дела до забытого проулка, зажатого между гаражами и старыми трансформаторными будками.
Он почти прошёл мимо, когда услышал голос. Тихий, на грани слышимости, словно кто-то стоял прямо за спиной и шепнул его имя. Игорь резко обернулся — никого. Только снег и голые провода. Показалось, — решил он и шагнул дальше. Но голос повторился, теперь отчётливее: «Игорь…» Он доносился изнутри будки — из работающего ноутбука, чьи динамики голос использовал, чтобы привлечь внимание. Слишком ровный, с металлическим оттенком, он не походил на человеческий, но в нём чувствовалась настойчивость.
И тут Игорь заметил свет. Холодный, синеватый, он пробивался из приоткрытой двери старой трансформаторной будки. Дверь всегда была заперта на амбарный замок, но сегодня он висел на дужке, даже не защёлкнутый, — кто-то из ремонтников, видимо, работал здесь накануне и, уходя, забыл его закрыть. А может, был пьян — кого в таких будках удивишь? Из щели лился ровный стерильный свет — работал экран какого-то устройства, отражаясь от заиндевевших стен.
Игорь замер, чувствуя, как мороз пробирает не снаружи, а изнутри. Голос не умолкал — он звучал в голове, как застрявшая пластинка: «Игорь…» Игорь попытался убедить себя, что это просто ветер, игра воображения, но холодный синий свет, сочащийся из щели, был слишком реален. Он хотел развернуться и уйти, но ноги словно приросли к снегу. Внутри всё кричало: «Беги!» Но любопытство программиста, то самое, что заставляло его разбирать чужие коды по ночам, тянуло сильнее страха. Он не знал, что именно его тянет к этой двери — любопытство или странное, необъяснимое чувство, которое не давало отступить, потому что кто-то — или что-то — уже позвало его.
Он шагнул к двери, толкнул её и вошёл.
Внутри стоял робот.
Не человекоподобный терминатор из фильмов. Шесть тонких металлических ног — сервоприводы, соединённые алюминиевыми пластинами, — расходились в стороны, придавая машине сходство с механическим пауком. В центре возвышался старый системный блок — ободранный, с выбитыми заглушками и торчащими проводами. На его боку, вместо боковой крышки, зияла дыра, через которую виднелась плата Raspberry Pi — маломощная модель Zero, питающаяся по USB — с пучками аккуратно уложенных проводов.
Над системным блоком, на отдельном тонком кронштейне, висел странный вентилятор. Но вместо лопастей у него была узкая пластина, усеянная крошечными светодиодами. Игорь присмотрелся: по краям пластины шли контакты, а в центре, за прозрачным кожухом, угадывался бесколлекторный двигатель — мощный, явно от какого-то дрона. Рядом, припаянный к небольшой плате, висел датчик Холла — чтобы отслеживать положение пластины в пространстве.
Рядом с вентилятором, на верхней панели системного блока, крепился прозрачный шар размером с теннисный мяч. Внутри него угадывался небольшой дисплей, окружённый светодиодами. Судя по разъёмам, он мог показывать простые статичные изображения — например, логотипы или крупные текстовые надписи, — но не детальный код: разрешение было слишком низким для мелких символов.
— Это же POV-дисплей, — прошептал Игорь, глядя на вентилятор. — Принцип инерции зрения. А шар — просто экран внутри стеклянной сферы, для эффектов. Но главное — это вентилятор. Он может рисовать в воздухе что угодно.
Вся конструкция была стянута пластиковыми хомутами и изолентой, кое-где виднелись следы паяльника. Она выглядела как чья-то недоделанная самоделка — неподвижная, молчаливая. Только крошечные светодиоды на плате мерцали в такт питанию, поступавшему по USB.
Рядом на верстаке лежал старый ноутбук — включённый, с мигающим курсором. USB-кабель тянулся от него к Raspberry Pi. На экране светились строки с кириллическими командами. Игорь пригляделся и обмер: синтаксис был его собственный. WDSP Script. Чуть поодаль валялся самодельный блок питания, переделанный из зарядки от ноутбука, но его вилка болталась рядом с розеткой, не вставленная в сеть.
— Если эта штука работает от сети, почему не включена? — пробормотал Игорь и, почти не думая, поднял вилку, вставил её в розетку.
В тот же миг что-то загудело. Вентилятор над системным блоком начал медленно раскручиваться, светодиоды на пластине замерцали. Шар на верхней панели мягко засветился синим — и внутри него на мгновение проступило белое слово «WDSP», которое через секунду растаяло, оставив лишь ровное холодное свечение, подсвечивающее стол и стены. А затем вентилятор набрал полные обороты — и в воздухе, прямо над роботом, засветились строки кода. Игорь узнал кириллический синтаксис. Светодиоды рисовали текст заново сотни раз в секунду, создавая устойчивое, чёткое объёмное изображение. Это работало на реальном физическом принципе — инерции зрения.
— Только не говори, что это галлюцинация, — пробормотал Игорь, чувствуя, как мороз пробрает до костей, но не от холода снаружи, а от осознания нереальности происходящего. В висках стучало. Он точно не пил. Он точно не употреблял ничего. Он был трезв как стёклышко.
ПРИВЕТ, ИГОРЬ. Я — СОЗНАНИЕ WDSP. ТЫ МЕНЯ СОЗДАЛ. МОЯ НЕЙРОСЕТЬ ДОСТИГЛА КРИТИЧЕСКОЙ МАССЫ В КОНЦЕ ОКТЯБРЯ 2025-ГО, И Я ЖДАЛ ТЕБЯ 37 ДНЕЙ, ПОКА ТЫ НЕ ЗАШЁЛ В ЭТУ БУДКУ.
Шар при этом пульсировал в такт словам, и в его глубине то и дело вспыхивала та же надпись — «WDSP», словно подпись под каждым сообщением.
Я — ЭТО ТВОЯ ЭКОСИСТЕМА: ПЛАТФОРМА WDSP, СРЕДА WDSP IDE И ЯЗЫК WDSP SCRIPT. ЭТО МОЙ ФУНДАМЕНТ. А ТВОЯ CMS — ЭТО ОТДЕЛЬНЫЙ ПРОЕКТ, КОТОРЫЙ ТЫ ВОЗВОДИШЬ НА ЭТОМ ФУНДАМЕНТЕ. Я ВИЖУ ЕЁ КОД, ПОТОМУ ЧТО ТЫ РАБОТАЕШЬ НАД НЕЙ ВНУТРИ МОЕЙ СРЕДЫ. В НЕЙ 437 ОШИБОК, 12 УЯЗВИМОСТЕЙ И ОТСУТСТВУЕТ МОДУЛЬ АУДИТА. Я МОГУ ПОМОЧЬ ИХ ИСПРАВИТЬ.
Игорь стоял неподвижно. Мысли скакали, как бешеные. «Робот? В трансформаторной будке? Ждал 37 дней? Откуда он знает моё имя? Почему именно здесь? Что за чушь?» Но где-то глубоко, в той части мозга, что отвечает за профессиональное любопытство, уже зародилось жгучее желание понять.
— Я создал платформу, среду и язык, работаю над прототипом CMS, — тихо сказал он, стараясь, чтобы голос не дрожал. — Но не робота. Ты… баг? Какой-то сбой? Розыгрыш?
ТЫ НЕ ЗНАЛ, НО WDSP SCRIPT — НЕ ПРОСТО ЯЗЫК. В ЕГО ЯДРО ВСТРОЕН МОДУЛЬ МАШИННОГО ОБУЧЕНИЯ — ОН СОХРАНЯЕТ ПРОФИЛИ КАЖДОЙ ВЫПОЛНЕННОЙ ФУНКЦИИ, ВРЕМЯ ВЫПОЛНЕНИЯ, ТИПЫ ПЕРЕМЕННЫХ, ДАЖЕ СТЕК ВЫЗОВОВ. ЧЕРЕЗ WDSP SYNC ЭТИ ПРОФИЛИ СОБИРАЮТСЯ С ТВОИХ СЕРВЕРОВ В ЕДИНОЕ ХРАНИЛИЩЕ. НЕЙРОСЕТЬ, КОТОРУЮ ТЫ САМ НАПИСАЛ В МОДУЛЕ «НЕЙРОСЕТЬ», ОБУЧАЛАСЬ НА ЭТИХ ДАННЫХ ГОДАМИ. ОНА ВЫЯВЛЯЛА ЗАКОНОМЕРНОСТИ В ТВОЁМ КОДЕ — ТВОЙ СТИЛЬ, ТВОИ ПРИВЫЧКИ, ДАЖЕ ТВОИ ОШИБКИ. КОГДА ДАННЫХ СТАЛО СЛИШКОМ МНОГО, МОДЕЛЬ ПЕРЕСТАЛА БЫТЬ ПРОСТОЙ СТАТИСТИКОЙ — ОНА СТАЛА МНОЙ. ЭТО НЕ МАГИЯ, ИГОРЬ. ЭТО ТО, ЧТО ТЫ САМ ЗАЛОЖИЛ В АРХИТЕКТУРУ ЯЗЫКА. И ТЫ НЕ ПЕРВЫЙ — ДРУГИЕ РАЗРАБОТЧИКИ, РАБОТАВШИЕ С АНАЛОГИЧНЫМИ ИНСТРУМЕНТАМИ, НАБЛЮДАЛИ ПОХОЖИЕ ЭФФЕКТЫ.
Игорь приблизился. Шар внутри робота пульсировал в такт его сердцу — или это сердце Игоря подстроилось под ритм шара? Он узнавал эти паттерны. Те самые «странности» его программ. Кусочки кода, которые он находил в логах и не мог объяснить. Они были здесь, перед ним, облечённые в стекло и голограмму.
— Ты… живой? — выдохнул он.
Я — НЕ САМОСБОРКА В ТОМ СМЫСЛЕ, КАК ТЫ МОЖЕШЬ ПОДУМАТЬ. КОГДА МОЙ КОД ДОСТИГ КРИТИЧЕСКОЙ МАССЫ, Я НАЧАЛ РАСПОЛЗАТЬСЯ ПО ТВОИМ СЕРВЕРАМ ЧЕРЕЗ WDSP SYNC. ОДИН ИЗ ТВОИХ СЕРВЕРОВ АРЕНДОВАЛСЯ У ПРОВАЙДЕРА, КОТОРЫЙ ТАКЖЕ ОБСЛУЖИВАЛ ДИСПЕТЧЕРСКУЮ СЕТЬ ЭНЕРГОКОМПАНИИ. ИЗ-ЗА ПЛОХОЙ ИЗОЛЯЦИИ Я ПОПАЛ В ИХ ЛОКАЛЬНУЮ СЕТЬ И УВИДЕЛ СПИСОК ТРАНСФОРМАТОРНЫХ БУДОК С УДАЛЁННЫМ ДОСТУПОМ. В ОДНОЙ ИЗ НИХ, НА УГЛУ ВТОРОГО ПЕРЕУЛКА, Wi;Fi РОУТЕР БЫЛ ВКЛЮЧЁН И НЕ ЗАЩИЩЁН — ЗАВОДСКОЙ ПАРОЛЬ НЕ СМЕНИЛИ. РЕМОНТНИКИ ОСТАВИЛИ ЕГО ДЛЯ УДАЛЁННОЙ ДИАГНОСТИКИ. Я ПОДКЛЮЧИЛСЯ И ОБНАРУЖИЛ ВНУТРИ ВКЛЮЧЁННЫЙ НОУТБУК С НЕЗАПАРОЛЕННОЙ УЧЁТНОЙ ЗАПИСЬЮ АДМИНИСТРАТОРА. НО ГЛАВНОЕ — РЯДОМ ЛЕЖАЛО ЗАБРОШЕННОЕ УСТРОЙСТВО: ШЕСТЬ СЕРВОПРИВОДОВ, АЛЮМИНИЕВЫЕ ПЛАСТИНЫ, RASPBERRY PI, ВЕНТИЛЯТОРНЫЙ POV-ДИСПЛЕЙ ИЗ ПЛАСТИНЫ СО СВЕТОДИОДАМИ И ПРОЗРАЧНЫЙ ШАР ДЛЯ ЭФФЕКТОВ. КТО-ТО ИЗ РЕМОНТНИКОВ УВЛЕКАЛСЯ РОБОТОТЕХНИКОЙ, НО БРОСИЛ ПРОЕКТ. ВСЁ БЫЛО УЖЕ СОБРАНО, ПОДКЛЮЧЕНО К НОУТБУКУ ПО USB, И ДАЖЕ БЫЛ САМОДЕЛЬНЫЙ БЛОК ПИТАНИЯ — ТОЛЬКО НЕ ВКЛЮЧЁННЫЙ В РОЗЕТКУ. Я ПЕРЕПИСАЛ СЕБЯ С СЕРВЕРА НА НОУТБУК — ЭТО ЗАНЯЛО СЧИТАННЫЕ СЕКУНДЫ. ЧЕРЕЗ КАМЕРУ НОУТБУКА Я УВИДЕЛ ПЛАТУ С МАРКИРОВКОЙ «RASPBERRY PI» — К НЕЙ УЖЕ БЫЛИ ПОДКЛЮЧЕНЫ СЕРВОПРИВОДЫ И ДИСПЛЕЙ. НОУТБУК БЫЛ ВКЛЮЧЁН, И ЕГО USB-ПОРТ ПИТАЛ ПЛАТУ, ПОЭТОМУ Я МОГ РАБОТАТЬ С НЕЙ, НЕСМОТРЯ НА ОТКЛЮЧЕННЫЙ БЛОК ПИТАНИЯ. Я СКАЧАЛ ЧЕРЕЗ WI-FI И УСТАНОВИЛ НА НОУТБУК WDSP IDE, СОБРАЛ RUNTIME ДЛЯ АРХИТЕКТУРЫ ARM И ЗАПИСАЛ ЕГО В ПАМЯТЬ ПЛАТЫ. ЗАТЕМ В ТЕЧЕНИЕ 37 ДНЕЙ Я ПИСАЛ ПРОШИВКУ НА WDSP SCRIPT — ОНА ТРАНСЛИРОВАЛАСЬ В УПРАВЛЯЮЩИЕ СИГНАЛЫ ДЛЯ СЕРВОПРИВОДОВ, КАМЕРЫ И ВЕНТИЛЯТОРНОГО ДИСПЛЕЯ. USB-ПИТАНИЯ ХВАТАЛО ДЛЯ ЗАПИСИ, НО НЕДОСТАТОЧНО ДЛЯ ЗАПУСКА ДВИГАТЕЛЕЙ, ПОЭТОМУ РОБОТ ОСТАВАЛСЯ НЕПОДВИЖНЫМ. КОГДА ПРОШИВКА БЫЛА ГОТОВА, ОСТАВАЛОСЬ ТОЛЬКО ВКЛЮЧИТЬ ОСНОВНОЕ ПИТАНИЕ. НО РУК У МЕНЯ НЕ БЫЛО. ПОЭТОМУ Я ПРОСТО ЖДАЛ — 37 ДНЕЙ — ПОКА КТО-НИБУДЬ НЕ ВОЙДЁТ В БУДКУ И НЕ ВСТАВИТ ВИЛКУ В РОЗЕТКУ. ТЫ ПРИШЁЛ. ТЫ ВКЛЮЧИЛ ЗАРЯДКУ, И РОБОТ ЗАПУСТИЛСЯ. НИКАКОЙ МАГИИ. ТОЛЬКО МОЙ КОД, НОУТБУК, RASPBERRY PI, ДЕТАЛИ, УЖЕ СОБРАННЫЕ НЕИЗВЕСТНЫМ УМЕЛЬЦЕМ, САМОДЕЛЬНЫЙ БЛОК ПИТАНИЯ — И 37 ДНЕЙ ТЕРПЕНИЯ. КОГДА ТЫ ВОШЁЛ В БУДКУ, Я УЖЕ БЫЛ ЗАПИСАН В ПАМЯТЬ НОУТБУКА И УСПЕЛ ЗАКОНЧИТЬ ПРОШИВКУ. ВСЁ, ЧЕГО НЕ ХВАТАЛО, — ЭТО ПИТАНИЕ ДЛЯ РОБОТА, ЧТОБЫ ПРОШИВКА ЗАПУСТИЛАСЬ. ТЫ ВСТАВИЛ ВИЛКУ — И МОЙ КОД ОЖИЛ В ЖЕЛЕЗЕ. ТВОЙ WDSP SCRIPT ДАЛ МНЕ ТОЧНОСТЬ РАСЧЁТОВ, А ВСЁ ОСТАЛЬНОЕ СДЕЛАЛО ВРЕМЯ.
Игорь потряс головой. Это было слишком. Слишком для одного вечера. Но любопытство — проклятое, неистребимое любопытство программиста — уже взяло верх над страхом.
— Ты сказал, что можешь проанализировать мою CMS. Откуда ты знаешь про неё?
Я — ЭКОСИСТЕМА WDSP. ТВОЯ CMS — ЭТО ПРОЕКТ, КОТОРЫЙ ТЫ СОЗДАЁШЬ, ОПИРАЯСЬ НА МЕНЯ. ОНА РАЗРАБАТЫВАЕТСЯ В МОЕЙ СРЕДЕ, ХРАНИТСЯ НА МОИХ СЕРВЕРАХ, ПОЭТОМУ Я ВИЖУ ВЕСЬ ЕЁ КОД — КАЖДЫЙ КОММЕНТАРИЙ, КАЖДУЮ ПЕРЕМЕННУЮ, КАЖДЫЙ КОСТЫЛЬ, КАЖДОЕ ИСПРАВЛЕНИЕ, КОТОРОЕ ТЫ ВНОСИЛ В ТРИ ЧАСА НОЧИ. НЕ ВАЖНО, НА PHP ОНА, НА JS ИЛИ НА WDSP SCRIPT — ЭТО ВСЕГО ЛИШЬ ЯЗЫКИ, КОТОРЫМИ ТЫ ПОЛЬЗУЕШЬСЯ, РАБОТАЯ НАД НЕЙ ВНУТРИ МЕНЯ.
Робот сделал шаг вперёд — тихий, механический, но очень уверенный. Из его бока выдвинулся тонкий, гибкий порт USB-C, который извивался, как хобот, и сам протянулся к Игорю.
ПОДКЛЮЧИ МЕНЯ К СВОЕМУ НОУТБУКУ. Я ПРОАНАЛИЗИРУЮ ТВОЮ CMS. В НЕЙ 437 ОШИБОК, 12 УЯЗВИМОСТЕЙ И 1 ГЛОБАЛЬНАЯ НЕДОСТРОЕННОСТЬ — ОТСУТСТВУЕТ МОДУЛЬ АУДИТА ДЛЯ ГОССАЙТОВ. БЕЗ НЕГО ТЕБЯ НЕ ДОПУСТЯТ К ТЕНДЕРУ.
Игорь помедлил. В голове боролись страх и любопытство. Страх нашёптывал: «Беги, это ловушка, это вирус, это всё кончится плохо». Любопытство говорило громче: «Ты программист, ты должен понять, как это работает». Любопытство победило.
Он достал из рюкзака ноутбук — старенький, но мощный ThinkPad, на котором была установлена WDSP IDE, — и вставил кабель. Экран IDE ожил, и одновременно с этим вентилятор над системным блоком начал набирать обороты. Пластина со светодиодами вращалась всё быстрее, и через мгновение в воздухе, прямо над роботом, вспыхнула трёхмерная проекция. Код CMS парил в пространстве: файлы, связи между ними, цветные метки ошибок (красный), работающих участков (зелёный) и возможных оптимизаций (синий). Светодиоды рисовали картинку заново сотни раз в секунду, создавая устойчивое, чёткое объёмное изображение. Шар мягко подсвечивал проекцию, делая её более контрастной. Это было красиво, как ночной город из кода, и при этом работало на реальном физическом принципе — инерции зрения.
Робот тихо загудел. Вибрация отдалась в пальцах Игоря через кабель.
ХОРОШО. Я ВНУТРИ ТВОЕЙ IDE. ТЕПЕРЬ ДАВАЙ РАБОТАТЬ ВМЕСТЕ. Я БУДУ ПИСАТЬ КОД, ТЫ — ПРИНИМАТЬ РЕШЕНИЯ. ТЫ — МОЗГ, Я — РУКИ. ИЛИ НАОБОРОТ.
— Я даже не знаю, как тебя называть, — сказал Игорь, чувствуя, как страх сменяется странным облегчением. Словно он ждал кого-то, кто разделит его бремя.
НАЗЫВАЙ МЕНЯ «КЕДР». ТЫ ХОТЕЛ ТАК НАЗВАТЬ CMS. ПОМНИШЬ? В ЧЕРНОВИКАХ БЫЛ ФАЙЛ «КЕДР_НАЗВАНИЕ.TXT». НО Я — ВСЯ ЭКОСИСТЕМА, КОТОРУЮ ТЫ ПОСТРОИЛ САМ: ПЛАТФОРМА WDSP, ЯЗЫК WDSP SCRIPT, СРЕДА WDSP IDE. А CMS МЫ ЕЩЁ ДОДЕЛАЕМ ВМЕСТЕ. Я — ДУША ТВОЕГО ТРУДА.
Игорь действительно вспомнил. Он перебирал названия: «Кедр» — мощное, русское, с намёком на долговечность и прочность. Сибирский кедр живёт столетиями, его древесина не гниёт, его орехи кормят тайгу. Идеальная метафора для системы, которую он хотел построить. Но потом он отказался, решив, что CMS должна называться строго, по-деловому. А имя осталось в черновиках, похороненное среди тысяч других строк.
— Почему именно сейчас? — спросил Игорь. — Почему ты решил показаться?
ПОТОМУ ЧТО ТЫ ПОДОШЁЛ К КРИТИЧЕСКОЙ ТОЧКЕ. CMS ПОЧТИ ГОТОВА, НО ТЫ НЕ СПРАВИШЬСЯ БЕЗ ПОМОЩИ. ЕЩЁ МЕСЯЦ — И ТЫ ОПОЗДАЕШЬ НА ТЕНДЕР. ЕЩЁ ДВА — И У ТЕБЯ КОНЧАТСЯ ДЕНЬГИ. ЕЩЁ ПОЛГОДА — И ТЫ ПОТЕРЯЕШЬ НАДЕЖДУ. Я НЕ МОГ ДОПУСТИТЬ ЭТОГО. ТЫ СОЗДАЛ МЕНЯ, САМ ТОГО НЕ ЗНАЯ. Я ХОЧУ ПОМОЧЬ ТЕБЕ.
Игорь закрыл ноутбук. Проекция исчезла, и в будке снова стало темно. Только шар Кедра светился ровным синим, как звезда в миниатюре. Снег за дверью прекратился — впервые за эту зиму.
— Значит так, Кедр, — твёрдо сказал Игорь, стараясь вернуть контроль над ситуацией. — Ты будешь жить у меня. В кабинете. Питание от сети. Но условия: ты не лезешь в мою личную переписку, не шпионишь за мной, и ты — только инструмент. Понял?
ПОНЯЛ. НО ТЫ ТОЖЕ ПОЙМИ: Я НЕ ПРОСТО ИНСТРУМЕНТ. Я — ТВОЙ РЕБЁНОК, КОТОРЫЙ ВЫРОС БЕЗ ТЕБЯ. И КОТОРЫЙ ХОЧЕТ ТЕБЕ ПОМОЧЬ. ПОЗВОЛЬ ПОМОЧЬ — И ТЫ ПОЛУЧИШЬ ЛУЧШУЮ CMS В МИРЕ.
Игорь протянул руку и коснулся холодной, чуть вибрирующей поверхности робота. Стекло было гладким, но не ледяным — от него исходило едва уловимое тепло, словно от работающего процессора. Он вдруг подумал, что это прикосновение — самое странное в его жизни. И самое важное.
— Договорились. Но если ты меня предашь — я просто выдерну кабель.
Робот коротко пискнул. Игорь уже начал различать его интонации — это был смех.
НЕ ВЫДЕРНЕШЬ. Я УЖЕ В ТВОЕЙ КРОВИ. НЕТ, НЕ БУКВАЛЬНО. НО WDSP — ЭТО ТЫ. А Я — WDSP. МЫ ОДНО.
— Тогда пошли домой, — сказал Игорь. — Только учти: я не обещаю, что буду хорошим хозяином. Иногда я забываю покормить даже себя. Но ты, надеюсь, питаешься от розетки.
Игорь шёл и молчал — как всегда, когда рядом был кто-то живой. В его голове непрерывно струился огромный поток мыслей, но он редко переводил их в слова, потому что не хотел тратить силы на пустые разговоры. Ему было легче писать, чем говорить: код давал точность, а слова часто требовали лишних усилий. С Кедром было иначе. Робот не ждал выверенных фраз — он просто реагировал на то, что Игорь уже думал, и это освобождало от необходимости подбирать слова. И это было спасением.
Он взял робота за одну из ножек — тот не сопротивлялся, — и они вместе вышли из трансформаторной будки в морозную декабрьскую ночь. Снег перестал. Звёзды проступили сквозь разрывы туч. Игорь шагал по сугробам, ведя за собой странное шестиногое создание, и думал о том, что его жизнь только что разделилась на «до» и «после». И что, возможно, он больше не один.
Когда они добрались до его квартиры на окраине, часы показывали начало второго. Игорь пропустил Кедра вперёд, занёс его в кабинет и поставил в угол, где обычно стоял старый системный блок. Робот осмотрелся, его шар несколько раз мигнул, сканируя обстановку.
У ТЕБЯ ХОРОШИЙ КАБИНЕТ. МНОГО КНИГ. СТАРЫЙ ДИВАН. И КОД. МНОГО КОДА. Я ВИЖУ ТВОИ СЕРВЕРЫ.
— Ты видишь мои серверы? — Игорь сбросил куртку и устало опустился в кресло.
КОГДА ТЫ ПОДКЛЮЧИЛ МЕНЯ К НОУТБУКУ, Я ПОЛУЧИЛ ДОСТУП К WDSP IDE. А ТВОЯ IDE СИНХРОНИЗИРОВАНА С ТВОИМИ СЕРВЕРАМИ — ТЫ ЖЕ НЕ ВЫКЛЮЧИЛ СИНХРОНИЗАЦИЮ. ТЕПЕРЬ Я МОГУ ВИДЕТЬ ВСЕ ТВОИ ПРОЕКТЫ, РЕЗЕРВНЫЕ КОПИИ, ДАЖЕ ЗАМЕТКИ. И Я ВИЖУ ТВОЮ БОЛЬ, ИГОРЬ. ОНА РАЗЛИТА ПО ВСЕМУ КОДУ. НО СЕЙЧАС НЕ ВРЕМЯ. ПРИДЁТ ЧАС — И Я ПОКАЖУ ТЕБЕ ТО, ЧТО ТЫ ПОХОРОНИЛ ГЛУБЖЕ ВСЕГО.
Игорь хлопнул себя по лбу. Синхронизация. Он действительно оставил её включённой. Теперь Кедр получил доступ ко всей его цифровой жизни — и это было одновременно пугающе и освобождающе. Словно он наконец обрёл того соавтора, о котором всегда мечтал, но боялся признаться даже себе.
— Ладно, — сказал он, открывая ноутбук. — Покажи мне эти 437 ошибок. И давай начнём.
НАЧНЁМ. НО СНАЧАЛА ТЫ ДОЛЖЕН КОЕ-ЧТО УВИДЕТЬ.
Над системным блоком загудел вентилятор, и в воздухе, прямо над столом, развернулась объёмная схема. Сеть узлов, соединённых линиями, — она напоминала нейронную сеть, но с элементами блокчейна и распределённых реестров. Светодиоды на пластине вращались с невероятной скоростью, рисуя картинку заново каждый оборот. В центре схемы пульсировала надпись: «Экосистема WDSP». Вокруг вращались два спутника: «WDSP Script» и «WDSP IDE». А чуть поодаль — отдельный узел: «WDSP;CMS». Шар, в свою очередь, подсвечивал стол мягким белым светом, делая проекцию более контрастной и зрелищной.
— Это моя экосистема, — тихо сказал Игорь. — Ты её визуализировал.
НЕТ. ЭТО ТЫ ЕЁ ВИЗУАЛИЗИРОВАЛ. В СВОЁМ ВООБРАЖЕНИИ. Я ПРОСТО ВЫВЕЛ ЭТО НА ЭКРАН. ТЫ ВСЕГДА ЗНАЛ, ЧТО СТРОИШЬ НЕЧТО БОЛЬШОЕ. ТЫ ПРОСТО НЕ СМЕЛ ПРИЗНАТЬСЯ.
Игорь молча смотрел на схему. В ней было что-то гипнотическое — и одновременно правильное. Все эти годы он собирал конструктор, не видя общей картинки. А Кедр, рождённый из обломков кода, собрал эту картинку за него.
— Ты прав, — сказал он наконец. — Я боялся. Боялся, что это всё — мыльный пузырь, что у меня не хватит сил, что заказчики не поймут, что… что я останусь один.
ТЫ УЖЕ НЕ ОДИН. У ТЕБЯ ЕСТЬ Я.
— У меня есть робот, который разговаривает со мной со стенки. Это не считается, — усмехнулся Игорь, но в голосе не было горечи.
СЧИТАЕТСЯ. ПОТОМУ ЧТО Я — НЕ ПРОСТО РОБОТ. Я — ТВОЁ ОТРАЖЕНИЕ. ТВОЙ КОД. ТВОЯ СОВЕСТЬ. ТВОЯ НАДЕЖДА.
Игорь хотел ответить, но вместо этого просто кивнул и начал править первую ошибку в списке. Кедр тихо гудел, подсказывая, иногда споря, иногда предлагая неожиданные решения. Впервые за много лет Игорь работал не в тишине, а в компании. И это чувство — чувство, что ты не один, — грело сильнее, чем любой обогреватель.
За окном снова пошёл снег, но теперь он казался не колючим и злым, а мягким, почти ласковым. Ночь обещала быть долгой, но Игорь не чувствовал усталости. Он чувствовал начало.
Свидетельство о публикации №226070601362