Поделюсь своими размышлениями по поводу того, что естественный язык благодаря ИИшкам станет полноценным языком языком программирования. С одной стороны есть основания так считать, ибо когда я пишу контекст к cursor/claude code, я говорю "делай так, а так не делай", "Если то, иначе это" и прочие хаки, которые ретранслируются из естественного языка в токены для анализа, и соответственно исполняются в программе-анализаторе ИИ(в нашем случае агент встроенный в вашу ide и который под капотом делает доп запросы в AI модель, либо в вашу локальную если вы подняли какой-нибудь llama). Этому даже посвященные целые области. Такие как context/prompt engineering и многие другие области. Если рассматривать мое отношение, несмотря на то что claude/cursor и многие другие неплохо генерирует код, и действительно помогают в разработке, говорить о естественных языках программирования либо далеко. Либо это будет
с оговорками и не похоже на то, что под этим подразумевают(Это конечно, тоже интересно. Я в данном случае подразумеваю, что на входе у нас будет спека, а на выходе полностью рабочее приложение).
И если рассматривать на что это может быть похоже. В книге(да и уверен и не только там), очень хорошо демонстрируется как появляются новые языки программирования
https://www.litres.ru/book/endru-tanenbaum/arhitektura-komputera-66738078/.
Есть язык программирования "уровня" Y0(в книге не совсем так, но суть примерная такая), программу на котором понимает исходный компьютер(в нашем случае машинный код). Он составлен ровно так, как требует этого исходная машина. Он будет больным для восприятия и хорош ровно настолько, насколько хорошо инженеры могут совладать с законами физики и будет запускаться напрямую. Далее пишется язык уровня Y1, который будет более человеческим. И для него будет либо написана программа на языке Y0, которая будет принимать на вход текст программы Y1, переводить его в Y0(грубо говоря транслятор), а затем исполнятся на машине y0, либо будет написана программа на языке Y0, которая будет исполнять программы на языке Y1(грубо говоря интерпретатор). И это утверждение верно для N уровней. Иначе говоря современные языки программирования это надстройки, над предыдущими. Если лет 30 назад, с/с++ считался языком высокого уровня(Y2), то сейчас пишуется много языков, для которых написаны интерпретаторы(чаще чем трансляторы) на языке с++(Например, php, python, nodejs). И как правило чем больше N в языке YN, тем дружелюбнее язык(но не обязательно. Это соблюдается на низких уровнях, особенно на Y0, так как сложно инжерно построить, например, java машину, которая на аппаратном уровне исполняет java код. При этом на высоких уровнях может быть построен более заморочный язык, просто потому что так решил создатель. Пример brainfuck)