Обновить

Комментарии 50

вайб программирования

Это называется "вайб-кодинг" или "vibe coding", не стесняйтесь изначального наименования этого процесса :)

очень существенный минус, за все нужно платить

Да, и в один прекрасный момент LLM-компаниям ничего не будет стоить поднять цены за токены ещё выше, ещё выше и ещё выше... Мы живём в капитализме, думаю так примерно и будет. Чтобы "программировать" в будущем нужно будет платить много денег)

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

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

Последовательно с разной скоростью каждый новый слой работ у разработчика будут забирать LLM'ки. Сначала кодинг, потом программирование, затем архитектура, системный анализ, проектирование, планирование (на всех этапах), сопровождение, и так далее... А мы всё и дальше будем облегчать себе жизнь мыслями о том, что "разработчик всегда будет нужен на этапе <подставить то, что будет заменено LLM-кой в ближайшие годы>".

Программирование, разработка и в целом IT с участием людей в роли исполнителя всё быстрее и быстрее умирает в принципе... Как и многое другое что связано с интеллектуальной деятельностью и творчеством. Тут уж точно каждый сам за себя и без принципа "не можешь победить - возглавь" тут никак.

и можно идти пить чай или кофе

Руководству не выгодно будет таких сотрудников держать, которые могут спокойно идти чай пить, да кофе (напомню - мы в капитализме живём и меняться ничего не будет) в то время как LLM'ка будет решать задачи. Зачем нужна эта прослойка в виде человека в таком случае? Достаточно нанять менеджера с "Эй Ай" навыками и всё... Дать ему глоссарий разработчика, да и пущай работает.

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

Не обесценивайте результаты десятилетних исследований, ведь именно благодаря им (в том числе) существование больших языковых моделей в принципе сегодня возможно. Без таких исследований "вайб-кодинг" не мог бы существовать в принципе.

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

А выбор у Ваших коллег будет - использовать LLM или нет? А то как-то... странно. Вам, значит, это всё понравилось, всё хорошо, и надо всем остальным навязать такое же отношение что ли? Как будто тут выбора то и нет... использовать LLM или нет.

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

Какими это, например? Своими личными проектами в рабочее время? Или распитием кофе, пока LLM'ка будет всю задачу за Вас выполнять? :)

... распитием кофе,

А что Вас так беспокоит в распитии кофе?

Не его, работодателя

Это называется “вайб-кодинг” или “vibe coding”, не стесняйтесь изначального наименования этого процесса :)

Большое спасибо, что поправили. Это очень верное замечание.

Да, и в один прекрасный момент LLM-компаниям ничего не будет стоить поднять цены за токены ещё выше…

Безусловно. Как раз это и была основная причина, по которой в прошлом году я бросил эксперименты с вайб-кодингом. На маленьких объемах дешевые (киатйсике) модели работают нормально, а для большого объема приходится очень дорого платить. А сейчас уже появились модели с серьезными моделями и адекватной ценой, и я не уверен, что цены будут заоблачными, ведь всегда остается возможность выбрать другого провайдера или раскошелиться на собственное железо . Ведь капитализм :-) Но совсем другое дело, если запретят пользоваться альтернативными провайдерами в целях защиты детей суверенитета , вот тогда цены в России действительно взлетят. Но эта ситуация к капитализму не имеет отношения :-(

А зачем на этом уровне оставаться? LLM отлично заменяет человека в планировании и контроле …

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

Руководству не выгодно будет таких сотрудников держать, …

Это образное выражение. Понятно, что «подчинённый перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство» :-)

Не обесценивайте результаты десятилетних исследований…

И не собираюсь. Но мне даже жена говорит, что я хожу с ошалелыми глазами. А меня до глубины души поразил тот факт, что такое историческое нагромождение кода удалось разгрести за столь малое время.

А выбор у Ваших коллег будет - использовать LLM или нет? Какими это, например? Своими личными проектами в рабочее время?

Я работаю удаленно и руководство принимает фактически сделанную работу. А личные проекты, это и лично время и личные расходы на них.

а мне нейронка показала как на Расте библиотеки делать, иксы тут же ожили, и я сделал 3д Opengl(со своим загрузчиком без диспетчинга как в С/С++) пет-проект с минимальными зависимостями ), а на С/С++ я открывал окно иксов и было не такое ощущение как от Раста, поэтому да, всё что смогут заменят Растом.

кстати bindings, и такой же подход есть на java - project panama + jextractor(в купе с java 25/26), так что выбор есть.

Раст удобный никакого шума как в С/С++ (всякие атрибуты синтаксические, так думаешь, реально пережиток прошлого, а таски на С++, только удачи пожелать можно по грязи)

как бы я лично развивал С/С++ - убрал бы все ненужные атрибуты и добавления синтаксиса, которые загрязняют код, и вывел бы его либо на чистоту синтаксиса или ближе к декларативному стилю, а все эти закарючки где там виртуал, где там тривиал, это не правила, а костыли, компилятор сам должен принять эти правила и понимать где что и какое ветвление у него происходит. Это всё таки 21 век технологий, а не 80 года, где надо еще пк на лампах себе собрать и сдать докторскую на указатели и виртуальные методы с ООП парадигмой и виртуальной таблицей переходов по памяти...

спасибо за минусы

Ну так в этом и прикол, C++ это пережиток прошлого который тянет на себе кучу всего для обратной совместимости. Я только поэтому могу собрать код из 80-х современным компилятором. И я бы посмотрел как вы будете все те килотонны говна на C/C++, что наделало за это время человечество, переписывать на Rust, особенно там где дело касается железа. Мне конечно Rust нравится, но если мне дадут переписывать на него минимально сложный проект, я скорее повешусь. И что за предложения по развитию, вы бредите?

  • Запрещено читать, писать или выполнять поиск в каталоге docs/, так как он не является частью кодовой базы.

И как же понять, как использовать проект, если даже docs/ нельзя прочитать - ибо запрещено?

В этом есть нечто бям-демоническое ;)

А вообще интересно больше узнать о самом проекте.

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

Запрещено использовать Unicode-символы в комментариях (только ASCII)

О-о-о-о! В исходном коде, я так понимаю, тоже? В XIX веке было много хорошего, но не всё имеет смысл тащить в XXI.

А пример кода, хоть самый завалящий, на это языке можно поглядеть где-то?

В исходном коде, я так понимаю, тоже?

Это касается только исходного кода С++

А пример кода, хоть самый завалящий, на это языке можно поглядеть где-то?

Это переработка проекта https://github.com/rsashka/newlang (https://newlang.net/), там есть примеры кода.

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

Это касается только исходного кода С++

Т.е. по-русски сообщение юзеру не написать?

Весьма характерно для продуктов бям-кодинга ((
Весьма характерно для продуктов бям-кодинга ((

Там есть раздел с русским переводом.

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

Это сообщение появилось при попытке просто запустить пример в playground без его редактирования...

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

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

Впрочем, хозяин - барин.

Этот код без поддержки уже более трех лет, поэтому его неработоспособность странной не является :-)

Как раз-таки странно — код не является модой и не должен ломаться со временем.

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

ключевые слова с помощью макросов, которые являются частью AST

Макросы являются частью AST? Неожиданное решение.

Ну и 9 разных квалификаторов имен (whatever that means) — это как-то за гранью, иными словами — off by eight.

Макросы являются частью AST? Неожиданное решение.

Почему? Кажется в Julia именно так и сделано.

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

Зато есть возможность однозначной идентификации объектов при совместном использовании всех вариантов квалификаторов, которые визуально различимы и не пересекаются (макрос, модуль, пространство имен, тип, класс, функция, метод класса или его поле или локальная переменная). И опять же, это если требуется, но не обязательно.

в Julia именно так и сделано

Нет, конечно. Изначально в Julia синтаксическое дерево было вообще привинчено сбоку (как в расте, например, из-за чего с макросами в расте вообще дело иметь невозможно). Потом авторы одумались и ввинтили AST между лексером/парсером и intermediate representation (которую решили не выпиливать, ибо долго и дорого). Каждый макрос в Julia (как во всех языках с AST здорового человека: LISP, Closure, Erlang, Elixir, LFE, Cure) — прямо во время компиляции раскрывается по месту в AST, и только потом дерево передаётся дальше в IR.

Можно с первого взгляда определить к какому виду относится этот объект […]

Зачем?

есть возможность однозначной идентификации объектов при совместном использовании всех вариантов квалификаторов

Можно одновременно определить @foo и %foo в одной области видимости? — Если нет, то пардон, вы символами заменяете функции LSP. А если да — это ад, на мой вкус.

прямо во время компиляции раскрывается по месту в AST …

В С/С++ макропроцессор работает до, а не вовремя компиляции и поэтому ничего не знает про AST и делается индивидуально для каждой единицы трансляции. Препроцессор ищет в коде лексему, совпадающие с именем макроса и заменяет её.

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

За счет этого и реализуется возможность создания универсального DSL. В синтаксисе не используются ключевые слова (нет шанса с ними пересечся), а за счет шаблонов замены получается обычных синтаксис func name(): type { return …}; и т.д.

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

Можно одновременно определить @foo и %foo в одной области видимости? — Если нет, то пардон, вы символами заменяется функции LSP. А если да — это ад, на мой вкус.

Если макрос @foo определен раньше, то при создание %foo будет предупреждение, но это не ошибка, так как это объекты разных уровней и их можно использовать одновременно. Макросы хоть и являются частью AST, но они уже полностью раскрыта на момент его анализа и наличие двух определений в одной области видимости влияет только на порядок разрешения имен без сигилов.

Определитесь, пожалуйста: макросы всё-таки являются часть AST (остаются там) или раскрываются (заменяются на определение) до его анализа?

И то, и другое. Определения макросов остаются в AST (это нужно для контроля их области видимости и в случае работы REPL или JIT), но при анализе AST они уже раскрыты (заменены на определения).

Это макросы Шрёдингера, что тут может быть непонятного?

Если не заглядывать в AST, они есть. А если заглянуть — уже нет. Или наоборот.

———

Я хотел ещё про гигиену спросить, но потом решил, что могу не вынести ответа.

Я хотел ещё про гигиену спросить …

Если про личную, то тут действительно лучше не спрашивать :-)

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

фактически идентичны инлайн функциям

Ух ты, новое слово в макросостроении! Может, всё-таки, анонимным функциям (closures)? А то это уже не гигиена, а артериальное огораживание (кровь не поступает).

У вас жена, что ли, из богатой семьи? Или вы таксуете по ночам? Не может же быть, чтобы вам кто-то платил за разработку.

Судя по всему у вас совестное недержание. Удачи вам пообщаться с кем нибудь другим.

Про серебряную пулю себе сохранил прям, очень грамотно сказано

Следующий этап. LLM пишет email вашему директору с предложением вас заменить за некоторый условный flat rate per month.

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

LLM не напишет за вас код, если вы в нем не разбираетесь. Кто-то все равно должен понимать, что и почему должно быть сделано и нести за это ответственность, в том числе и за результат роботы LLM.

Ну понятно что это была шутка. Но если серьезно, представьте себе, что на территории РФ начал действовать новый КвенИИЭкспресс, и доступ в публичные бесплатные модели опять же на территории РФ теперь закрыт ( ну примерно как это произошло со скачиванием mp3 и соответственно рождением Яндекс музыки и звук.ком). И вот ИИ-продавец этой конторы начал рассылать адресные КП всем ЮЛ, которые по их данным использовали бесплатного чатбота для разработки, с условно -бесплатной поддержкой всех функций ИТ - абонентская плата 50-100 $ в месяц.

Сейчас в законе о национальном ИИ все к этому и идет. Не уверен, что будут именно рассылать письма, ведь задачу кто-то должен сформулировать, работу принять и проверить. А вот что ценник на “правильные модели” взлети до небес, в этом я не практически сомневаюсь. Новый вариант импортозамещения :-)

Да, и в один прекрасный момент LLM-компаниям ничего не будет стоить поднять цены за токены ещё выше, ещё выше и ещё выше... Мы живём в капитализме, думаю так примерно и будет. Чтобы "программировать" в будущем нужно будет платить много денег)

Я бы не сказал, что тут будет рост цен.

У LLM-компаний нет какой-то магической уникальности. Да, они впереди, но технологии уже понятны, статьи публикуются, open-source развивается. Модели делают не только OpenAI, есть Google, Anthropic, Meta и другие. И конкуренция постоянно растёт.

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

И по факту до сих пор мы видим не рост, а только снижение цен. Всё упирается в железо, а оно со временем дешевеет и становится мощнее.

Поэтому общая логика рынка это удешевление, а не подорожание.

Про рост затрат на R&D на грани экспоненциального, мы, конечно, умолчим. Ну да, оно же там само как-то делается за чужие деньги.

вайбкодинг - это когда без каких либо проверок со стороны разработчика, чисто на вайбе, по этому не всë программирование с llm это вайбкодинг, если проверяете, рефакторите, направляете, переделываете - это дипкодинг...

вайбкодинг, это от слова vibe, не от тяп-ляп :-)

именно тяп ляп, без каких либо проверок кода вообще со стороны человека, само что-то нагенерило само проверило, только это и есть вайб кодинг...в статье подмена понятий ...разработка с llm не всегда вайбкодинг...

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

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

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

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

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

вайб кодинг - это скорее ругательство т.к. не про профессиональный результат вообще ни в каком смысле, это подход как к петпроекту на выходных это про скорость и низкие когнитивеые затраты и пускание процесса на самотëк... а вот дипкодинг с ллм - это про проф результат...

Классический смысл vibe coding ближе к формуле Карпати: «забыть, что код вообще существует», принимать изменения, не читать diff, копировать ошибки обратно в LLM и двигаться по результату. Simon Willison как раз отдельно подчёркивал: не весь AI-assisted programming — это vibe coding; если ты читаешь, тестируешь и можешь объяснить код, это уже нормальная инженерная работа с LLM как инструментом. https://simonwillison.net/2025/Mar/19/vibe-coding/

https://habr.com/ru/news/878868/

Где вы забываете про код и полностью отдаетесь вибрациям… Код выходит за рамки моего обычного понимания, мне приходится действительно читать его некоторое время. …

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

Андрей Карпати описывает новый подход к программированию, который он называет «vibe coding» (программирование по вайбу/ощущениям). Этот метод заключается в полном доверии искусственному интеллекту, когда разработчик описывает желаемое на естественном языке, а ИИ генерирует код, отлаживает его и вносит изменения, превращая процесс создания ПО в разговорный опыт.  «Вайб-кодинг» основан на использовании LLM (больших языковых моделей) для написания кода, минимизируя ручное написание.  Подход подразумевает минимальное участие человека: код не читается, а ошибки просто копируются обратно в ИИ без анализа.  Метод эффективен для прототипирования и личных проектов выходного дня, но не подходит для продакшн-систем из-за проблем с обслуживанием. 

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

те не стоит цепляться за слово “вайб” …

Вы сами понимаете не логичность собственных комментариев?

Создатель термина лично пишет, почему он его использовал. Из-за получения “вибраций” при новом подходе к программированию. Когда не нужно самому писать код, а за тебя это делает LLM, а ты просто принимаешь его не забираясь в деталях и ловишь от этого кайф. Да, это работает не всегда, и иногда приходится разбираться в неработающем коде, но это мелочи, по сравнению с ощущениями от подобного подхода.

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

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

Вайб колинг - это одно из направлений

Тут описано скорее "парное программирование", где ИИ является партнером

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации