Мы живём в странную эпоху. С одной стороны — языковые модели, генерирующие код, картины, музыку и мысли. С другой — базовые прикладные программы, которые не могут сохранить свои настройки после перезагрузки. Пока один нейрон обучает другой, ты не можешь нормально распечатать документ, потому что система считает, что у тебя три принтера, один из которых виртуальный, хотя ты вообще никогда не покупал ни одного. Тем более виртуальный.
Мы мечтаем о цифровом боге, но при этом боимся трогать конфиг CUPS, чтобы не умерла вся система печати. Мы строим архитектуры микросервисов в Kubernetes, но до сих пор не победили зависание Bluetooth-наушников. На каждом шагу — кривой, еле живой софт, решающий 99% задач, пока хайп вокруг ИИ продолжает пылать.
ИИ как культ, прикрывающий распад
Нейросети сегодня — это как церковное благословение на разваливающийся фундамент софта. Они обещают избавление от рутины, автоматизацию всего, улучшение UX, помощь в отладке. На деле? Чат-бот в банке не может понять «хочу закрыть счёт» и предлагает тебе ипотеку. ИИ-поддержка вместо живой техподдержки, ИИ-дизайн вместо нормального дизайна, ИИ-интерфейсы, которые не понимают человеческой логики. При этом весь отдел поддержки уволили ещё позавчера.
Всё больше ощущается, что нейросети стали заменой инженерного труда. Вместо того чтобы починить поиск — добавим к нему ИИ. Вместо оптимизации интерфейса — натянем нейросетевой ассистент. Вместо устранения ошибок — пусть GPT подскажет, как их обойти. Чем не техномагия?
Софт, который решает всё, но работает вопреки здравому смыслу
Большинство задач пользователя решается давно написанным софтом. Только работает он так, будто пережил ядерную войну. LibreOffice не может адекватно экспортировать таблицу в PDF. GIMP напоминает Photoshop, но как если бы тот родился в подвале с лоботомией. 1С — это Excel, которого сожрали черви, а потом добавили программирование на русском языке.
Ты не можешь нормально перетаскивать файлы между двумя окнами. Сканер теряется при подключении. Звук внезапно идёт в монитор, хотя у тебя воткнуты наушники. И каждый раз, когда думаешь «ну вот, теперь-то точно пофиксили» — выходит апдейт, и всё ломается заново. И ты снова в привычном круге ада.
Линуксовый зоопарк: дистрокошмар в каждой директории
О, хочешь стабильности? Тогда готовься. Fedora ломается каждые полгода. Arch просит собрать ядро самому — и ещё полсистемы вдогонку, пока Debian говорит: «Я не обновлялся с 2015-го, но жив». Ubuntu тихо ставит Snap, пока ты не смотришь. Gentoo — это извращение, где ты компилируешь всё подряд, потому что можешь, вплоть до базового мира. NixOS — секта. Slackware — мумия.
Каждый дистрибутив со своей философией, системой пакетов, багами и документацией для избранных. Ни один не поддерживает всё из коробки. Звук надо настраивать руками. Принтер — шаманскими танцами. Обновление системы — лотерея с последствиями. И всё это ради свободы. Отдельная тема — медиакодеки: зазеваешься при установке, и котиков на YouTube уже не посмотришь.
А графические оболочки — будто из ада. XFCE — эстетика 2006 года. KDE — бездна настроек, где каждый пункт телепортирует в другой мир. MATE — зомби GNOME 2. Cinnamon — клон клона. LXQt настолько лёгкий, что иногда забывает отрисовать курсор. GNOME держится, но тоже с причудами.
FreeBSD: почти забытый донор органов
Мало кто любит FreeBSD. Но все используют её внутренности. Сетевая подсистема — оттуда. Контейнеры — из jails. pf — огонь. Надёжность — почти религиозная. Только саму систему никто не трогает. Потому что графическая подсистема тащится из Linux. Wi-Fi-драйверы — тоже. Отстали, и в одиночку уже не вывозят.
GUI там, конечно, есть. Те же оболочки, что и в Linux: GNOME, XFCE, KDE. Только живут они на грани. Один X-сервер может не стартовать из-за банального несовпадения версий. HAL устарел, dbus не всегда работает как надо, мышка может внезапно перестать отвечать после обновления ядра. А ты ведь просто хотел браузер открыть.
FreeBSD — как старый профессор: знает всё, на нём строят теорию, но как только надо подключить HDMI — зовут молодого практика с Arch Linux. Прекрасна в теории, надёжна в серверной, но на десктопе — это вечный бой с ограничениями, совместимостью и адом зависимостей.
Windows: эстетика деградации
CMD.EXE всё ещё жив. PowerShell — больная XML-машина. Настройки наполовину старые, наполовину новые. Панель управления жива, но скрыта. Контекстное меню двойное. UI спроектирован так, будто дизайнеров увольняли прямо в процессе.
Windows 11 — как Win95 в новой шкуре. Ничего не работает одинаково. Настройки звука иногда ведут в никуда. Печать может сломаться из-за неправильного драйвера, который был заменён автоматически, потому что «новый лучше» в репозиториях Microsoft. Скрипты в PowerShell могут зависнуть от одного пробела. CMD — просто позор.
macOS и Apple: райский сад с изгнанием
Apple создала идеальный закрытый сад, где всё красиво, гладко и вроде как работает. Пока ты не захочешь выйти за пределы. Пока не попробуешь использовать что-то своё. Пока не столкнёшься с тем, что Apple решила: «Это больше нельзя».
Каждый апдейт macOS приносит не только новые фишки, но и новые ограничения. Всё ради безопасности. Ради контроля. Ради замыкания экосистемы. Система считает, что ты гость в собственном компьютере. Запреты на запуск неподписанных приложений. SIP. TCC. Защищённый раздел. И если хочешь поставить что-то, что Apple не одобрила — готовься воевать с системой.
Хочешь запустить старое приложение? Оно не запускается, потому что Rosetta. Хочешь заменить системную утилиту? SIP. Хочешь пробросить девайс в виртуалку? Подписи kext. Хочешь запустить старую версию Xcode? Она конфликтует с новой, но при этом новая не открывает старые проекты. И попробуй найди архивы на сайте Apple — удачи, воин.
iOS — вообще отдельная история. Там даже по Bluetooth нельзя нормально передать файл без iCloud. Монополия на аксессуары, приложения, API. Ты должен жить по правилам корпорации, иначе будешь изгнан из сада с белыми рамками.
Safari — браузер из параллельной реальности. Обновляется по-своему, отстаёт от стандартов, ломает половину современного фронтенда, зато красиво рисует шрифты. Нужен только потому, что без него не работает App Store. WebKit — священная корова, которую нельзя трогать, иначе рухнет iMessage.
Finder? Его логика создавалась шаманами. Enter не открывает файл, а переименовывает его. Хочешь открыть папку — жми Cmd + O.
Xcode — отдельная пытка. Один из самых громоздких IDE, способный упасть от случайного пробела в настройках проекта. Обновления — как нож по горлу: старые версии не поддерживаются, новые ломают весь билд. Тестирование — агония на симуляторах, с каждой версией становящихся всё медленнее. Подсветка синтаксиса и разные шрифты по всему тексту красноречиво говорят о внутреннем состоянии компании.
Apple строит экосистему как ловушку: сначала красиво и удобно, а потом замечаешь, что за каждым действием молчаливое «только с нами, только через нас, только у нас». Выхода, кроме как полностью уйти, нет. И тут вспоминаешь старый MacBook, на который можно было поставить что угодно — и понимаешь: тебя медленно, но точно выдворяют.
Корпоративное ПО: гиганты негодования
Внутри большинства крупных организаций живёт софт из параллельной вселенной. SAP, 1С, Oracle Forms, SharePoint 2007, кастомные ERP — всё это работает, потому что никто не решается его трогать. Интерфейсы — Windows NT из сна шизофреника. Функционал — из ада. Любое обновление — риск потерять всё.
Легенды рассказывают о скриптах, которые запускал только один человек, и он уволился. О макросах, без которых CRM падает. О документации, которой нет. Этот софт не развивается. Он просто висит как нарыв, покрытый витринами и интеграциями, которые ничего не делают.
1С — отдельный вид зла. Система, в которой можно писать бизнес-логику на русском языке, но понять её потом не может даже автор — только не филолог. Всё завязано на контексте: открыл форму не той кнопкой — получил другое поведение. Протестировать невозможно. Настроить — можно, но только один раз. Потом трогать нельзя, иначе всё рассыплется.
SAP — бюрократический кошмар в терминальных окнах с тренингами по 40 часов. Каждый модуль как отдельное государство со своими законами. Запрограммировать можно всё, но чтобы это работало — нужно три консультанта и шаман с бубном.
SharePoint — кладбище идей. Никто не знает, зачем он нужен, но без него нельзя. Это как домовой в офисе: живёт в серверной, пугает админов, и все делают вид, что он полезный. Добавишь новую форму — сломаешь две другие. Права доступа не работают правильно никогда. Визуальный редактор — только для мазохистов.
Кастомные CRM на .NET — это варево из боли. Интерфейс — реликт древности. Код — монолит в монолите. SQL-запросы пишутся прямо в обработчиках кнопок. Половина логики завязана на поведение Internet Explorer. Попробуй обновить .NET — сломается половина системы. Попробуй тронуть форму — привет, NullReferenceException.
Корпоративный софт живёт по своим законам: стар, глючен, но незаменим. Его не любят. Его боятся. Его не документируют. Его латают изолентой и молитвами. И когда кто-то говорит «давайте обновим систему» — в зале наступает тишина, потому что все помнят последнюю попытку. А с тех пор — никто больше не возвращался.
ARM, x86 и проклятие совместимости
Четыре версии x86-64: x86-64, x86-64-v2, v3, v4. Ни один дистрибутив не использует максимум. Всё компилируется под железо из 2003 года. AVX512 неактивен, потому что «вдруг у кого-то старый Pentium». Intel недавно попытался похоронить легаси в кремнии, но не справился и заодно похоронил эту вполне здравую инициативу. ARM на десктопах топчется. Apple M1 живёт в своей экосистеме. Всё остальное — как получится.
Хочешь оптимизации под своё железо? Собирай руками. Хочешь стабильности? Получай отставание. Хочешь совместимость? Привет, legacy.
Web: браузер как виртуальная ОС из ада
Когда-то браузер был просто окном в интернет. Сегодня — это полноценная виртуальная операционная система, собранная на костылях, скотче и латыни времён упадка Рима. Каждый сайт теперь — это 300 мегабайт фронтенда, 10 мегабайт JSON, четыре видеофона и React-компонент, который рендерит надпись «Добро пожаловать». Исходники Chrome весят три гигабайта.
JS-фреймворки плодятся быстрее клопов. Vue, React, Angular, Svelte, Solid, Qwik, Remix, Preact — и это только то, что всплыло на поверхность. Каждый тянет за собой целую церковь зависимостей. Один модуль требует другой, который в свою очередь требует left-pad, uuid, is-even, is-odd, normalize.css, sass, stylelint и три версии Babel.
Ты хочешь просто открыть сайт, а вместо этого браузер поднимает себе кластер. npm install — как приговор. Если работает — это чудо. Если нет — пойдёшь гуглить, как удалить node_modules размером в 1.2 ГБ и пересобирать кеш. npm audit fix иногда просто уничтожает проект, заменяя одни уязвимости на другие.
Стили? Tailwind — свежий фетиш: классы по 10 слов, логика в названиях, и всё это компилируется в CSS размером с небольшой роман. UI-фреймворки вроде ChakraUI или Material выглядят современно, но ломаются от нестандартного размера шрифта. А ещё адаптивность: каждый второй сайт на мобильном превращается в танцующее недоразумение с вылезшими за края кнопками и анимациями, которые тормозят даже на MacBook Pro. CSS шаблона в WordPress — 4000 строк кода. Впечатляет.
А браузеры? Safari не умеет рендерить половину CSS-фишек, остальное — в testing. Firefox борется за жизнь. Chrome жрёт память так, будто ты рендеришь Netflix в 8K. Edge — тот же Chrome, только с фирменной болью от Microsoft. Браузеры стали отдельной платформой, где всё должно быть «как приложение», но работает как глючный слайд-презентатор с автосохранением на проклятом таймере. Про Яндекс.Браузер я, пожалуй, промолчу.
Каждый сайт — как запуск ракеты: не знаешь, полетит ли. А если полетит — упадёт ли при скролле. Всё сделано «по лучшим практикам», но ощущается как пещера из мусора и палок, облепленная неоном и гордо названная «современный веб». Потому что так теперь принято.
DevOps и CI/CD: священные YAML и жертвы в GitLab
DevOps — это когда ты пишешь инфраструктуру как код, чтобы потом читать её как древние письмена. CI/CD — это храм на костях упавших пайплайнов. YAML — твой жрец и палач одновременно. Пропустил пробел — упал билд. Неправильно вложил отступ — затеррафомил себе в прод очередной баг.
Ansible будто создавался для пытки фронтендера, решившего накатить nginx. Утёк SSH-ключ — твоей инфре конец. Bash-хаки, переменные в кавычках, инвентори-файлы, которые разрастаются как опухоль. Terraform — великий уравнитель, пока у тебя не исчезнет state. Тогда начинается та же магия, только с криками. Сломал dependency graph? Откат невозможен. Сломал provider? Привет, полное пересоздание.
Puppet — как религиозный культ, только вместо молитв — манифесты. Ты пишешь на языке, который выглядит как Ruby, но это не Ruby. Это DSL, притворяющийся понятным. Ты объявляешь ресурсы, которые должны быть в определённом состоянии, а Puppet обещает их туда привести. Иногда даже выполняет обещание.
Но чаще получаешь загадочные ошибки. «Could not find class» — хотя класс прямо перед тобой. «Duplicate declaration» — хотя уверен, что объявил всё один раз. «Dependency cycle» — и теперь рисуешь граф на бумаге, пытаясь понять, где замкнулась цепочка. А потом оказывается, что проблема в модуле, который ты не трогал, но он зависит от другого, который обновил.
Puppet-модули — отдельная боль. Форки форков форков. Каждый со своей версией, своими патчами, своими багами. Хочешь установить nginx? Выбирай из 20 модулей, каждый из которых работает по-своему. А потом выяснится, что нужный параметр не поддерживается, и ты пишешь свой модуль, который через год станет ещё одним заброшенным форком.
Puppet Enterprise — это когда платишь за GUI, который показывает те же ошибки, но с красивыми графиками. PuppetDB — хранилище фактов, которое периодически забывает, что оно хранилище. Hiera — иерархия данных, где никогда не уверен, откуда берётся значение переменной: оно может прийти из 10 разных мест.
И всё это работает. Иногда. Когда звёзды сошлись, агент не упал, сертификаты не протухли, а манифест не содержит опечаток. Puppet — это инфраструктура как код, где код выглядит как заклинание, а инфраструктура — как результат этого заклинания, произнесённого с акцентом.
Jenkins — вечный старик. Живёт, потому что никто не решается его убить. В нём 500 джоб, 300 переменных окружения, 20 shared libraries, и один-единственный человек знает, как всё это работает. GitLab CI — красивая картинка и 20-страничный .gitlab-ci.yml, где если забыть rules: — вся цепочка пойдёт не туда.
Helm Charts — YAML в YAML’е. Шаблоны на шаблонах. Kustomize — для тех, кто хочет ещё глубже. Перестаёшь понимать, где под, где сервис, где ingress, и почему всё это перекрывается патчем, который ты не писал. Kubernetes — как город-призрак: всё выглядит знакомо, но каждый элемент хочет тебя убить. Он уже как раковая опухоль — в каждой компании, в каждой вакансии. Его боготворят.
CI/CD — это не pipeline, это обряд. Сатанинская литургия, где каждый день надеешься, что билд соберётся, не зависнет, не схватит чужой артефакт и не выкатит в прод старую версию по тэгу v666.0-debug-final-FINAL2. И если всё работает — ты не радуешься, ты боишься. И спасаешь себе нервы, переложив ответственность за выкатку в прод на кнопочку, которую тебе самому лучше никогда не жать.
Смарт-девайсы, IoT и бытовуха на костылях
Смарт-лампочка требует китайского облака, задеплоенного на кухне дядюшки Ляо. Холодильник на Android 7.1. Телевизор без обновлений. Колонка зависает от фразы «погода на завтра». Стиралка требует приложения, которое не работает с новым телефоном. Умный дом, который работает через Wi-Fi и молитвы.
Устройства живут три года. Потом API ломается. Поддержка исчезает. Новый телефон — старая колонка мертва. И так по кругу. Умный дом превращается в гробницу технологий, где каждое устройство ждёт своего некроманта.
Ты хочешь просто включить свет, но должен пройти аутентификацию, handshake с облаком, TLS-обмен ключами, и ещё чтобы DNS сработал. Лёг интернет — живи в темноте. Умная розетка не включается без обновления. Датчики не видят друг друга, потому что ты выбрал Zigbee, а они на Z-Wave. Или наоборот. Или Bluetooth Low Energy, который «иногда».
Хотел автоматизацию, а получил консалтинг на дому. Каждый гаджет — со своей прошивкой, своим приложением, своей регистрацией. Отправка логов в Китай — по умолчанию. Локальный режим — либо не работает, либо спрятан глубоко в настройках с предупреждением: «мы не рекомендуем».
Смарт-девайсы — это IoT в смысле «Internet of Torment». Когда холодильник требует OAuth, а выключатель — обновление через adb shell. Добро пожаловать в будущее. Останься без света и рассудка.
Заключение: цифровой бог на шатком основании
Нейросети приходят в мир, где не работает копипаст. Где кнопка «печать» крашит LibreOffice. Где Bluetooth живёт по своим законам. Где системы разрабатываются быстрее, чем решаются их собственные проблемы. Где даже самый банальный софт — убогая поделка с тонной боли в нагрузку.
Вместо инженерии — магия. Вместо стабильности — маркетинг. Вместо интерфейса — туториал на YouTube. Мы зовём ИИ на помощь, потому что давно отчаялись разобраться сами. Потому что всё уже настолько усложнилось, что проще научить машину разгребать беспорядок, чем перестать его производить.
И каждый раз, когда видишь новое нейросетевое чудо — вспомни, как настраивал звук. Сколько раз открывал настройки печати. Как выглядела форма логина в корпоративной CRM. Как всё зависло после обновления. Это и есть твой цифровой бог. Смешной. Забагованный. Кривой. Но почему-то всё ещё живой. И, чёрт возьми, такой родной.