Блог им. Buybuy

Vibe Coding - последний гвоздь в крышку гроба обычного программиста

Добрый вечер, коллеги!

Не все из вас слышали про vibe coding — на деле это просто AI Code Assistant.
Ну т.е. ты этой энжине пишешь на русском, что она должна запрограммировать — и она делает это )))
Кстати, можно и голосом объяснять — для всех топовых решений есть голосовые плагины )))

Когда я впервые познакомился с Cursor AI — моему радостному удивлению не было предела )))

Вкратце — это такой форк VS Code, которому ты спокойно пишешь по-русски, что он должен запрограммировать — и он, сцуко, программирует.
При этом весьма неплохо.
Более того, для всех распространенных языков (python, java, JS, TS, C#, C++, ...) предусмотрена неплохая такая отладка (для менее распространенных языков надо устанавливать VS Code extensions).

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

Если немного подумать — все не так красиво, а единороги не срут цветами не такие уж и необычные.

Тут надо понимать, что LLM — это просто статистический синтаксический анализатор, он вообще не про семантику, тем более про интеллект.
Ну т.е. эта энжина продолжает начатую тобой фразу так, как ее продолжили бы еще 100500 ебланов людей.

Соответственно, когда она продолжает диалог с тобой и пишет код — это будет код не от гуру вроде Андерса Хейлсберга или Джона Кармака, а обычный говнокод от рукожопых индусов...
1. LLM ищет код в доступных кодовых базах вроде github, stackoverflow etc.
2. LLM никак не умеет оценивать качество кода, а просто ищет что-то похожее

Соответственно:
1. Мы легко (как по волшебству) можем найти код для решения простой общеизвестной задачи
2. Мы никогда не найдем код для решения сложной задачи, ну или которую никто еще не решал

Дальше — хуже:
1. С развитием AI Code Assistant популярные языки (Python?) станут еще более популярными
2. Качество генерации кода на менее популярных языках неизбежно будет падать

В этот момент самое время вспомнить гениальный рассказ Уильяма Тенна «Нулевой потенциал». Он короткий (страниц 10 наверное), но я все же позволю себе краткий пересказ, т.к. резиденты СЛ походу пролистывают только книги Баффета/Грэма и разных коучей.

«После ядерной войны в США возникли массовые мутации среди населения. Назрел вопрос выбора эталона среднего американца — человека в среднем соответствующего всем стандартам прошлого. Такой человек был найдет и очень скоро стал президентом США в эпоху войн и разрухи. Более того, его усредненность в этоху мутаций привела к невиданной популярности и вскоре он возглавил весь мир. Весь мир охватило желание усреднения — средний человек стал эталоном человечества. Постепенно прогресс замедлился, а потом и вовсе остановился. На фоне упадка человечества стала быстро развиваться раса разумных собак родом с острова Ньюфаундленд. Собаки быстро учились и вскоре стали использовать вырождающееся человечество просто как машину для кидания палок — ловля брошенных палок по-прежнему занимала собак. Но впоследствии собаками были изобретены машины, которые кидали палку дальше и точнее, чем человек — и человечество постепенно исчезло с лица Земли...»

Кагбэ все понятно
1. AI Code Assistant позволяет лего и дешево использовать уже созданный код
2. Без знания архитектуры построения программных продуктов этот код в-основном бесполезен
3. Критичный код (ОС, RT, низкий уровень, безотказные системы) будет писать человек
4. Человекописателей станет меньше, их кастомный код не будет попадать в общий доступ, в отличие от говнокодеров
5. Среднее качество доступного автоматически говнокода будет неуклонно снижаться

Поэтому сейчас все шикарно
1. Я развернул сайт за 2 часа (вообще никогда не знал, как это делается)
2. Я написал прототип (MVP) забавного интернет-продукта за 5 часов
3. Я круто автоматизировал свои рыночные эксперименты на Matlab (не в части логики, но в части обработки данных и обвязки)
Ну т.е. что-то простое и незнакомое можно наваять быстро.
Можно быстро изучить новую область и поиграться с работающими прототипами.
Сделать что-то серьезное — вряд ли.
Качество неуклонно будет падать — говнокод всегда имеет тенденцию размножаться.

Что вы думаете по этому поводу, коллеги?

С уважением
★20
71 комментарий
LLM — это просто статистический синтаксический анализатор, он вообще не про семантику, тем более про интеллект

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

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

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

Весь взлет LLM в последние 10 лет обусловлен 2-мя вещами
1. Неожиданным успехом статистического синтаксического предсказания
2. Неожиданным успехом Reinforced Learing

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

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

Вы совсем не в теме

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

С уважением
avatar
Мальчик buybuy, это вы не в теме, рассуждая о семантике. Семантика — это и есть результат работы нейросети, а не её основа. Говорить, что нейросеть «не про семантику» значит не понимать, что такое семантика и то, как нейросеть хранит данные.
avatar
Auximen, ну хорошо, о Гуру!

Если нетрудно — черкните здесь пару слов про семантику.
Варианты на Ваш выбор:
1. Семантика в естественных языках
2. Семантика в языках программирования

С уважением
avatar
Мальчик buybuy, в основе семантики лежат веса и связи между единицами, в которые преобразованы входящие данные (в дендриты, в заряды, в числа и т.д.), веса и связи образуют (интерпретируются) в значения. Говорить, что нейросети не про семантику всё равно, что говорить, что человеческий разум не про семантику. Это в некотором смысле так, семантика — это результат работы нейронной сети, хоть искусственной, хоть нейронной сети человека или животного, без разницы, принцип один и тот же.
avatar
Auximen, не, это за отмаз не канает

Нейросети — это точно не про семантику

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

С уважением
avatar
Мальчик buybuy, ОМГ, в таком случае ваш разум это тоже не про семантику, поскольку он построен на такой же нейросети, работающей по тем же принципам, что и ChatGPT или Grok.
avatar
Auximen, хммм

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

© Людвиг Витгенштейн

P.S. Не надо умничать, уважаемый. За умного Вы все равно не сойдете. Попробуйте для начала просто отвечать на поставленный вопрос.
avatar
Мальчик buybuy, он и не умничает, он оператор, про которого написано в посте, он просто транслирует
avatar
Auximen, пост сгенерирован НС)
avatar
Мальчик buybuy, омг. Вы вообще читали хоть что-то из серьёзной литературы по семантике в ЯП.
Кто у вас там годами бьётся....
Почитайте лекции Кембриджа, что ли
www.cl.cam.ac.uk/teaching/0809/Semantics/notes-mono.pdf
avatar
Мальчик buybuy, а возможны ведь вредоносные закладки в готовый код? То есть, жулики под какую то задачу пишут много вариантов с закладками.
avatar
master1, уже есть варианты. ИИ часто генерируют код с использованием библиотек с выдуманными именами. Хакеры начинают публиковать такие библиотеки, программисты делают copy&paste галлюцинации ИИ и получают трояна.
avatar
Auximen, вы забыли упомянуть, что он «статистический синтаксический анализатор» типа био-робот  с удобным голосовым управлением !
Не все правда могут правильно пользоваться этим самым управлением, обычно этим управлением хорошо владеют всякие Гуру, Жрецы, Масоны и прочие мошенники.
avatar
Auximen,

> поскольку принцип работы нейронных сетей и у человека и в LLM одинаков

Claude прочитала больше книг по математике чем любой ныне живущий математик. Но складывать большие числа не научилась. Вот такие общие принципы работы нейронных сетей и мозга человека.
avatar
Auximen, это тебе показалось. Связи у нейронной сети заданы изначально и не меняются в процессе обучения, обучение сводится к подборке коэффициентов. А у людей в процессе обучения формируются новые связи между нейронами.
Ну раз сайт написал за 2 часа, то смартлаб за три часа напишешь. Давай дерзай ))) Когда получится — зови, буду первым пользователем
avatar
"  говнокод всегда имеет тенденцию размножаться."  ---  чем он и ценен  для тех кто его создает.   как и всё аналогично ему   во всем мирке.  любой сорник сильнее во сто крат…
avatar
Влад, ничего нейросети не копируют, это работает принципиально иначе. Копирует обычная программа, которая хранит в базе данных некоторые данные и выдаёт их копии в ответ на запрос пользователя, пример таких программ — классические поисковые системы. Если вы «препарируете» нейросеть, вы там не найдёте те данные, на которых обучалась нейросеть, ни в сжатом виде, ни в закодированном, их там просто нет, соответственно и копировать нечего.
avatar
Auximen, они «фишку не рубят» потому как физ-мат то образование у них есть, а вместо филосовско-гуманитарного у них «нуль на палочке», поэтому им бесполезно объяснять, как и тем у кого наоборот гуманитарные знания есть, а остального нет, для таких ИИ ваще «шайтан машина».
avatar
Судя по восторженному отзыву, автор еще не столкнулся с ситуацией, когда LLMка будет ему втирать, что метод/параметр существует, когда его в реальности не было никогда. А формошлепит, да, хорошо. Замена стакловерфлоу отличная.
avatar
BobbyKotick, и человек тоже может думать, что параметр существует, хотя его не существует. Никаких отличий с нейросетями. В основе и человеческого интеллекта и ИИ лежит один и тот же принцип нейронной сети.
avatar
Auximen, какой принцип? Ну и как работает то они, пример можно? а то ученые сказали, что ещё не одну сотню лет пройдет, пока сделают что то подобное мозгу человека. У мозга есть память тактильная, эмоциональная и тд, что железяке ни какой формулой не вложить. Весь текущий ИИ это не более, чем навороченный алгоритм.
avatar
VалиБакS, да нет никакого смысла делать ИИ как человек. Глупости это, пока человек не понял что он не может летать как птица, он не смог изобрести самолёт
avatar
Это все Ок бро, но ты хотя бы c#  знаешь? Не говоря уже о с++?
avatar
Reznor, конечно

С уважением
avatar
Школота дорвались до  AI
avatar
ой ну ладно ныть...
я вот помню времена когда тру прогеры писали чисто на асме… и если ты там что то выпендривался на фортране или паскале тебя считали быдлокодером...

помню вел проект в 60000 строк на ассемблере… причем почти без коментов и без документации… причем это были 90ые и кодеры боялись что их уволят поэтому скрысили документацию и потерли коменты… вся документация был замызганный засаленный до дыр лист формата а1 подклеенный газеткой аиф чтоб не развалилось... 

а вы говорите ии…
avatar
Влад, я не писал, что нейросети не обучали, я написал, что нейросети не «копируют». Между «обучением» и «копированием» есть разница. В нейросетях не хранятся «куски кода», которые они копируют в прямом смысле (достают и предоставляют пользователю готовый текст из базы данных, посчитав, что он удовлетворяет условиям запроса). Нейросеть может написать код, которому её не обучали (например, написать алгоритм на PHP, хотя её обучали PHP отдельно и алгоритму отдельно, это доказано в ходе исследований).

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

Нет принципиальных отличий между нейронной сетью человека и нейронной сетью машины, и то и то работает по одному и тому же принципу.
avatar
Auximen, как работает на примере то простом може те описать? А то выходить вы просто знаете как будто грааль, но делится не хотите, прям как гуру с платными каналами) 
avatar
А почему речь только про программирование? Например, диагноз уже сейчас ИИ ставит лучше среднего врача. А значит, скоро медицина в значительной степени будет обслуживаться ИИ. Ну и соответственно, со временем качество медицины, по крайней мере, для обычного пользователя, будет падать. Именно потому, что ИИ — это копирование же созданного. Т.е. развитие замедлится/остановится. И думаю, много таких областей будет.
avatar
Влад, вы просто пишете ерунду о «копировании» нейросетями кода, не понимая, как это работает.
avatar
Не знаю что так копают под программистов все время. Куча профессий умрет вот вот, а «программизм» просто изменится.
Влад, вы написали ерунду и я вам объяснил, почему вы написали ерунду. Теперь вы мне пишете, что мне следовало промолчать. Нет, вам следовало промолчать и не писать ерунду о «копировании» кода нейросетями.
avatar
5. Среднее качество доступного автоматически говнокода будет неуклонно снижаться

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

НО. Скорее всего ещё есть хороший запас чтобы выжать качество из имеющихся данных, чисто за счет архитектур LLM и подобного. + Вероятно, до того как программисты «отупеют» скорее всего они сначала будут бенефитить от ИИ — т.е., считаем, что кодить LLM научились, высвобождающееся время программисты могут потратить на задачи более высокого уровня — архитектура и т.д., т.е. когда тебе надо меньше время тратить на лоу левел, ты активней развиваешься в более хай левел. 

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

avatar
Replikant_mih, это было бы так, если бы речь шла о машинах, которые собирают данные, хранят и воспроизводят в ответ на запрос пользователя. Нейросети не собирают, не хранят (а, значит, не могут копировать) данные, но они используют данные для составления сложных моделей нейронных связей и весов. Также нейросети умеют логически размышлять и использовать обобщения. Это значит, что нейросеть отдельно можно обучить языку программирования, например, Java, и отдельно математическому алгоритму, и нейросеть сможет описать этот алгоритм на Java.

Например, исследование Drori et al. (2022) показывает, что OpenAI Codex, модель, предварительно обученная на текстах и дообученная на коде, способна решать университетские математические задачи, генерировать программы и объяснять решения на человеческом уровне. Codex достиг 81% точности в автоматическом решении задач по математике, включая написание кода на языках программирования, таких как Python.

Иначе говоря, гипотеза автора поста о том, что «среднее качество доступного автоматически говнокода будет неуклонно снижаться» из-за того, что нейросети будут обучаться на собственном коде, несостоятельна, потому что он не учитывает такие инструменты, как обобщения. Для того, чтобы эта гипотеза реализовалась, должно снижаться не только качество кода условного Java, на котором обучается нейросеть, но и качество иных данных, например, работ по математике, физике и т.д., на которых обучена нейросеть и алгоритмы которых нейросеть может описать на условном Java, обобщая полученные знания.
avatar
Auximen, о как!

Теперь, уважаемый, расскажите нам, как по-вашему работают reasoning модели? )))
И как они могут улучшить код? )))
(если могут)

С уважением
avatar
Мальчик buybuy, написать слово reasoning вместо 'обоснование ' — это что было профессиональнее, да?
avatar
Auximen, Но обобщать она учится на примерах, входных данных, если качество входных данных ухудшится — может ухудшиться результат обучения. Примерно так же как с «количеством», первые версии обучали на меньших объемах данных, новые на больших — это одна из причин того, что новые модели умнее. Если на вход подать то же кол-во, но хуже качество — результат обучения моделей будет хуже, соответственно в среднем будут хуже все характеристики, в том числе ризонинг.
avatar
Replikant_mih, После определенного этапа развития ии, начинается самообучение, поэтому хуже не станет
avatar
Взять пример гуи-формы (нагулить все варианты) и подогнать его под размер, — не комплексный процесс.
Проблема в длине контекста, сделать простую формочку с запросом и прогнать тесты — вполне линейный подход, как перевод с языка на язык.
Сделать большую комплексную систему — уже мультиагентный процесс, где важен навык коммуникации. Решать ее в лоб, методом перебора тестов — уже не получится.

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



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

Людям нужен не код, а решение их проблемы. Не будет секретарша Леночка вайб кодингом заниматься, она спросит что делать и Васи-программиста.
avatar
«Город» К.Саймак написан в 44-51 годах. 
avatar
Ed Wilde, чтобы понять рекурсию, нужно понять рекурсию. ИИ развивается за счет анализа существующих данных. И это сейчас ИИ обучается на данных, созданных человеком. А если большая часть данных для анализа тоже сгенерены ИИ? Все, развитие прекратилось. Дальше, среднему врачу проще обратиться к ИИ, средняя квалификация будет падать. Соответственно, постепенно будет падать качество данных, на которых будет обучаться ИИ.
avatar
ППКС
avatar
«Специалисты» по ИИ обсуждают проблемы...)
Автор, скажи лучше когда робота своего закончишь? Помню ты говорил что когда допишешь, то перестанешь на СЛ писать ))
avatar
acf_trade, дык работает давно )))

С уважением

P.S. Если ты заметил — стал писать сильно реже )))
avatar
Потом будет другой этап — обучаться модели будут на коде сгенерированном другим моделями — perpetuum mobile, а потом ИИ сожрут все наши энергоресурсы и мы вернёмся в первобытное общество )
avatar
Eridanoy, скорее всего придумают новый обобщенный язык программирования более эффективный для ЛЛМ, которые сами под себя перепишут популярные либы на новых правилах, что приведет к унификации уменьшению ошибок повышении скорости и качества, никто сегодня на ассемблере не пишет… Тоже будет с зоопарком всех этих Питонов, СРР, Го и тд…
Тупые станут ещё тупее. Для умных — ничего не меняется.
Впрочем, как и всегда
avatar

«сделать что то серьезное», а что для вас серьезное? супербиблиотека с суперкодом которая позволяет выполнять сортировку на 0.1% быстрее? которую дай бог хоть один прогер поймет или заиспользует. Или наговнокоженный майнкрафт который принес создателю десятки миллионов баксов? Нужно все таки еще понимать что считать за успех.

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

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

теги блога Мальчик buybuy

....все тэги



UPDONW
Новый дизайн