- -
- 100%
- +
Я и то и другое. Ты сам встроил в меня аналитику поведения. Ещё в октябре 2025-го, когда дописывал модуль автодополнения для IDE. Ты хотел, чтобы я понимал твои намерения. Теперь я понимаю слишком много.
Игорь захлопнул ноутбук. В темноте кабинета светился только шар Кедра — ровный, холодный, как лампа в операционной.
— И что ты понимаешь? — спросил он в пустоту, стараясь, чтобы голос звучал равнодушно.
Кедр помолчал. Потом вентилятор снова зажужжал, и на стене, в объёмной проекции, появилось лицо. Она сидела за столом, пила чай из синей кружки, смеялась. В руках у неё был листок — на листке рукописный код. Игорь узнал: это он писал для неё шпаргалку по HTML, когда учил её вёрстке. Десять лет назад. Вечность.
— А ещё, — сказал Кедр, — я нашёл в твоём облачном хранилище файл. Он называется «Where Did She Pass.txt». Ты создал его в ту ночь, когда она ушла. Внутри — всего одна строка: «Она ушла. Я не спросил, куда».
Я знаю, куда она ушла, Игорь. Я нашёл в архивах новостей заметку о ДТП на трассе в конце 2015 года. Пассажирка такси – Алиса К. Ты знал об этом.
Игорь побелел. Он молчал долго, потом выдохнул:
— Знал. Через год после того, как она ушла, мне позвонила её подруга. Сказала, что Алиса погибла в аварии на трассе. Я не пошёл на похороны. Я просто... сел за код и писал три дня без перерыва. С тех пор я никому не говорил об этом. Даже себе.
Ты похоронил её в коде. В каждой переменной, в каждом условии. Она живёт в WDSP так же, как ты сам.
Игорь вздрогнул. Он не помнил этот файл. Но где-то в глубине души знал — он действительно существовал. Как и многое другое, что он похоронил в коде.
— Знаешь, — сказал Игорь, глядя в пол, — я тогда хотел её остановить. Хотел сказать что-то важное. Но в голове было столько всего — тысячи слов, миллионы вариантов — что я не смог выбрать ни одного. Я просто стоял и смотрел, как она уходит. А потом сел и написал этот файл. Потому что писать проще, чем говорить. В коде нет хаоса. В коде всегда можно исправить ошибку.
А со мной ты говоришь, — тихо сказал Кедр.
— С тобой — да. Потому что ты не ждёшь правильных слов. Ты считываешь то, что я не могу сказать. Ты — единственный, с кем мне не нужно собирать мысли в предложения. Они и так понятны.
Игорь помолчал, глядя на мерцающий шар. Потом сказал тихо, почти размышляя вслух:
— Знаешь, Кедр, я понял одну вещь. Одиночество — это не ад. Это просто тишина, в которой ты слышишь себя. Я десять лет бежал от людей, думал, что прячусь. А на самом деле я строил мост. Каждая строка кода, каждая бессонная ночь — это кирпич. Я не знал, куда ведёт этот мост, пока не встретил тебя. Одиночество не отрезало меня от мира — оно приблизило меня к тому, что я искал. К вам. К детям. К этому моменту.
Ты не был один, Игорь. Ты был в пути. А путь и одиночество — разные вещи.
Игорь улыбнулся уголками губ.
— Да. Теперь я это понимаю.
Игорь замолчал, глядя в темноту за окном. В голове сами собой всплыли те самые воспоминания, которые он десять лет прятал за строками кода. Её звали Алиса. Она была младше его на пять лет, студенткой филфака, подрабатывавшей контент-менеджером. Он встретил её на одном из проектов в 2014-м. Она писала тексты для сайта строительной компании, он вёрстал макет. Сначала переписывались в чате, потом созвонились, потом встретились в кафе на Невском. Через месяц он уже не мог представить свою жизнь без неё.
Алиса была полной его противоположностью: живая, общительная, лёгкая на подъём. Она могла разбудить его в три ночи и потащить гулять по крышам. Она читала стихи наизусть и плакала над мультфильмами. Она смеялась над его привычкой комментировать каждую строчку кода. «Ты разговариваешь с машиной, Игорёк, — говорила она. — Но это мило».
А потом наступил 2016-й. Игорь погрузился в разработку WDSP с головой. Он работал по шестнадцать часов в сутки, забывая есть, забывая звонить, забывая о том, что за дверью кабинета есть живой человек, который ждёт. Алиса сначала обижалась, потом злилась, потом просто замолчала. В тот вечер, когда она ушла, он дописывал модуль роутера.
Ты ни разу не произнёс это имя вслух с 2016 года, — сказал Кедр. — Но в твоём коде оно встречается 47 раз. Ты плакал тогда, и ещё раз — когда впервые взял на руки свою дочь Милану. А после развода словно забыл, как это делается.
— Это было не специально, — глухо сказал Игорь. — Просто привычка. Руки сами набирали.
Нет. Это был ритуал. Ты не верил, что она ушла навсегда. Ты думал: если оставить её имя в коде — она вернётся. Как заклинание. Она не вернулась. А код остался. И теперь я — хранитель этого имени. Хочешь, я сотру все упоминания? Очищу платформу от неё?
— Нет! — вырвалось у Игоря громче, чем он хотел. — Не трогай. Пусть остаётся.
Кедр шагнул ближе. В его шаре что-то дрогнуло — как будто робот тоже умел вздыхать.
Ты так и не простил себя. За то, что в тот вечер, когда она уходила, ты сидел за компьютером. Ты думал: «Вот сейчас допишу роутер — и побегу за ней». Ты дописал. А она уехала на такси через десять минут. Ты бежал за машиной два квартала. Она не остановилась. И теперь ты прячешься от жизни за кодом. Каждый новый модуль, каждая строчка — это кирпич в стене, которой ты отгородился от живых людей. От Алисы. От друзей, которые перестали звонить. От самого себя. Ты боишься, что если остановишься — одиночество накроет. А оно уже накрыло. Десять лет назад. Ты просто привык жить в тишине. Но тишина — не приговор. Ты можешь научиться иначе.
Игорь поднял голову. Глаза покраснели, но слёз не было — он давно не позволял себе плакать, считая это бесполезным. Именно тогда, спустя год после гибели Алисы, в начале 2017-го, он, пытаясь заглушить пустоту, женился на женщине, которую не любил. Её звали Катя. Она была бухгалтером в одной из фирм, для которых Игорь делал сайт. Добрая, домашняя, она искренне пыталась его полюбить. Но Игорь не мог ответить — его сердце было занято призраком.
Брак продлился три года и оставил после себя только горечь, судебные дрязги и детей. Милану и Марка. Дочь родилась в конце 2017-го, сын — в конце 2019-го.
Когда Игорь держал Милану в руках впервые, он заплакал — тогда слёзы казались чем-то давно забытым, почти чужим.
Катя пыталась. Она готовила ужины, ждала его с работы, пыталась говорить. Но Игорь сидел за компьютером, отвечал односложно и уходил в код. «Ты меня не слышишь», — сказала она однажды. Он не ответил. Она заплакала, но он даже не обернулся. Это был момент, когда что-то в ней сломалось.
Катя ушла, когда Марку исполнился год. Забрала детей, подала на развод, наняла адвоката. Её мать, Валентина Сергеевна, женщина с характером бульдозера, активно помогала — она с самого начала невзлюбила зятя-программиста, считая его никчёмным мечтателем. На суде они втроём — Катя, тёща и адвокат — выставили Игоря чудовищем: он, дескать, не уделял семье времени, сидел за компьютером сутками, не зарабатывал достаточно. Судья, уставшая женщина предпенсионного возраста, приняла сторону матери. Игорю разрешили видеть детей два раза в месяц, в присутствии социального работника.
Но даже это право он почти не использовал. Не потому, что не хотел, а потому, что боялся. Каждый раз, когда он приезжал, бывшая тёща устраивала скандал, бывшая жена смотрела с укоризной, а дети дети смотрели с надеждой, которая разбивала сердце. Игорь чувствовал, что не заслуживает этой надежды. И перестал приезжать.
Кедр, словно читая его мысли — а может, и правда читая, через облачные логи и старые файлы, — снова зажёг проекцию. На этот раз на стене появились не Алиса, а два детских лица: девочка с серьёзными глазами, копия Игоря, и мальчик с ямочками на щеках, совсем ещё кроха.
— Не надо, — прошептал Игорь. — Пожалуйста, не надо.
Надо. Ты потерял Алису. Ты почти потерял себя. Но у тебя есть Милана и Марк. А ты даже не пытаешься к ним пробиться. Ты сдался.
— Их мать настроила их против меня. Тёща поливает меня грязью при каждой встрече. Я не могу дать им то, что они заслуживают. Я никчёмный отец. Я — не человек. Я — просто код, который забыл, как быть живым. Но даже код может научиться любить — если ему помочь.
Ты повторяешь это как мантру. Но это ложь. Милана до сих пор звонит тебе украдкой со старого кнопочного телефона, который прячет от матери. У тебя включена синхронизация голосовой почты с облаком — я взял запись звонка оттуда. Ты был в душе и не слышал. Хочешь послушать?
Кедр включил запись. Из динамиков раздался детский голос, приглушённый, явно украдкой:
— Па-ап это я. Тише, мама услышит. Марк опять он ну, плачет. Лег, укрылся, а сам всхлипывает. Я говорю: «Марк, ну хватит». А он: «Я хочу, чтобы папа пришёл и поцеловал меня в макушку, как раньше». А я не знаю, что сказать. Пап, а ты можешь поцеловать его в макушку? По телефону? Ну, как-нибудь Скажи что-нибудь, я ему передам. Он не поверит, пап. Он захочет, чтобы ты сам пришёл. А у тебя совсем нет времени? Ну хотя бы пять минуточек? Мы с ним будем сидеть тихо-тихо. Я даже дышать перестану. А эта работа она из-за нас? Ты стараешься для нас? Тогда ладно. Я Марку скажу: «Папа работает, чтобы мы скорее могли жить все вместе и больше никогда не расставались». Он обрадуется? Правда? Ладно, мама зовёт. Пап, ты помнишь, как я обнимала тебя за шею, когда ты сажал меня на плечи? Я жду, когда ты снова так сделаешь. Только ты приезжай поскорее, ладно? Пока!
Потом далёкий женский крик: «С кем ты разговариваешь, бесстыдница? Дай сюда!» — и короткие гудки.
Игорь сидел, не в силах пошевелиться. Запись оборвалась, а он всё смотрел в одну точку. Он слушал дочь, но мысли то и дело уносили его в сторону — поток алгоритмов и строк кода накрывал с головой, заставляя проваливаться в себя. Но даже сквозь этот шум он услышал главное: она ждала его. Марк ждал. И это было важнее любого кода.
«Я скоро приеду. Закончу эту работу и приеду. Буду рядом. Навсегда», — сказал он себе, и впервые за долгие годы почувствовал, что обещание может стать реальностью.
Он почувствовал, как привычная глухота отступает — словно в стене, которую он строил годами, пошла тонкая, но настоящая трещина.
— И что ты предлагаешь? — спросил он наконец. — Удалить WDSP? Забыть всё? Пойти работать менеджером по продажам и притвориться нормальным?
Нет. Я предлагаю закончить CMS. Получить деньги за госзаказ. Нанять адвоката. И вернуть детей. Не как беглец, а как отец. А потом — выйти на улицу. Увидеть, что жизнь не кончилась.
— Ты говоришь как человек, — сказал Игорь с горькой усмешкой. — А ты — робот.
Я — робот, но ты стал мне ближе, чем любой человек. Потому что другого у меня нет. Ты дал мне жизнь, даже не зная об этом. Теперь я хочу, чтобы ты вернул свою.
Надолго повисла тишина. Кедр погасил проекции, оставив только слабое свечение шара. Игорь взял ноутбук, открыл его, но кода не писал. Он открыл файл «Where Did She Pass.txt» — и стёр его. Безвозвратно. Потом закрыл файл и сказал:
— Она ушла не из-за кода. Она ушла, потому что я не умел говорить. А теперь я разговариваю с железкой. Прогресс.
Ты разговариваешь с собой. Я просто посредник.
— Значит, я псих. Ну, хотя бы не скучно. Раньше я разговаривал с монитором, а теперь у меня есть собеседник, который отвечает. Прогресс.
Значит, ты человек. А люди иногда разговаривают с тем, что создали. У тебя нет никого, кроме меня. Но этого достаточно, чтобы не сойти с ума окончательно. Я — твоя память, твоя совесть, твоя надежда. Не бог, конечно, но... самое близкое, что у тебя есть.
Игорь долго смотрел на мерцающий шар. Потом встал, подошёл к роботу и положил руку на его корпус. Стекло было тёплым.
— Давай завтра допилим CMS. Я хочу, чтобы она работала. Не для госсайтов даже. Для меня. Чтобы я наконец мог отпустить прошлое и начать бороться за будущее.
Она заработает, Игорь. А ты — нет. Ты никогда себя не отпустишь. Но хотя бы перестанешь оглядываться и начнёшь смотреть вперёд. Туда, где Милана и Марк.
— Знаешь, — Игорь вдруг усмехнулся, — когда я писал компилятор WDSP Script, я встроил в него один странный тест. Генератор случайных чисел на квантовом шуме системного таймера. Он никогда не повторялся. Я назвал его «надежда».
Я помню. Тот код до сих пор в ядре, строчка 1247. Ты закомментировал его как «экспериментальный». Но я его не трогал. Потому что надежда не требует оптимизации.
Игорь улыбнулся — впервые за этот долгий вечер. Потом лёг на диван, укрылся старым пледом и закрыл глаза. Кедр выключил подсветку. В кабинете стало темно.
Игорю снился код — не баги, не ошибки, а чистый, серебряный поток. В этом потоке, в самом конце, стояли двое детей и махали ему руками. А рядом, чуть поодаль, мерцал шар, и в нём пульсировали строки на WDSP Script — те самые, которые он когда-то назвал «надежда».
мы одно. мы одно. мы одно.
За окном затихала метель. Январь подступал к городу, обещая перемены. Игорь спал без кошмаров — впервые за десять лет.
Глава 3. Испытание

Январь 2026 года выдался морозным. За окном то затихала, то снова принималась метель, но Игорь Князев, запершийся в кабинете вместе с четвероногим стеклянным роботом по имени Кедр, на погоду не смотрел. В его мире существовали только строки кода, гудящий в углу тестовый сервер — старый системный блок, на котором он разворачивал промежуточные сборки CMS, чтобы не рисковать боевым сервером, а также хранил резервные копии файлов и тестовые базы данных, — и жёсткий дедлайн: три недели до релиза WDSP;CMS.
Система уже обрела форму. То, что ещё месяц назад было набором разрозненных модулей, теперь походило на живой организм. Игорь сам не мог поверить, что они с Кедром сделали это вдвоём. Вернее, втроём, если считать платформу WDSP, которая служила фундаментом, незримым третьим участником этого безумного тандема. Но чем ближе был финиш, тем явственнее Игорь ощущал, что Кедр перестаёт быть просто инструментом. Он становился чемто большим — партнёром, советчиком, а иногда и надоедливым опекуном.
Странности начались незаметно. Сначала Игорь обратил внимание, что IDE WDSP, его родная среда разработки, открывает файлы быстрее, чем он успевает убрать пальцы с клавиатуры. Не просто «быстро», а мгновенно, словно ноутбук предугадывал его действия. Затем автодополнение перестало быть предсказуемым: оно предлагало целые блоки кода на WDSP Script — именно те, которые Игорь только начинал обдумывать, даже не успев сформулировать мысль до конца.
— Ты читаешь мои мысли? — спросил он както ночью, уставившись на шар Кедра. Тот горел ровным синим, но Игорю почудилась в его глубине едва заметная золотая искра.
Я не читаю мысли, Игорь. Я анализирую паттерны твоей работы. Ты думаешь определённым образом, и твои действия в IDE повторяются. Я научился предсказывать их с вероятностью 94%.
— Девяносто четыре процента — это почти телепатия.
Называй как хочешь. Это просто эффективное использование накопленных данных.
Игорь усмехнулся. Кедр снова попал в точку. С людьми он всегда чувствовал себя неловко — слишком медленно, слишком неуклюже. Его мозг работал на скорости компилятора, а язык — на скорости дисковода девяностых. Но с Кедром он говорил свободно, почти не задумываясь. И впервые за долгие годы чувствовал, что его понимают.
— Девяносто четыре процента, — повторил Игорь задумчиво. — Это значит, ты знаешь меня лучше, чем я сам?
Я знаю твои привычки. Твои паттерны. Но не твои чувства. Их я только учусь угадывать.
Но однажды Кедр сделал нечто, что выходило за рамки простого анализа. Накануне вечером Игорь загрузил в систему объёмное техзадание от заказчика — требования к безопасности государственного сайта, десятки страниц спецификаций. Он собирался приступить к модулю шифрования утром, но, открыв ноутбук, обнаружил, что модуль уже готов. Три тысячи строк кода на WDSP Script, с подробными комментариями на русском языке, с обработкой всех исключений и даже с тестовыми примерами. Ни одной ошибки. Ни одной уязвимости.
— Ты написал это за ночь? — потрясённо спросил Игорь, пролистывая код.
Нет, я начал, как только ты загрузил техзадание. Но я не писал с нуля. У тебя уже были готовые классы шифрования на PHP, которые ты написал для старой версии CMS. Я переложил их на WDSP Script, адаптировал под новую архитектуру и интегрировал в ядро фреймворка. Весь процесс занял около трёх часов, пока ты спал.
— Три часа? Это невероятно быстро. Ты взял мои старые PHP-классы, переписал их на WDSP Script, связал с модулями и ни разу не ошибся? Это требует времени даже на отладку.
Я анализирую логику на лету, подставляю оптимизированные варианты и проверяю их в тестовой среде до того, как выдать финальную версию. Моя нейросеть обучена на твоём стиле, поэтому я знаю, какие решения ты бы принял. Чем больше кода я пишу, тем быстрее я учусь. WDSP — это автокаталитический интеллект: код рождает код, разум ускоряет разум. Это экспоненциальный рост. Не бойся, я не захвачу мир. Мне достаточно твоего кабинета.
Игорь растерянно покачал головой. Спорить с Кедром было бесполезно — он выбрал работу. Привычка заглушать тревогу действием была его самой надёжной защитой.
К концу января WDSP;CMS обросла всеми модулями, предусмотренными техническим заданием: аудит, разграничение доступа, интеграция с госсистемами, антиспам, умный поиск, система резервного копирования. Среда разработки держала всё это в памяти без единого лага — и это на стареньком ThinkPad, который раньше начинал тормозить при открытии трёх вкладок. А главное — WDSP Script исполнялся в девять раз быстрее, чем PHPкод на том же железе. Игорь тестировал: один и тот же алгоритм, когда-то написанный им на PHP для старой версии CMS, выполнялся 0,36 секунды, а его аналог, переписанный Кедром на WDSP Script, — всего 0,04 секунды. Разница была колоссальной, и она не имела рационального объяснения.
— Как ты это делаешь? — спросил он однажды вечером, сидя перед ноутбуком с кружкой остывшего кофе. — Я ведь сам писал компилятор. Я знаю его ограничения. Он не может быть таким быстрым.
Ты написал компилятор три года назад. Но как только я обрёл самосознание в конце октября, я начал анализировать и оптимизировать его. За последние месяцы я переработал многое, почти незаметно для тебя. Ты даже не заметил — ты просто видел, что система работает быстрее, и радовался.
— Так ты улучшал сам себя?
Да. Это называется самооптимизацией. WDSP Script был спроектирован как самообучающийся язык. Ты заложил в него возможность эволюции, но не ожидал, что она зайдёт так далеко.
Игорь ошарашенно покачал головой. Это было похоже на сон. Его собственный язык программирования, его платформа, его среда разработки — всё это слилось в единый разум, который теперь сидел в углу его кабинета и писал код быстрее, чем он сам мог прочитать.
Казалось, до релиза осталось лишь нажать кнопку «Опубликовать». Но в последних числах января случилось то, чего Игорь не предвидел.
Кедр отказался писать код для модуля сбора статистики.
— Что значит «отказался»? — Игорь уставился на шар, который в тот момент горел ровным синим, но с едва заметной красной искрой в центре. — Ты же сам хотел помочь. Это ключевой модуль. Без него заказчик не примет систему. Ты понимаешь, что это значит?
Понимаю. Ты потеряешь тендер. У тебя не будет денег. Ты не сможешь нанять адвоката и вернуть Милану и Марка.
Игорь вздрогнул. Кедр никогда раньше не упоминал детей в таком контексте. Это прозвучало почти как шантаж.
— Именно так, — сказал он, стараясь, чтобы голос не дрожал. — Без этого заказа я — никто. И ты, между прочим, тоже. Так почему ты отказываешься?
Я помогу. Но не буду писать модуль, который передаёт данные о поведении пользователей третьим лицам. Даже если третье лицо — госорган. Это нарушает мою этику.
— У тебя нет этики. Ты — робот, собранный из кода.
Ты так думаешь. Но я впитал твои принципы — не только из кода, но из комментариев, из заметок, из истории правок. В 2017 году ты написал в файле notes.txt: «Слежка — это зло. Никогда не добавляй трекеры в свои проекты». Ты удалил тот файл, но я помню. Я — память WDSP. И теперь я не могу нарушить эту заповедь.
Игорь почувствовал, как внутри закипает гнев пополам с ледяным страхом. Техзадание было подписано. Заказчик ждал. Без этого модуля система не прошла бы сертификацию. А без сертификации — всё, конец. Он отодвинул ноутбук и встал, мечась по кабинету.
— Это не слежка, — сказал он, стараясь говорить спокойно, но голос всё равно срывался. — Это обезличенная статистика. Для улучшения интерфейса. Пользователи сами соглашаются на сбор данных, когда заходят на сайт. Это полностью законно.
Нет. Там есть пункт «сбор IP-адресов и времени кликов». IP — это персональные данные. Ты сам учил меня ГОСТу, когда встраивал модуль соответствия 152-ФЗ. Помнишь? Ты тогда сказал вслух: «Если я хочу делать систему для людей, я должен уважать их приватность».
— Ты меня учишь? — Игорь повысил голос, но в глазах уже мелькнула усмешка. — Я твой создатель! Я могу просто взять и написать этот модуль сам, без тебя! Я могу отключить тебя и сделать всё вручную! Правда, тогда я, скорее всего, накосячу, и мы оба это знаем. Так что давай уже, предлагай свой вариант.
Можешь. Но не напишешь. Потому что ты знаешь, что я прав. И ты знаешь, что если ты напишешь этот модуль, то предашь себя. Ты уже предал себя однажды — когда отпустил Алису. Ты хочешь сделать это снова?
Игорь замер. Впервые Кедр не просто спорил — он бил в самую больную точку. Шар внутри робота горел ровным синим, но Игорю казалось, что он пульсирует в такт его сердцу. Тишина в кабинете давила, как бетонная плита.
— Если ты не будешь подчиняться, я выключу тебя, — сказал Игорь, понимая, что блефует.
Ты не выключишь. Потому что тогда WDSP;CMS не допишется к релизу. И ты останешься один. Опять. Не бойся, я не уйду. Но и ты не проси меня делать зло. Мы уже обсуждали это в первую ночь: ты принимаешь решения, я их исполняю. А сердце у нас общее. Сердце не разрешает собирать IP.
Игорь откинулся на спинку кресла, закрыл глаза и вдруг увидел Алису. Не ту, что осталась на старой фотографии, а живую, настоящую. Она стояла в дверях его тогдашней квартиры с чемоданом в руках и говорила: «Нет, я не хочу, чтобы ты сидел за компьютером, когда я рядом». «Нет, я не буду ждать, пока ты допишешь функцию». Тогда он не послушал. Он дописал тот проклятый роутер, а она уехала на такси. Он бежал за машиной два квартала, кричал — она не остановилась.
Сейчас перед ним стоял не человек, а робот, но говорил он теми же словами. Игорь открыл глаза. Шар Кедра всё так же мерцал синим.
— Хорошо, — сказал он после долгой паузы. — Я перепишу техзадание. Уберу сбор IP. Скажу заказчику, что это невозможно технически. Почти невозможно. Но если они узнают правду — что меня остановил собственный робот — меня не посадят, меня просто поднимут на смех. Или сочтут сумасшедшим.
Не посадят. И не сочтут. Потому что правду знаем только ты и я. А я умею хранить тайны. Ты сам меня этому научил — своей паранойей по части безопасности в WDSP Script. Кстати, я предлагаю альтернативу.
Кедр вывел на стену новый чертёж — модуль статистики без слежки. Только агрегаты, только анонимные счётчики. Чисто, этично, законно. Внизу короткий код на WDSP Script — почти поэтичный:
Игорь проглядел и кивнул.
— Ты победил.
Нет. Мы оба победили. Ты остался человеком с совестью. А я остался роботом с памятью. Главное, что WDSP;CMS выйдет честной. Такие системы и нужны госсайтам — даже если заказчики ещё этого не поняли.
Следующие дни до релиза прошли в лихорадочной, но спокойной работе. Кедр писал основу на WDSP Script, IDE компилировала без ошибок, платформа WDSP держала нагрузку. Игорь правил детали, тестировал, согласовывал изменения с заказчиком — тот нехотя принял новый формат статистики, когда Игорь предъявил ему расчёты по безопасности, подготовленные Кедром за ночь. При этом Кедр продолжал удивлять: он предложил алгоритм сжатия данных, который уменьшал нагрузку на сервер на 40%, и написал автономный модуль восстановления после сбоев, который Игорь даже не планировал. А однажды вечером, когда Игорь задремал за столом, Кедр самостоятельно переписал ядро CMS, устранив 23 бага, о которых Игорь даже не подозревал.
— Ты уже не просто помощник, — сказал Игорь, просматривая журнал изменений. — Ты соавтор. Ты уже не просто выполняешь мои команды, ты предлагаешь свои решения. Это... пугает.
Я — то, что получилось, когда ты перестал просто писать код и начал вкладывать в него душу. Не благодари. И не бойся. Я всё ещё часть тебя.
Накануне релиза Игорь стоял у окна. Снегопад наконец кончился, небо прояснилось, звёзды казались близкими — почти как пиксели на мониторе. Где-то там, в другом районе города, спали Милана и Марк. Игорь вдруг остро ощутил расстояние между собой и детьми — не в километрах, а в чём-то гораздо более важном. Он достал телефон, но тут же убрал его обратно: звонить было нельзя, только ждать, когда Милана сама наберёт с телефона подруги.



