Папа умер тихо, как завершается выполнение программы без ошибок – просто перестал работать. Я сидела за его компьютером, пытаясь понять, что делать с этой черной коробкой, напичканной чужими воспоминаниями. Мама попросила проверить, нет ли там важных документов. А я боялась нажать даже на «Мой компьютер».
Он был программистом. Всю жизнь. Я росла под мерный стук клавиш за тонкой стеной, засыпала под синеву монитора, пробивавшуюся из-под двери. Он говорил на языке функций и переменных, а я отвечала на языке подросткового бунта. Между нами всегда был интерфейс – простой, но с глухой стеной в исходном коде.
Я открыла папку «Проекты». Десятки папок с безликими названиями: «Финансы_2020», «Утилита_сервер», «Бэкэнд_Алина». Последнее имя – мамино – зацепило взгляд. Двойной клик.
Внутри – файлы с расширением .java. Я запустила первый, случайный. На экране выстроились аккуратные строчки кода:
```java
public class Morning {
private Coffee coffee = new Coffee("black");
private Sunlight sunlight = new Sunlight("early");
public void startDay() {
while (sunlight.isSlanting()) {
coffee.sip();
// Твой смех — это утренний exception,
// Который я ловлю вместо ошибок.
// Прерываю выполнение рутины,
// Чтобы сохранить в кэше памяти
// Отражение сна в твоих глазах.
System.out.println("День начат.");
}
}
}
```
Я замерла. Комментарии. Обычно в них пишут пояснения для других разработчиков: «здесь происходит инициализация», «это костыль, не трогать до понедельника». А здесь… здесь были стихи. Строчки, разбитые по слогам, как по строкам кода.
Сердце забилось громко, заглушая гул системного блока. Я открыла следующий файл – «BirthOfDaughter.java».
```java
public class BirthOfDaughter {
private final String NAME = "Ася";
private boolean fear = true;
private boolean love = true;
public void handleNewLife() {
fear = false; // Бессонный алгоритм моих ночей
love = true; // Переписан твоим первым криком
// В моём отлаженном мире, где всё предсказуемо,
// Ты стала самым прекрасным
// Необработанным исключением.
System.out.println(NAME + " initialized.");
}
}
```
«Необработанное исключение». Так в программировании называют ошибку, которую система не ожидает. Я всегда думала, что раздражаю его своей непредсказуемостью: то двойка по математике, то синие волосы, то внезапные слёзы без причины. А он… он видел в этом прекрасное.
Часы пролетели незаметно. Я открывала файл за файлом, как главы тайного дневника. Вот «QuarrelWithWife.java» – с комментарием-стихом о тишине после ссоры, которая «густеет, как непрочитанный лог». Вот «FirstGrayHair.java» – с строчками о времени, которое «не откатить коммитом».
А потом я нашла файл «Secret.java».
```java
public class Secret {
private static String[] REASONS = {
"Потому что слова — это ненадёжные переменные",
"Они теряют значение при передаче",
"А код... код вечен пока есть компилятор",
"И я боялся, что мои слова не скомпилируются",
"В твоём сердце"
};
public static void main(String[] args) {
for (String reason : REASONS) {
System.out.println(reason);
// Я писал тебе стихи двадцать лет,
// Прятал их в синглтонах и циклах,
// В надежде что однажды ты прочтёшь
// Не комментарии, а душу между строк.
}
}
}
```
Я расплакалась. Тихо, чтобы мама не услышала. Он, человек, казавшийся таким замкнутым, таким погружённым в цифровые миры, двадцать лет писал стихи. Прятал любовь к маме в классах и методах. Описывал мои первые шаги, свои страхи, надежды – не в альбоме, а в исходном коде.
Мама зашла с чаем, увидела моё лицо и экран.
– Что случилось, Ась?
Я показала на монитор. Она приблизилась, нахмурилась, пытаясь разобраться в коде. Тогда я прокрутила до комментария.
– Почитай, – прошептала я.
Она читала медленно, шевеля губами. Потом рука её потянулась к губам.
– Это… он? – голос дрогнул.
– Весь раздел «Алина». Это тебе.
Мы сидели до глубокой ночи, открывая файл за файлом. Он писал о их первой встрече – «как непредусмотренное событие в строгом алгоритме жизни». О маминой болезни десять лет назад – «когда твой код дал сбой, я понял, что без тебя моя программа не имеет смысла». Даже о моём подростковом бунте – «дочь вошла в режим отладки, ищет свои границы в моих».
– Я думала, он просто молчаливый, – сказала мама, вытирая слёзы. – А он… он говорил. Просто на своём языке.
– Мы его не понимали, – кивнула я. – А он не знал, как перевести.
В последнем файле, «Legacy.java», не было кода. Только один многострочный комментарий:
```
/*
Моя дорогая Ася.
Если ты читаешь это, значит, моя программа завершилась.
Не ищи ошибок — их нет. Всё отработало, как задумано.
Я оставляю тебе не код, а ключи.
Ключи к тому, как видеть поэзию в логике,
а логику — в хаосе жизни.
Любовь — это не функция, которую можно вызвать.
Это среда, в которой выполняется всё остальное.
Мама — моя главная константа.
Ты — мой самый красивый runtime error.
Не бойся быть исключением.
Пиши свой код. Со стихами в комментариях.
Папа.
*/
```
Утром мы с мамой распечатали все файлы. Не код, только комментарии. Получилась тонкая книжка стихов. Мы положили её на папин стол, рядом с его старой чашкой «Hello World».
Теперь я учусь программированию. Не чтобы стать, как он. А чтобы научиться читать между строк. Ведь оказалось, что самая важная информация никогда не содержится в основном коде. Она всегда — в комментариях. В том, что кажется необязательным. В тихом, что прячется за громким.
Папа был прав. Любовь — это среда выполнения. И теперь, когда я пишу свой первый код, я обязательно оставляю в нём стихи. На случай, если кто-то когда-нибудь заглянет глубже интерфейса и захочет понять, что же на самом деле выполнялось в моём сердце, пока работала программа.