Vibe Coding и английский как язык программирования

в 20:34, , рубрики: llm-приложения, английский язык, тенденции

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

И это была шутка. И это было смешно.

Так вот, господа, боюсь вам сообщить: это время либо уже пришло, либо вот-вот придёт.

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

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

Один из пропонентов этого — Андрей Карпатый, соучредитель OpenAI, который сейчас руководит образовательной компанией Eureka Labs. Он утверждает, что использование английского языка как языка программирования открыло возможность для нового подхода к разработке программного обеспечения, который он называет "vibe coding".

Вот перевод его сообщения в Twitter-e, в котором он объясняет, что это такое

Есть новый вид программирования, который я называю "vibe coding" - когда ты полностью отдаёшься вайбу, принимаешь экспоненциальный рост технологий и забываешь, что код вообще существует. Это стало возможным, потому что LLM (например, Cursor Composer с Sonnet) достигли нового уровня.

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

Когда я получаю сообщение об ошибке, я просто копирую его в Cursor Composer без комментариев - обычно это помогает.

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

Для одноразовых проектов на выходных это не так уж и плохо, и даже забавно. Я как бы делаю проект или веб-приложение, но это не то, чтобы настоящее программирование — я просто смотрю на что-то, говорю что-то, запускаю что-то, копирую и вставляю что-то — и оно в основном работает.

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

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

"write code in python using the fast API framework to play the mario game. 
The game should have an UI. I should be able to play the game using my keyboard"
"make code changes to include sprites, enemies, coins or power-ups"
"introduce gravity so that mario falls freely when moved around with arrow keys" 

Как вы понимаете, то, что я написал выше, - это и есть программный код на английском языке. Этот код, по сути, транспилируется в Python, и в результате получается готовая игра.

Разумеется, мы немножко жульничаем, и это далеко не общий случай, и оно получилось настолько лаконично, потому что LLM имеет представление о том, что такое "Mario game", и ему не нужно всё объяснять с нуля.

Но, думаю, что вы понимаете общую тенденцию. Есть мнение, что к 2028 году английский язык станет самым широко используемым языком программирования. И вполне возможно, что так и случится. Как вы считаете?

Автор: sledov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js