LLM-агенты делают выбор языка программирования почти неважным — и разработчики всё чаще выбирают Rust и Zig

Fast and Hard Code

LLM-агенты делают выбор языка программирования почти неважным — и разработчики всё чаще выбирают Rust и Zig

Армин Ронахер, давний программист на Rust, замечает, что с ростом возможностей LLM выбор языка программирования перестал быть критичным: агенты могут писать код на незнакомых языках, и разработчики всё чаще ориентируются на «маркетинг» языков. Это привело к всплеску проектов на «сложных» языках вроде Rust и Zig, а также к работе с такими технологиями, как DWARF, eBPF и кастомные сетевые драйверы. Автор связывает это с растущим спросом на быстрый и компактный код и с тем, что LLM отлично оптимизируют без изменения поведения. В итоге, хотя мир может получить больше «мусора», в нём станет больше разработчиков, стремящихся к скорости и минимализму.

Если вам не нравится выбор, вы, судя по всему, можете переписать код на другом языке и заставить агента выбрать язык, который вам, как программисту, совершенно незнаком.
  1. qsera

    Внезапно я увидел, как люди делают действительно впечатляющие вещи с DWARF-файлами, eBPF, кастомными сетевыми драйверами, кастомной криптографией и очень старым компьютерным железом. Многие из этих вещей раньше были недоступны большинству разработчиков. В некоторых случаях (например, в криптографии) вас даже отталкивали, потому что эти вещи намеренно охранялись теми, кто в теме.

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

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

  2. willtemperley

    Я думаю, это в какой-то степени верно, но это действительно зависит от того, сколько информации у LLM по теме.

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

    Думаю, на этом основании довольно легко предсказать, в чем они хороши. Не понимаю, почему они так плохи в дизайне интерфейсов.

  3. noduerme

    Как человек, не разбирающийся в криптографии, я знаю достаточно, чтобы слова "кастомная криптография" пугали меня до чертиков.

  4. superjose

    Я бы сказал, что это зависит.

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

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

    Единственная константа — это изменения.

    Хотя LLM генерируют код (и с большим знанием дела, впечатляющий результат), разработчик должен обладать знаниями, чтобы пройти определенный порог.

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

    Например, я уже несколько недель изучаю Effect.ts. Я активно использовал LLM, но до этого был ряд ручных этапов кодирования.

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

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

    Я люблю двигаться быстро, не ломая вещи.

  5. jbstack

    > одно ясно: процесс знакомства с языком больше не имеет значения

    Я совершенно не согласен с этим утверждением как с посылкой статьи.

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

    Интересно, что я заметил, что мой подход к изучению языков фундаментально изменился. Раньше я изучал книгу по одному или двум языкам, которые были важны для меня в то время. Целью было стать профессионалом. Теперь я выбираю чтение о разных языках просто потому, что они демонстрируют какую-то интересную парадигму, которая для меня нова (например, Haskell -> функциональное программирование, Elixir -> конкурентность). Я читаю книгу по программированию, как увлекательную научно-популярную книгу: быстро от корки до корки, и все. Это дает мне ту "знакомость", которая полезна для агентного кодинга, не утруждая себя изучением каждого obscure синтаксиса или вызова библиотеки. Мой приоритет сместился на широту (получить обзор многих языков и парадигм), а не на глубину (хорошо выучить один-два языка).

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

2026-08-23