Не вздумайте переписывать код? В смысле?

9b358289e2d0edeee44006c53d229fb4.png

В очередной раз кто-то на ЛинкедИне решил подурачиться. Говорит, мол, Илон Маск решил переписать программное обеспечение службы соцобеспечения США на новый лад. Ай-яй-яй, какой же он дурень дуболомный — не переписывайте ничего, что работает уже 40 с лишним лет.

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

Знаете, признак разумности человека заключается в том, что он может видеть разницу между вещами. Чем больше разниц вы видите, тем лучше. В 2003 году, когда каждый программист был на учёте, когда для того, чтобы начать работу, вам действительно был нужен диплом и вышка, когда вам платили много, и требовали немало, — заниматься переписыванием ПО от нефиг делать не хотел никто.

Но у нас на дворе сейчас 2025 год.

Давайте очнёмся и посмотрим вокруг. У нас есть ЛЛМки. И они уже реально хороши. У некоторых из них контекст добирается до мегабайта. То есть, существует вероятность, что условный Клод может переписать всю кодобазу службы соцобеспечения США с Кобола на Голанг за один присест.

Понимаете, код сам по себе — это вещь, которая обесценилась давным-давно.

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

Потом появился интернет. Народ начал узнавать намного больше про всё. Люди начали продавать софт для платформ. Если вы владели виндой, то за хорошее ПО вы отдавали от 10 до 30 баксов за программу. Люди покупали WinRar, Windows Commander или диски с играми. В какой-то момент цена софта начала падать.

А в 2006 появился первый публичный репозиторий гита. Тогда линукс уже загребал себе практически все серверные ОСи, резво вытесняя винду и артефактные мейнфреймы. Опенсорс стал дельной вещью. И со временем даже большие мастодонты рынка, такие как Фотошоп и Дримвейвер, были заменены чем-то менее качественным, но полностью бесплатным.

К 2015 году рынок изменился ещё раз. Большие корпорации поняли, что код может быть не только бесплатным, но и прибыльным для них. Появился VSCode. Проект — поделка. Безобразное логово бесконечного говнокода, которое, тем не менее, хорошо поддерживалось, и в него вливались деньги. В итоге этот ужас стал стандартом де-факто в веб-разработке. (Кстати, ещё раз — https://zed.dev на годы опережает VSCode.) Но также этот продукт стал стандартом де-факто слива вашей информации, прав и всего остального. Софт стал бесплатным с целью рекламы.

Вам не нужно разрабатывать новую утилиту. Её уже разработали. Если вам нужно видео — вы делаете это через ffmpeg. Или идёте и работаете с DaVinci Resolve. Замечательная студия, созданная с одной целью — сделать вас клиентом BlackMagic.

Добро пожаловать в самую последнюю веху развития софтоиндустрии. Сегодня код является обёрткой, которая требует от вас подписки на LLM. Фотошоп, Zed, DaVinci и всё остальное — не особо важно. Важно то, что вы будете покупать подписку на их сервис, потому что у них есть нужный вам ассистент.

Само по себе программирование приносит 0 долларов. 0 центов. А в 2025 году ещё и не может ничего стоить. Если только ваш код не является очень замороченным байткодом для проприетарного процессора — то цена ему 0.

Даже если вы выставите на него лицензию и скажете, что вам за него надо платить, то пара взмахов ЛЛМки быстро создадут бесконечное количество клонов. А если совсем уж наглеть нельзя, то можно просто попросить ЛЛМку переписать этот код, основываясь на входных и выходных данных.

Понимаете, определение слова «Компьютер»: устройство, которое сохраняет, обрабатывает и передаёт данные. Данные — это важная часть этого определения. А то, каким способом оно их изменяет, — не особо важно.

То, какой у вас язык, компилятор или стек — это вообще не важно в области бизнес-логики в 2025 году. В 2020 году это ещё было как-то важно. Сегодня один хороший инженер может скормить в ЛЛМку монорепу с парой сотен микросервисов и получить на выходе работающий монолит. Также можно переделать монолит в микросервисы.

Сегодня вы страдаете, потому что вам не хватает статической типизации на яваскрипте? Да бога ради — перейдите на голанг. Задрал голанг? Перепишите всё на яваскрипте. Это займёт не больше 10 баксов. У вас больше мегабайта кода? Ну ладно, придётся поработать неделю и заплатить 100 баксов. Ужас-то какой. Подключите к этому тесты, которые описываются всё той же ЛЛМкой — и всё.

(Это не значит, что ЛЛМкой не должен рулить хороший разработчик. Отнюдь — без этого разработчика ЛЛМка будет галлюцинировать и делать полное фуфло. Но хороший разработчик сегодня может выдавать кода в 100 раз больше, чем 10x developer 10 лет назад.)

Да, в каждом отдельном случае разумный разработчик действительно должен сесть и как следует проанализировать, нужно ли кому-то переписывать кодобазу за неделю или нет. В некоторых случаях — нужно, а в некоторых — нет.

А теперь вернёмся к системе соцобеспечения США.

Этой стране нужно срочно переписывать ВСЁ от начала и до конца. Большая часть правительственного софта написана на мейнфреймах в 1990-х годах и так же работает в обёртке из 60 разных эмуляторов, которые запускают её на современных процессорах. У них везде стоят базы данных Informix, местами используется язык Prolog, а кое-где проглядывает FoxPro.

Знаете, почему в США нельзя перевести деньги по номеру карточки и телефону? Потому что большинство банков использует ACH, который работает на ТЕЛЕКСАХ. Не знаете, что такое телекс? Что же, вы либо не служили в ВМФ США, либо вы моложе 80 лет. Телексы — это такие аппараты, выглядят как печатающая машинка. Она включалась в телефонную сеть и соединялась с другим таким же телексом. Когда ты печатал что-то на одной машинке, другая печатала то же самое. Конечно, машинок сейчас уже нет (ох как же хочется надеяться на это), но в банках всё равно используется ПО, которое работает внутри DosBox, который оборачивает плащаницы из CSV в командные файлы для программы-эмулятора телекса.

Не верите?

Пойдите и попробуйте инициировать ACH-перевод между банками, и передать больше чем 80 символов в описание транзакции. Все ACH-процессоры и гейтвеи отвергнут транзакцию. Когда вы будете копаться в недрах ваших логов с техподдержкой, то в конце концов вы получите фотку экрана ЭЛТ-монитора, на которой белым по красному будет написано: «Текст не влезает в строку». Почему белым по красному? Мы так в DOS любили делать.

Эту систему пора шатать. Её пора шатать давным-давно. В ней нет сложности. В ней совершенно нет сложности. Вся база данных выплат соцобеспечения всего США может спокойно работать на одном iPhone 16 с одним терабайтом памяти. Эта система — миниатюрная в смысле исполнения. Но, так как мы не хотим ничего обновлять, мы будем тратить миллионы долларов на написание эмуляторов, выпуск LPT-принтеров, поиск программистов на Коболе и Prolog, и заниматься подобной фигнёй.

В этой системе нет ничего сложного. Мы научились обрабатывать финансовые операции ещё в 1990-х годах. Уже 30 лет спокойно можем обрабатывать тысячи запросов в секунду. А 20 лет назад — миллионы. А 10 лет назад — миллиарды. Мы всё это умеем. Это всё в открытом коде уже написано и задокументировано. У нас есть ЛЛМ, которые могут переписать Кобол в Голанг. У нас есть оборудование, которое намного дешевле, чем матричные принтеры. И это всё доступно. Осталось только взять и сделать.

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

Чтобы действительно понять, что вы переписываете, вы должны требовать данных. А данные — они доступны. Зайдите сюда — https://www.ssa.gov/OACT/ProgData/tsOps.html, запросите данные — вам покажут их на экране (кстати, сайт сделан в лучших традициях 2006 года). Посмотрите, сколько денег приходит в их фонды, а сколько уходит. Посмотрите на то, сколько приходило и уходило в 2005 году. И вы поймёте, что нам не только надо переписывать всё от начала до конца, но и бить тревогу по всем направлениям. Потому что сколько бы кто ни говорил о том, что всё будет хорошо — математику не обманешь. Отрицательные числа говорят за себя. А обилие этих отрицательных чисел говорит очень многое.

Так что давайте перестанем прикидываться, что мы живём в 2003 году. Переписывать код бизнес-логики в 2025 году стоит смешных денег. Вы не кодеки для видео пишете и не ЛЛМки растите. У вас есть строго кодифицированные процедуры, которые на другой язык можно переложить с закрытыми глазами.

Habrahabr.ru прочитано 6370 раз