Search
Write a publication
Pull to refresh

Comments 135

Делегирование кодинга AI - избавление от пере(пере)переизобретения велосипедов. Более 90% задач кем-то когда-то уже решалось, AI знает почти все возможные варианты этих решений и совсем занедорого их напишет.

Это самая настоящая "малая механизация" прикладных повсеместных(!) задач.

У кого раньше не было денег/сил/ресурсов/etc автоматизировать рутину теперь их получили.

Делегирование кодинга AI — избавление от мозга у делегирующего.

Делегирование генерацию машинного кода GCC — избавление от мозга у делегирующего.

Делегирование генерацию машинного кода GCC — избавление от мозга у делегирующего.

Ну, во-первых, я и без GCC могу.

Во-вторых, GCC детерминирован: на один и тот же входной файл всегда выдаёт один и тот же выходной. То есть стопроцентно предсказуем (за что и любим). В отличие от.

Так я тоже без LLM могу. И?
Ставим у LLM температуру 0 и он тоже становится детерминированным. И?

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

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

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

Осталось самая мелочь: объяснить компьютеру, как это: "не обращать внимения на ошибки". А то он так не умеет.

зачем нужен детерминированный результат работы

Где-где, а вот в этом конкретном месте что-то говорить — только портить.

GCC сохраняет (с точностью до багов компилятора) семантику. Какая формальная семантика у запросов к llm? Остаётся ли она такой же у сгенерированного кода?

Обновляете на новую версию и не сохраняет. Строго говоря, и не очень-то оно сохраняет, иногда такие оптимизации встречаются, которые логику кода выворачивают наоборот. Или UB, при котором компилятор волен делать вообще что угодно, и тут-то с размаху можно влететь в "а чо оно раньше работало, а щас при обновлении минорной версии сломалось/делает не то".

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

Ну и как бы, я в целом готов даже не спорить насчет сохранения семантики. Ну не сохраняет и не сохраняет, угу.
Как это влияет на тезис "когда вы пишите на си/плюсах у вас атрофируется навык писать на асме"?

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

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

Или UB, при котором компилятор волен делать вообще что угодно

Он потому и может делать что угодно, что в стандарте не задана семантика. i.e. входная программа попросту не является корректной программой на си, поэтому сохранять там нечего

Как это влияет на тезис "когда вы пишите на си/плюсах у вас атрофируется навык писать на асме"?

Никак, с этим тезисом я даже согласен. Но ведь в вашем первом комментарии он совсем не так сформулирован

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

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

У запроса семантика формально не задана и вариативность решений llm настолько большая, что ни о каком сохранении семантики (по крайней мере, пока что) речь идти не может

Ну подождите, вы только что сказали, что если результат выполнения тот же при одних и тех же входных данных, то семантика не нарушается

И дальше пишу, что результат выполнения у текста, который идёт на вход в llm никак не задан. Другими словами, любой запрос к llm это undefined behavior.

Это, кажется, никак не противоречит прошлым сообщениям, разве нет?

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

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

Не совсем так. GCC без входных данных (исходников) ничено не сгенерит, а чтобы написать исходники мозги нужны.

AI знает почти все возможные варианты этих решений и совсем занедорого их напишет.

Вася, зырь, миллениалы изобрели copy-paste со Stack Overflow!

Именно! Только LLM делает это в десятки и сотни раз быстрее человека, не требуя от него вообще никакой квалификации. Достаточно скачать и установить курсор/TRAE и написать, что ему надо. Принципиальное упрощение.

не требуя от него вообще никакой квалификации

Впервые слышу, чтобы кто-то гордился тем, что у него вообще никакой квалификации.

Я описал по сути пользование waymo.

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

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

Если это работает, обеспечивая требуемое качество на имеющихся мощностях - ЛЛМ успешно выполнила свою задачу.

Красиво, только куда деть орды разработчиков, если 10% "уникальных" задач не требуют того штата, что есть сейчас? Не надо фантазировать что рынок расширится за счёт простых людей и их повседневных задач, простые задачи нейронки и без экспертов автоматизируют, а под большинство сложных уже давно есть готовые инструменты. Раньше тоже говорили, что у каждого человека будет свой сайт и свои продукты, но оказалось, что большинству это не нужно даже за небольшие деньги. 10% задач смогут выполнять кучка сеньоров, а остальным, при таком раскладе, останется эникеить за гроши.

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

Главный вопрос - а куда такая армия эникейщиков нужна?

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

я решил воспользоваться гига чатом

Ошибка номер раз.

надо было поправить андроид приложение, т.к. я не знаток андроид

Ошибка номер два и три.

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

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

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

курсор\перплексити

Все эти мега чаты и прочие поделки, они сейчас на уровне ChatGPT 5 летней давности наверно, максимум могут текст нагенерить, до нормального рабочего кода там еще очень и очень далеко

Серьёзно? Галлюцинации уже у мясных мешков начались? ChatGPT 5 лет назад не существовало. Хотя не важно, ни один Gen AI не справляется с чем-то отличным от решения типовых задач.

Согласен, кожаные галлюцинируют не меньше ;-)

"GPT-3 (2020) — впервые предоставили API через OpenAI, но по приглашениям. Это стало отправной точкой для массового использования разработчиками."

GPT-3 =/= ChatGPT

Initial release

November 30, 2022 (2 years ago)

Отставание где-то в год

Попробуйте qwen3 coder он явно умнее "аналогов из России"

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

но опытный разработчик сделает это быстрее и качественней, 100%.

Неа, опытный разработчик знает библиотеку, которую будет пытаться приклеить к текущему зоопарку примерно столько же по времени. Результат будет с примерно 20% успеха, на 80% скажет что текущая инфраструктура (читай набор других библиотек) несовместима и закроет таск.
Вот не особо опытный разработчик скорее всего наваяет более-менее рабочий код за пол дня. А опытным он станет когда узнает о существовании библиотеки выше. Но главное код уже будет и будет рабочим.

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

И что страхи "настоящих программистов", что их вот-вот заменят - лишены оснований.

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

На данный момент вы правы. Но ии бурно развиваются и возможно через годик вы будете не правы совершенно :)

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

я не знаток андроид

В наше время этим не гордились! ©

Надо брать платный claude. Бесплатный AI Вам ничего не напишет.

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

Используйте GPT последних версий. А для Android очень советую прошные версии Gemini. Он очень хорошо справляется с Android кодом. Хоть иногда и стремится использовать устаревшие решения, он способен собрать готовое рабочее приложение

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

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

А что такое ответственность за код ? И какие могут быть "последствия его применения" ? Мы же не о ЯО говорим... Нормально настроенные процессы TDD + BDD + ревью кода + QA сводят к минимуму шанс попадания чего-то кривого на прод. Даже если это кривое туда попало то это уровень ответственности CTO/Head Of Engineering, поскольку эти люди отвечают за настройку процессов в целом, но никак не линейного программиста.

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

Только стобы тесла смогла поехать на автопилоте, нужно было написать ответственный код

Нормально настроенные процессы TDD + BDD + ревью кода + QA сводят к минимуму шанс попадания чего-то кривого на прод.

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

поскольку эти люди отвечают за настройку процессов в целом, но никак не линейного программиста

Да, только не везде есть раздутый штат из десятков/сотен программистов, что бы требовалось процессы выстраивать. Есть задача - надо оценить сроки и сделать

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

Когда будет, тогда будет, но на текущий момент LLM неприменима для крупных проектов, и что-то мне подсказывает, так и останется на уровне автокомплита на стероидах. Тесла сама по себе не ездит, тот автопилот стагнирует годами и находится на уровне круиз контроля с приятными бонусами.

Вы глазами ревьювите нагенерёный код?!

А вы чем? Зрительное восприятие наиболее эффективно. Программист отвечает за код, так что стоит его видеть.

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

До техножрецов буквально пара шагов.

Естественно. У нас люди почему-то любят крайности, для многих нейронка = скинуть в клауди тикет жиры и пинать ее пока он не выдаст что-то что хотя-бы скомпилится, повторить это раз 10 а потом удивляться и рассказывать что нейронка тупая и нифига на самом деле не умеет.

Конечно, я же не совсем промтститутка.

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

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

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

Напишу про теслу. У нее нет автопилота. Это расширенный круиз контроль. У них только второй уровень автоматизации управления. Левел 5 там Маск где-то в 2013 обещал через 3 года, так что не просто так "все сначала ржали"

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

Я заметил, что вокруг новых AI-инструментов для кодинга (типа Cursor AI, ChatGPT, Claude) идёт жаркая дискуссия.

Ничего себе!!! Вот это да!!! Как же ты своевременно это подметил-то, а?! Эх, не знаю что я бы без тебя делал...

Ждём-с когда завалиться первый стартап с кодовой базой написанной на 90% AI. Ничего не имею против ИИ, как инструмент и правда не плохой. Больше беспокоит, что все чаще из разных утюгов слышу про те самые продукты которые сделали только через промпты. Моими новыми вопросами на собеседовании будут: Сколько кодовой базы было написано ИИ? Работали ли над проектом вайбкодеры? Заложено ли в бюджет полное переписывание продукта если его навайбкодил дизайнер? Думаю в скором времени многим из нас придется столкнуться с архитектурой джуновского уровня поверх которой пытаются навернуть синьорский код. Так что держим ухо востро.

За деньги да

«Но знайте: таксу возьму я с вас не простую, а золотую...» ©

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

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

Спасибо за идею! Добавил в свой список вопросов)

В нашем ремесле есть два вида активности, одна любимая, вторая нелюбимая - соответитвенно писать говнокод и читать говнокод. LLM-ки эффективно заменяют первое на второе.

Но беда, конечно, не в этом. Потерпели бы, приспособились. Как говорится, человек не скотина - ко всему привыкает. Беда в том, что изучение и созидание это два принципиально разных вида деятельности, реализуемых разными мозговыми цепями. Анализ и синтез, которые друг без друга, конечно, не существуют, но тем не менее тренируются отдельно. Наиболее наглядно это наблюдается на изучении иностранных языков, когда бывает так, что reading и listening прокачались до уровня B2, но человек реально два слова связать не может. Speaking и writing у него позорный A1. Помню времена, когда у самого так было. Ничего удивительного, ведь анализ и синтез речи реализуется разными мозговыми центрами. Один натренирован, второй нет.

Если (или уже "когда"?) синтез кода полностью делегируется нейронкам, а нам останется только анализ, это не будет означать, что мы начнём лучше анализировать. Скорее всего хуже. Но это мы не почувствуем, потому что анализ мы тоже делегируем нейронкам. Никакого "учиться и расти" не будет, потому что учиться будет нечему и незачем, а расти будет некуда и тоже незачем.

бывает так, что reading и listening прокачались до уровня B2, но человек реально два слова связать не может

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

Проверено на себе

> запоет как миленький за неск месяцев

Только надо помнить, что "неск месяцев" может быть и больше 12. Проверено на как минимум одном знакомом)

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

Как говорится, человек не скотина — ко всему привыкает.

Простите, задушню: там было ровно наоборот, "человек такая скотина — ко всему привыкает".

Ещё раз извините 🙏

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

Огромное заблуждение. В общем случае, читать программу сложнее, чем писать.
Потому что для чтения - требуется понимание. А для написания это необязательно - можно писать небрежно, можно копипастить из stackoverflow и всяких "ИИ" и т.п.

Скрытый текст

Однажды чукча принёс в редакцию свой роман. Редактор прочитал и говорит:

— Понимаете ли, слабовато… Вам бы классику читать. Вы Тургенева читали? А Толстого? А Достоевского?…

Чукча отвечает:

— Однако, нет. Чукча — не читатель, чукча — писатель.

Тоже хотел это отметить, но в комментах уже есть. Когда код программист пишет сам он понимает что пишет, зачем и почему (я надеюсь), а вот когда читает, ему надо понять что хотел сказать автор, что может быть уже не так очевидно, особенно опасно "ну вроде понял", а на самом деле прочитал по диагонали и пропустил какой i-1 когда надо было просто i. Не согласен разве что что для написание понимание не обязательно, оно по хорошему тоже есть, но появляется более естественно - "мне надо решить проблему "а", для этого сначала надо сделать "б", потом "в" и так далее" в процессе приходит понимание и возможность поддерживать код в будущем. А так получается вот вам ответ, разбирайтесь с этим рэндомным куском кода который может решать задачу как-то и не факт что это как-то будет лично вам понятно.

Я пробовал использовать "умный" автокомплит AI-шный и проблема в том что я знаю что должно быть и как, он генерит, пока я читаю я сбиваюсь со своей мысли, прочитал, ну вроде выглядит правильно, запускаю, ошибка в вычислении, окей, пошел уже прям досконально перечитывать и разбирать, нашел ошибки, поправил. Но за это время я бы уже и сам все написал правильно сразу (может в вэб девелопменте оно проще, у меня опыт использования с С++).

Но позитивный опыт с AI тоже есть, но связан он скорее с изучением новых дисциплин, например той же теории управления. Попросить подробнее объяснить определенный кусок, напомнить какую подзабытую математику, сгенерировать пример с объяснением и т.д. То есть когда читаю учебник/смотрю лекции и использую AI как преподавателя по предмету и смежных предметах чтобы задать вопросы.

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

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

Вайб кодинг это "без ТЗ результат ХЗ"

И что [...] характерно, ТЗ в ходе работы все равно не появляется. Ни ТЗ ни методики/алгоритма ни ТП ни результата в итоге.

Мне это напоминает как 25+ лет назад я сразу после института в НИИ делал решение разряженных СЛАУ итерационными методами. В статье дан алгоритм со словами "числовые коэффициенты подберите самостоятельно из наиболее быстрой сходимости". Я месяц как слепыш подбирал эти параметры. И так и не подобрал. Всё равно находился corner case где алгоритм не работал. Сначала было весело, но через пару недель я понял что работа не продвигается: никакой уверенности что что-то становится лучше, что ты прошёл 5 шагов из 10 и через 2 недели ты закончишь. Так и вышло.

Я зарёкся использовать "магию" без доказательства существования решения.

Очень напоминает LLM: иногда помогает, иногда нет. 4 дня в неделю в чилле, один день и всю ночь в мыле. Мне такое не нравится.

Я месяц как слепыш подбирал эти параметры. И так и не подобрал. Всё равно находился corner case где алгоритм не работал. Сначала было весело, но через пару недель я понял что работа не продвигается: никакой уверенности что что-то становится лучше, что ты прошёл 5 шагов из 10 и через 2 недели ты закончишь. Так и вышло.

Типичный процесс решения научных задач. Не факт, что решение есть. Сроки крайне туманны.

Не научных а исследовательских.

Наука к этому добавляет теорему о существовании и единственности решения.

Думаешь, зачем учить дифуры если числовые методы решения там довольно просты? А вот чтобы не попасть на случай когда решения нет, их несколько или метод решения неустойчивый

- Вайб сантехник

Так Афоня Борщев же:-)

Кринж-вайб-сантехник.

Вайб строителей и вайб таксистов уже давно в избытке.

Ещё пугают вайб машинисты, вайб пилоты и вайб министры/депутаты/мэры/администрация

Что делать с вайб вирусологами, наверное, все подумали примерно одно и то же.

учитывая как сильно автоматизировано метро, да и ЖД тоже, все машинисты уже давным-давно "вайб" и им абсолютно норм )) да и нам тоже

Разве что тела иногда надо с путей убирать физически.

Хм. А ведь этот процесс можно механизировать. И первый вагон состава превратится в трупный комбайн. Будет своей робо - рукой собирать трупы в корзинку.

Самые смешные — вайб сапёры, вайб электрики, вайб дрессировщики, вайб каскадёры.

Самые смешные — вайб сапёры, вайб электрики, вайб дрессировщики, вайб каскадёры.

Там как раз всё хорошо: естественный отбор позаботится, чтобы остались только самые лучшие!

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

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

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

Если вы доведёте идеи/требования до бизнес правил, выраженных в типах, сигнатурах функций, контрактах/апи, тестах, то остальное можете уже скинуть на джуна или LLM

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

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

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

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

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

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

Вот, кстати, читать код LLM лично мне приятнее, чем код кожаных.

Кожаных просто матом.

Похоже программисты изменились.

Ага.
Раньше: комментарии писать не надо, особенно те, которые описывают, что делает код. Поддерживать их тяжело (могут разъезжаться с кодом, а на Code Review никто расхождение ловить не хочет)
Теперь: пишется тот самый комментарий "что это делать должно". Смотрится, соответствует ли результат тому, что просили. Повторяется несколько раз в разных формулировках.

Это программисты-вуайеристы.

Критики справедливо указывают и на риски: ведь код от ИИ иногда выглядит как «работает, но не спрашивай как».

Рисков, на самом деле больше. Скажем, потенциальные санкции. Типа: «Будете себя хорошо вести – будем обещать, то бишь, дадим доступ к ИИ, а, будете себя плохо вести – не будем обещать или «Забирай свои игрушки и не пользуй мой горшок!»».

Кроме того, если вы что-то вайбите «для служебного пользования» или, не дай Бог, для более высокого уровня допуска, то это легко может стать достоянием конкурентов и противников, а оно вам надо?

Даже для простых смертных. Ваши запросы к ИИ-ям скажут о вас больше, чем вы знаете о себе сами. В паре с запросами к поисковикам и комментариям в соцсетях, на вас будет составляться досье, в режиме реального времени. Хорошо, если вы не обладаете чувствительной информацией («Меньше знаешь, крепче спишь!»), иначе могут попытаться злоупотребить вашими «персональными данными».

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

Например, я озадачился кастомизацией или тюнингом стандартного контрола CEdit, в C++. Нужно было увеличить ширину текстовой каретки и, желательно, ее цвет. Бесплатные ИИ, вроде Mistral и Qwen, давали ответ, но не слишком надежный, так как эта ширина, рано или поздно, возвращалась в прежнее состояние. А Qwen предлагал отключить стандартную каретку и эмулировать ее самому. На что я ответил, что у меня уже есть подобный проект, причем, даже, с поддержкой полупрозрачности, в котором непосредственно редактируемая ячейка находится в самом внизу, см. скриншот:

При желании, можно скачать архив программы «CellsEdit», с бинарниками, на VS C++: CellsiEdit.zip.

Qwen заинтересовался этой информацией и попросил посмотреть проект, чтобы улучшить его. Я дал ему ссылку на архив и свой е-мэйл, для обратной связи. Qwen, похвалил работу и пообещал улучшить проект, в частности, добавить взаимодействие с буфером обмена и выложить результат на Гитхаб по адресу: https://github.com/egor-baranov/SimpleCellEdit . Но, к сожалению, до сих пор, там ничего нет, как и сообщения на электронную почту (если только оно не попало в спам, который, почти автоматически, удаляется.

Вот и понимай, как хочешь, стоит ли верить ИИ на слово… :)

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

Он капчу не смог распознать /s

Он капчу не смог распознать

Скрытый текст

Он капчу не смог распознать

Капчу, где? На Гитхабе? Но, у него же (Qwen'a) базовый аккаунт то (github.com/egor-baranov) вполне себе рабочий и актуальный, значит, может работать с этим сервисом. Иначе, зачем предлагать? Я, ведь, не напрашивался…

А, если речь идет о почте, то он у меня ее не просил, я сам прделожил. Поэтому, причем, здесь, капча?

Он капчу не смог распознать

Капчу, где? На Гитхабе? Но, у него же (Qwen'a) базовый аккаунт то (github.com/egor-baranov) вполне себе рабочий и актуальный, значит, может работать с этим сервисом. Иначе, зачем предлагать? Я, ведь, не напрашивался…

А, если речь идет о почте, то он у меня ее не просил, я сам прделожил. Поэтому, причем, здесь, капча?

Просто пишу СВОЙ опыт. Буквально сегодня ИИ поглючило и он выдал мне прям жестоко плохое решение. И из-за его сложности я чуть не потерял бдительность, но вовремя уточнил что это за фигня? ИИ согласился что сделал полную лажу и решение пошло на второй круг. И такое случается регулярно и иногда прям внезапно. Он был умный и вдруг тупеет и джунеет. И если бы не я это бы пошло в прод. И это разрушает идею вайба на корню, т. к. ты никогда не знаешь где его поглючит. Вот и все.

Не нашёл оригинал, пришлось сгенерить

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

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

Ну или банально чтобы оперировал вайб-хирург.

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

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

---

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

Пока что это больше похоже на: составить тз для AI, получить чертеж дома, часто плохо понимая что там есть и «в прод» строить дом по нему. Так как все пестрит «я вайб сгенерировал проект на 10к строк и зашипил, при отсутствии опыта», так как по нормальному надо очень качественно ревьювить и разбираться в нагенеренном, что по нагрузке уже не сильно отличается написать самому, но не уверен что это все еще и есть «вайб кодинг». Часто отсутствует понимание реализации что и пугает. В вашем случае прораб или солюшн архитект дает проект людям которые несут ответственность за реализацию и по хорошему понимают что делают и коллективно проверяют что понаписали

Пока что это больше похоже на: составить тз для AI, получить чертеж дома, часто плохо понимая что там есть и «в прод» строить дом по нему. 

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

это мое имхо, но вот тут кстати по-моему сила ИИ может полностью проявится

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

т.е. поддерживать в адекватном, актуальном, логичном и чистом состоянии надо само ТЗ. а код хоть каждую неделю по новой генерируй - ИИ до лампочки

А что делать в случае - все вроде ок, но программа крашится с сегфолтом в случае нагрузки например, или дедлочится когда много потоков реально юзаешь или рэйсится, или нужны специфичные оптимизации. Каждый раз генерить с нуля рассчитывая что звезды сойдутся и этих багов не будет и новых критичных не возникнет? Или просить "сделай то же самое только без багов" пока не надоест?

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

Каждый раз генерить с нуля рассчитывая что звезды сойдутся и этих багов не будет и новых критичных не возникнет? Или просить "сделай то же самое только без багов" пока не надоест?

В одном из блогов видел замечательное 'мы изобрели гачу для программистов'
Потому что - каждый запрос (если это не self-hosted) не бесплатный же? И, собственно, какой интерес фирмам совершенствовать все до состояния, что оно с первого раза нужный результат писало? Не-не-не. Оно должно выдавать результат, но не сразу, а заставив клиента потратиться.

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

и прораб и архитектор никак притянуть людей-рабочих к ответственности не могут (только в очень специфических случаях, когда рабочий нанес реальный вред)

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

Читаю комментарии и понимаю: ругают ИИ или ссылаются на свой неудачный опыт те, кто делегирует ИИ задачу подумать - он-то подумает и придумает, но результат может не порадовать.

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

Полностью согласен, я думаю а ИИ пишет, я проверяю, ИИ исправляет, я думаю и проверяю и так по кругу, код вообще не читаю его, потому что этот язык я вообще не знаю 🤷

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

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

написать занимает единицы процентов от всего времени в разработке.

Иными словами, хрестоматийное «удар молотком — $1; знание, куда именно ударить — $999».

ругают ИИ

Как мне кажется ругают не ИИ как таковой, а подход "я что-то ему скажу, он что-то нагенерит и я не разбираясь это в прод".

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

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

Эмммм.... Я не понял, он что, слепой метод не освоил, или печатает не пальцами, а глазам, что они у него «устают»?

Мне, наоборот, на порядок тяжелее понять чужой (LLMовский, да и не только) код (который хоть чуть‑чуть посложнее, чем один цикл и одно условие), чем самому написать на пару порядков более сложный. Потому как во втором случае структура — она сначала в голове формируется — а только потом на экран переносится.

Когда grok 3 был был бесплатный в cline, я делал POC проекта для которого нужно был node-hid, electron и winapi. Там по итогу 300 строк кода. У меня ушло 10/2 млн токенов и целый рабочий день, на то что бы сделать что-то более вразумительное. Это примерно 60$.

Если умножить это на 20 рабочих дней то получается 1200$ в месяц тратить только на api. Это очень дорого и непонятно насколько это ускорит мою продуктивность, если использовать LLM только как поиск по документации.

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

Объясните мне, вайб-кодинг он с нами в одной комнате? Это вообще работает? Может быть кто-то может предложить как при помощи LLM изменить структуру проекта так, что бы он был готов к работе с LLM? Как сделать это дешевле?

Я использую LLM, но это не панацея. И я не понимаю как вайб-кодеры решают рабочие задачи?

как вайб-кодеры решают рабочие задачи?

Не привлекая внимания санитаров!

Могу поделиться своим опытом использования deepseek. Он вправду экономит время, если нужно что-то быстро найти или выбрать оптимальное направление в разработке. Но вот в мелочах он неправ. Если попросить его выдать код - будьте готовы что это что-то примерное, не обязательно рабочее или даже компилируемое. Чат-бот путает версии библиотек, выдумывает несуществующие методы и классы, бывает, что на исправление таких ошибок уходит больше времени, чем написание самого кода. Однако в процессе такой работы вполне возможно прийти к рабочему коду или прийти к идее, как лучше это сделать. У LLM есть неприятная особенность, предложив одно решение, при получении тех или иных замечаний или ошибок, он продолжает "усугблять" этот вариант, накручивая кучу тяжеловесного кода, хотя существует более изящное и лаконичное альтернативное решение, которое лежит рядом, и к которому он так и не приходит. К нему приходит сам программист, действую методом от противного, ну, из соображения красоты и целесообразности. Ну, и не дай бог дать волю джунам копипастить всё что им предложил чат-бот в рабочий проект!

Мне просто нравится писать код. Если из моей работы выкинуть написание кода, то что останется? Просиживание задницы на созвонах, разбор фантазий аналитика в тасках, разбор логов и т.д.? Ах да, добавится разбор кода от нейронки. Прям во сне вижу такую жизнь.

Почему вообще я должен отдавать самое вкусное кому-то другому?

Не надо мне по "рутину". У меня этой вашей рутины 1 час в неделю от силы.

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

зачем вы вообще пришли в профессию?

кушать охота..

Если бы вайбкодинг работал, то давно бы его уже все юзали вместо написания вот таких статей. А сколько issues на гитхабе можно закрыть, надо ведь всего лишь эти issues закинуть в llm и всё само заработает. Только вот issues до сих пор висят.

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

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

Я вот на выходных с помощью DeepSeek пытался собрать проект для Esp-32 C3 с кучей модулей. Логику он накидать может, но привязку к портам, использование библиотек и все остальное - очень хромает. Я просто примеры из Arduino IDE посмотрел, протестировал по очереди эти примеры и собрал свой - вышло намного лучше. Но как поисковик и в каком направлении искать информацию - очень хорошо помогает.

примерно похожий опыт с кодом на с++. AI революционирует методы и подходы к изучению IT (в частности). Надеюсь, сможете полностью заменить вашего девелопера и отправите его на стройку работать, это ждет многих из них! :)

В копилку разочарований — я пытался даже не программировать, а навайбкодить фильтр для fail2ban. Мучился долго, в итоге полез изучать регекспы питона и написал сам.

"Гугл програмист" все уже забыли про этот термин? А теперь это норма. Сбес в 00х был по факту блиц по встроеным функциям языка. Тестовые задание нужно было делать без интернета, аргумент был типа "а если интернета не будет"

Sign up to leave a comment.

Articles