Элиас проснулся от шумно обновляющегося компьютера. Вчерашний день всё ещё не оставлял: много созвонов и длинная лекция о мифах древнего интернета по вечно лагающей видеосвязи, да и эта Тери, неужели она правда думает, что скриншоты Госуслуг реальны?

И вправду, самые умные студентки всегда выдают самые глупые идеи, может они просто не боятся их озвучить? Немыслимо, чтобы Древние могли создать нечто столь сложное и работоспособное. Хоть они и смогли создать интернет, этого отрицать мы не можем, написали некоторые простые первоприложения и даже некоторые сервисы, но все наши исследования говорят о том, что это было бы невозможно на их технологическом уровне.

Звук уведомления. В мысли Элиасу внезапно ворвался день сегодняшний - не зря же он припёрся в Каир. Встреча сегодня. Может это заказчик написал? Как бы не оплошать перед фараоном Аменемхетом, важнейшим заказчиком Poocle Inc!

Элиас собрался и посмотрел на пришедшее уведомление. Это была всего лишь Тери, опять настаивающая на том что Госуслуги, а вместе с ними и другие мифические сервисы прошлого реальны. Вот бы ей доказать, взять "на практику" туда где делаются реальные приложения и сервисы и показать насколько это сложно.

Элиас:
Если уж ты так интересуешься древностью, у меня есть свободное место на практику при строительстве погребальной страницы Аменемхета, поедешь?

Тери: Конечно!
* написано с PekaPhone, сообщение является интеллектуальной собственностью Peekle corp, написание нарушающих соглашение (link) сообщений является возможной причиной отзыва лицензии на владение правом аренды устройства у компании

Что ж, уговорить было несложно, так что Элиас тут же откинул телефон и приступил к подготовке к теперь уже вдвойне важной встрече.

...

Элиас поправил волосы, футболку и кинул взгляд на брюки, будто за одну поездку до места разработки с ними могло что-то случиться.

Хлопок дверью машины и вот он уже на подъёме залитой солнцем лестницы Каирского Института Археологии Интернета. Часы над дверью показывали 16 июня 3155 года. В дверях глядя на него уже крутится улыбающаяся Тери, ей явно не терпится узнать ещё хоть что-то о древности или хотя бы увидеть мумию древнего кода. Словно слаженная экспедиционная группа они быстро вошли в прохладный и бесполезный в такую жару гардироб университета, предъявили документы и прошли в главный зал, где кипела работа.

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

За оживлённым залом и очередной лестницей оказалось что-то похожее на три маленьких храма разной архитектуры, словно они исповедовали совсем разные религии, но почему-то стояли рядом. Здесь наконец можно было перестать бежать


- Что это?
- Это отдел разработки ядра страницы. - сухо ответил Элиас. Потом всё же посмотрел на всё ещё требующие ответа глаза Тери и продолжил:
- Ядро вещь очень важная, поэтому его создание доверено лучшим ЛЛМ и лучшим их заклинателям. Но на бога надейся, а сам не плошай, поэтому здесь три разных группы занимаются добавлением фич, все по разным религиям создания промта, с разными обрядами и практиками. Потом решение которое работает добавляется в систему.

Тери выдохнула как будто бы понимая, но видимо слишком громко, так как тут же поймала на себе взгляд молящегося на полу заговорителя промта и наклонила голову как бы извиняясь

Группа пошла дальше - их путь лежал в отдел поддержки кнопки виртуальной прогулки.

Элиас наконец решил рассказать Тери зачем они сюда пришли - предстояло починить критический баг. При нажатии кнопки виртуальной прогулки у пользователей с более чем двумя глазами загрузка шла бесконечно долго. Предстояло рыть бесконечные слои зависимостей, абстракций и скорее всего в конечном счёте хоть как то прикрутить костыль к устоявшемуся решению.

Встреча с заказчиками прошла удивительно мимолётно. Просто показали нужный проект, описание бага и сказали, что готовы многое заплатить за его решение. У Элиаса промелькнула мысль Может чаще брать Тери на такие встречи?

Пора приступать к работе. Уверенно и быстро развернув инструменты в проекте Элиас приказал ЛЛМ собрать списки зависимостей и разбирать на категории от самых опасных, до самых неопасных. Тери занялась воспроизведением бага, сам Элиас разглядывал код кнопки, её стилей, подозревая зловредный или случайно оказавшийся в коде стиля цвета кнопки скрипт, проверяющий количество глаз

...

Шло туго. Тери всё ещё очень заинтересованная смотрела на сгорбившегося над длинным списком зависимостей и их уязвимостей Элиасом.

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

Элиас вышел из задумчивости:
Знаешь, а почему бы и нет? Давай посмотрим в пакет laVRi-122.4.511re. Судя по описанию этот пакет связывает несколько других пакетов для поддержки VR на множестве разных платформ, в том числе многоглазых

Стали тщательно, понемногу копать. laVR зависел от сотни пакетов, но договорились копать просто как можно глубже, так что пошли куда-то в отрисовку, там в стили, дошли до такой древности как "нативный код" в описании пакетов, такого уже лет пятьсот не встречается! Но Тери всё настаивала копать дальше, ей явно хотелось дойти до мифической эры 21 века, когда якобы (хах) создавали приложения за несколько месяцев, а не десятки лет и без привлечения тысяч людей и, прости боже за такую глупость, без ЛЛМ.

Тери выхватила случайный пакет, его случайную зависимость, обнаружился какой-то SFML-243, древнючий пакет для отрисовки и взаимодействия с древними операционными системами.

А можно мы посмотрим исходный код? - Тери знала, что такое просить даже как-то странно, ведь давно никто не пытается анализировать исходные тексты программ, достаточно их API и описания. Элиас может даже счесть такое несерьёзным отношением к делу но..

А давай - внезапно ответил Элиас. Он видимо так устал, что решил пусть она занимается уже чем угодно

ЛЛМ открыла код SFML-243. Последний выпуск - 2048 год. По логам видно, что мажорная версия сначала была очень стабильна, потом начала повышаться раз в год, потом чаще и в конце концов они выпускались чуть ли не каждую неделю. ЛЛМ суммаризировала, что многие из последних версий это фиксы багов в самом апи, так что фикс багов менял АПИ и приводил к смене мажорной версии, а потом наследник мейнтейнеров проекта не смог разобраться в коде и заархивировал проект, задокументировав все известные баги, чтобы люди как он выразился "просто не делали так, если у них так получается баг"

Тери взглянула на Элиаса, тот смотрел куда то в потолок в раздумьях, так что можно было продолжить тихо изучать всё и записывать увиденное. Она уже почти жалела, что открыла этот код. Понять было совершенно ничего невозможно, последние версии были предназначены только для написания кода с помощью НЕлюдей, о чём явно было прописано в оглавлении пакета начиная с версии 121.0.1.

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

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

Наконец да! Что-то понятно. Она чуть не вскрикнула, но вспомнила, что совсем рядом сидит профессор и без явных результатов отвлекать его от мыслей было бы провалом. Версия SFML-4, 2025 года. Удивительно, что этот проект вообще сохранился, большинство проектов до 2048 и 2837 года исчезли бесследно. В первый раз в результате ядерных войн, во второй раз и так называемого культурного вымирания учителей и вызванной им эпидемии профнепригодности

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

Сейчас как никогда она была благодарна своему преподавателю вымерших языков, зря одногруппники говорили ей "да где этот вымерший С++ тебе пригодится"? Куча древних и непонятных абстракций и слов, но кое-что кристально ясно - это было обновление версии языка и затем обновление версии проекта. Разве так когда-то делали? Может тогда была культура обновления версий проектов под версии языков? По-моему такого никогда не было..

Хм, а это что. Добавление модуля <numbers> для константы Pi? *это точно не свежие подделки? Тери всегда думала, что пакет Leftpad, как и numbers ради числа Pi всегда были анекдотами*

Странно. Но всё же лингвистический анализ говорил, что это не новодел. Этот пост реален.

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

Тери задала ЛЛМ найти критическую точку, где проект усложнился и стал непригоден для написания человеком. Изменения были объёмными, но все они вели в 2024 год и ранее. LLM выдала комментарий-зацепку:

Тери конечно не понимала о чём речь и как это работает, но ЛЛМ знала.

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

Налицо непонимание ими смысла динамического и статического полиморфизма (древние термины)

На глазах у Тери проступили слёзы. Древние действительно знали как делать программы. Они строили интерфейсы основываясь на знаниях. У них были Госуслуги... Были... Но потом пришли наследники кода и начали его менять, убивая проект за проектом. Потом ядерная война и потеря старого кода. Его больше не вернуть. Только создать с нуля! Промелькнула надежда. Быть может, она сможет возродить истинный код древних.?.

.
ЛЛМ всё продолжала. Вторая зацепка. SFML-3. Изменили ключевой интерфейс Event

Тери громко зарыдала обняв руками колени. Что им мешало просто оставить стары интерфейс и добавить type-safe функцию visit? Неужели нельзя было просто заменить поля на функции, проверяющие, что запрашиваемый тип корректен?
Услышав рыдания Элиас повернулся, подбежал и обнял, распрашивая что случилось. На экране был код. Он всё понял. Он догадывался, но отказывался верить. Тысячи проектов, их сгубила не ядерная война, а создатели.

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

Комментарии (5)


  1. alexdeedl
    15.06.2025 13:52

    Вся боль кодинга в одной главе)


  1. Biga
    15.06.2025 13:52

    Почему нельзя сразу делать нормальный API без хардкода типа что у пользователя не больше двух глаз? Строят архитектуру на необоснованных предположениях, и сами потом страдают. /s


  1. Jijiki
    15.06.2025 13:52

    эх знали бы вы что помогло бы просто реализовать библиотеку над си без std, но возможно меня ждёт та же участь )

    плюсы - скорость, удобство

    минусы - надо всё контролировать

    в последнем скриншоте я так и не понял в чем баг, мне эта либа всё равно нравится я помню о ней, как и о сдл


  1. Stingray42
    15.06.2025 13:52

    А можно пояснение из-за чего возникал баг с количеством глаз, для незнакомых с C++?


    1. Kelbon Автор
      15.06.2025 13:52

      Конкретно почему возникал баг остаётся нераскрытым, а вот посты наследников кода SFML подлинные, они действительно делают уже который год какую-то дичь