Введение: Почему обесценивание кода бьет по всей IT-индустрии

Пока ИИ-евангелисты обещают нам «мир без программистов», а менеджеры пытаются забить бэклог одной строкой в ChatGPT, реальность бьет больно: в продакшене снова падает база, а сгенерированный код течет по памяти (впрочем, классический «Memory leak» был с нами ещё до того, как это стало мейнстримом). Прямо сейчас, пока индустрия обсуждает очередную волну «смерти кодинга», мы наблюдаем опасный сдвиг в восприятии нашей профессии, который грозит обрушить качество всего цифрового мира.

В последние годы в технологическом сообществе стал популярным один опасный нарратив. С появлением продвинутых языковых моделей и инструментов автоматизации всё чаще звучит мантра: «Code was never the hard part» («Код никогда не был сложной частью»). Эту мысль транслируют инвесторы, переключившиеся на продажу ИИ-генераторов, топ-менеджеры, мечтающие сократить косты на разработку, и неофиты, сгенерировавшие первый лендинг по промпту.

Смысл утверждения сводится к тому, что написание синтаксически корректных инструкций — это рутина, а «настоящая» сложность кроется в бизнесе и архитектуре. На первый взгляд, в этом есть доля правды: спроектировать систему сложнее, чем перенести алгоритм на конкретный язык. Но называть код «несложной частью» — это глубокое заблуждение, оскорбляющее инженеров, которые годами оттачивают свое ремесло.

Код — это не просто текст. Это кристаллизованная логика и ограничения физического мира (памяти, процессора, сети), переведенные на язык строгих формальных правил. Когда мы говорим, что «код не важен», мы обесцениваем борьбу с race conditions, проектирование потокобезопасных структур данных и отладку распределенных систем. Давайте разберем, почему преуменьшение роли кода вредит качеству IT-продуктов.

Анатомия программирования: Почему написание кода — это и есть мышление

Распространена когнитивная ошибка: разделение создания ПО на «высокоуровневое мышление» (дизайн) и «низкоуровневый набор текста» (кодинг). Сторонники тезиса «код не важен» представляют разработчика как писателя, который переносит готовый сюжет из головы в редактор. Но разработка работает иначе.

Процесс написания кода — это и есть процесс мышления. Когда вы пишете код на условном Rust, C++ или Go, вы неизбежно сталкиваетесь с ограничениями рантайма и железа:

  • Как эта структура данных ляжет в кэш процессора (L1/L2/L3)?
  • Не приведет ли этот вызов к дедлоку в многопоточной среде (и не проще ли всё переписать на монолит, шутят синьоры)?
  • Какова аллокационная сложность ($O(n)$ или $O(1)$) у выбранного контейнера под капотом?

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

Что на самом деле скрывается за фразой «Код не важен»

За этим лозунгом обычно стоят три разные группы людей, каждая из которых преследует свои цели:

  1. Инвесторы и маркетологи ИИ-стартапов. Им нужно продать идею о том, что разработчики скоро станут не нужны, а значит, бизнесу нужно срочно покупать их дорогие подписки на «AI-софтверных инженеров».
  2. Менеджмент с дефицитом эмпатии. Люди, которые никогда не открывали IDE, искренне верят, что программирование — это набор текста на скорость, как в стенографии. Отсюда рождаются метки эффективности вроде «lines of code» или токсичные требования выкатить фичу за пару часов (прямо перед пятничным релизом).
  3. Начинающие специалисты. Попробовав написать скрипт из 50 строк с помощью ChatGPT, новичок часто думает, что познал дзен разработки, упуская из виду масштабируемость, безопасность и техдолг.
«Написать рабочий код на 100 строк — легко. Заставить миллион строк кода работать стабильно под нагрузкой в течение пяти лет без падений — вот где начинается настоящая сложность».

Как LLM меняют парадигму, н