Я помню, в начале 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 году английский язык станет самым широко используемым языком программирования. И вполне возможно, что так и случится. Как вы считаете?
Комментарии (12)
atomlib
17.02.2025 21:10Вот, скажем, игра Марио, которая целиком была написана промптами на английском
Сколько в датасетах обучения (то есть в Интернете) выложено различных клонов на всевозможных языках платформеров по типу Super Mario Bros.? Сколько из них написаны на популярном у новичков Пайтоне? Что конкретно делает языковая модель: цитирует с небольшими изменениями или реально понимает задачи разработки и пишет с нуля?
Будет ли такой же успех для других задач, где всё уже не так очевидно? Что вы собираетесь делать, когда придётся писать что-то новое, чего никто до этого никогда не делал?
Что вы собираетесь делать в ситуации ниже?
Ну да, до этого дожить может не каждый. Как-никак, проект чудовищно огромный — 30 файлов.
Один из пропонентов этого — Андрей Карпатый, соучредитель OpenAI, который сейчас руководит образовательной компанией Eureka Labs.
Продавец зонтов утверждает, что близится долгий сезон дождей.
В «Твитере» регулярно придумывают какой-нибудь короткоживущий мем и пару недель его репостят. Ничего, через месяц забудут.
sledov Автор
17.02.2025 21:10Прежде всего, я скорее хотел предложить тему для обсуждения. Мне интересно и самому в этом разобраться.
Сколько из них написаны на популярном у новичков Пайтоне?
FastAPI - несколько неожиданный выбор для написания игрушек. Я думаю, что в руководствах обычно используют Pygame. Так что вряд ли это прямое копирование или что-то близкое к конкретному коду, который он где-то нашел.
Что конкретно делает языковая модель ...
Я думаю, вряд ли кто-нибудь может ответить на этот вопрос.
Можно попытаться попросить у LLM объяснить мотивацию и почему она делает так, а не иначе. Но, опять-таки, не факт, что она объяснит то, что на самом деле происходит, а не опишет общую логику подхода, который ей кажется правильным.
AuToMaton
17.02.2025 21:10ИИ уже победил хотя бы потому, что те, кто пытается определить действительно ли ИИ способен думать, относятся к нему как человеку.
О происходящем хорошо писал Lucien Lévy-Bruhl.
Хотят ли люди программировать? Разумеется нет, они даже не видят как их лишают этой возможности. Как вкатиться, нужны ли курсы, нужна ли математика (!?)… вместо того, чтобы зубами вцепиться в то, что ещё осталось доступным обще и считай даром - Termux на Андроиде, Playgrounds и Scheme, да и тот же Python, на iPad…
Тут (на Хабре) рядом статья про Т-образного специалиста, посыл - а вы верьте, верьте и продолжайте верить, что у создаваемых нами проблем, включая безумное и бессмысленное размножение технологий, есть решение. С посылом песен про ИИ совпадение 100%.
А чуть дальше чем рядом… Продолжите ряд: Бородин, Чайковский, Стравинский, Прокофьев, Шостакович. Мне вот Гугол даёт безвестных героев способных озвучить кинофильм. Шёнбергу, кстати, уже 150 лет как юбилей…
Пойду спрошу у DeepSeek кто и кому пытается доказать что эксперимент Человечество провалился…
Metotron0
17.02.2025 21:10Правильно я понимаю, что каждый раз из такого исходника могут получаться разные результаты?
Kojimeister
17.02.2025 21:10Нейронка это инструмент, им нужно уметь пользоваться. Запросы по типу: "сделай мне так, чтобы сияло" - не получатся. Чтобы качественно создавать программы с помощью нейронки нужно: 1) Качественно провести декомпозицию программы на модули. 2) Декомпозиция должна поддерживать такую абстракцию, при которой программист не потеряет много времени на подбор промпта с последующим код-ревью и рефакторингом, но при которой нейронка не потеряется из-за недостатка данных во время обучения, то есть, ответственность программиста в работе с нейронкой, и, следовательно, мастерство, лежит в поиске баланса между абстрагированием и использованием возможностей, предоставляемых нейронкой. Чем умнее нейронка - тем меньше ответственности и больше возможностей абстрагироваться для программиста. Причем каждая нейронка имеет свой баланс, который нужно нащупать.
melesik
Почему английский? LLM и беларусский понимают.
positroid
Тоже недоумеваю, зря упор конкретно на английский, скорее "естественный" язык будет ближе реальности.
И да, программы на естественном языке уже давно пишут, называются ТЗ. Просто раньше в качестве интерпретаторов выступали люди.
sledov Автор
Как вы думаете, сколько информации об игре "Марио" он зачитал на белорусском? ChatGPT 3.5, например, уверенно рассказывал мне, что детёныш козы называется "козёнок".
То есть для не особенно распространённых языков, скорее всего, сначала идёт перевод на английский, а затем модель работает уже с английским текстом.
С другой стороны, если мы ожидаем прорыва в написании кода на английском языке, возможно, к тому времени и перевод станет идеальным.
melesik
Ему не надо читать про марио на беларусском.
akdengi
Марио на беларусском. Из картошки :)