Программист без LLM — не «ремесленник», а инженер

Don't call yourself an artisanal programmer

Автор разбирает, как индустрия навесила ярлык «artisanal programmer» на тех, кто отказывается от LLM ради надёжности кода. Он показывает, что это переопределение терминов лишает таких разработчиков статуса инженера и превращает vibecoding в единственный «разумный» подход. Опираясь на проект Hillel Wayne, автор предлагает вернуть строгость: «AI-assisted coding» против «AI-free software engineering».

Насколько я помню, мы все шутили: «антоним вайбкодера — software engineer», а потом прошёл месяц, и внезапно все стали комфортно называть себя artisanal programmers, оставив «software engineer» «ответственным» пользователям AI.
  1. jlamberts

    Инженерия — это создание чего-то, что служит цели, действуя в рамках набора ограничений. Часть этого — понимание, что «100% корректность/надёжность при любых обстоятельствах» — нереалистичная цель, поскольку время и стоимость реализации — одно из таких ограничений.

    Хороший инженер признаёт этот компромисс между надёжностью и стоимостью и действует соответственно. Например, если вы работаете над системами, критичными для безопасности, или очень фундаментальными системами вроде ОС, медицинских технологий и т.п., вам следует сильно смещать баланс в пользу надёжности. Если нет, это легко может оказаться избыточной инженерией. Задача инженера — найти правильную точку на кривой стоимость-корректность для того, что он строит.

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

    Мы по-прежнему можем получать удовольствие, создавая качественные вещи, но делать это часто — акт ремесленничества, а не инженерии.

  2. cortesoft

    Как ни странно, я думал, что термины будут наоборот… Я воспринимаю ремесленника как того, кто ценит качество выше количества и делает всё красивым и долговечным, тогда как инженер больше про производительность, допуски и эффективность. Ремесленник делает более качественные вещи, но не масштабируется так, как инженер и фабричный процесс, хотя массовое производство жертвует качеством ради количества.

  3. barrkel

    Значительная часть инженерии — это сборка надёжных систем из ненадёжных частей.

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

    Программное обеспечение — это по сути автоматизация. LLM позволяют автоматизировать создание самого программного обеспечения. Они гораздо быстрее и дешевле людей и менее надёжны. (Люди тоже ненадёжны!)

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

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

  4. tibbar

    Мне больше нравится термин «программист с классическим образованием». :-)

  5. spawrks

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

Ещё за этот день

2026-09-13