
Попалась на глаза картинка. Интересная идея, я так или иначе кручу её в голове уже не первый месяц. Несколько соображений на этот счёт.
Сама идея мелькает в НФ-литературе уже не первый год. То, что я могу вспомнить сейчас, - это Вернор Виндж, «Глубина в небе». В этой книге люди, чей мозг был искусственно изменён для решения узких задач (в книге так делали очень плохие люди), вырабатывали свой, никому не понятный язык, специфичный задаче.
В теории, если делаю какую-то большую систему с помощью ИИ-агентов будущего, в каком-то 2035 году, - можно предположить, что сначала ИИ-агент разработает доменно-специфический язык для конкретной задачи, конкретной платформы и т.п. Просто один специальный язык для ИИ-агентов не имеет смысла. Раз уж у нас есть «мозг», который может писать много кода, - пусть он делает язык под задачу. В чём смысл иметь всего один язык?
В целом, в каком-то смысле, какие-то «нечеловеческие» языки уже есть - это разного рода P-код, байткод и т.д. Такое промежуточное звено между машинным кодом и языком, на котором пишет программы человек. Они, конечно, создавались для другого, но вот вопрос - а для чего именно должен быть создан ИИ-язык? См. пункт ниже.
Следующее соображение - если вернуться из великолепного (или не очень, если судить по трендам) 2035-го года в год 2026, то один из важнейших факторов успешности кодирования с помощью ИИ-агентов - это способность человека читать сгенерированный код и исправлять накосяченное. Ну вот ни разу не похоже, что тот код, который ИИ генерирует, можно пускать в продакшн без ревью и правок. Оговорюсь - для сколько-нибудь сложных / больших приложений.
Из этого автоматически следуют следующие качества используемого языка:
Легко читаем человеком, простые вещи делаются просто.
Мало или вообще нет неочевидных сайд-эффектов.
Распространённые вещи, такие как работа с БД или JWT-авторизация запросов, делаются при помощи библиотеки / фреймворка, а не «с нуля».
Из этих пунктов мы легко получаем на выходе тройку языков: Java / C# / TypeScript с фреймворками Spring Boot / NestJS / ASP.NET Core.
Драйвером развития всех трёх были именно пункты выше: легко читается, простые вещи делаются просто, минимизация неочевидных эффектов.
Да, все три не идеальны, но это лучшее, что у нас есть в этой области. Сможет ли ИИ придумать лучше? Точнее - люди для ИИ. В теории - да, но это десятки лет работы. Быстро не получится.
И последнее. ИИ не пишет код «сам», он по факту подбирает похожие кусочки из той базы, на которой он был обучен. Т.е. чтобы ИИ начал писать сколько-то адекватный код на каком-либо языке, ему нужно «скормить» миллионы (скорее всего - много больше) строк кода на этом языке, и писать этот код должен не ИИ.
На самом деле, даже живые программисты обучаются так же. Когда ты берёшь в руки книгу по совершенно незнакомому тебе языку, то первая реакция - «блин, как на этом код-то писать», потом ты начинаешь писать небольшие кусочки, понимаешь, что получается плохо, правишь, смотришь на чужой код, говоришь себе «Ага! Вот как надо!» - и как-то так понемногу двигаешься вперёд.
Подводя итог. В целом, идея специального языка витает в воздухе не первый десяток лет.
Скорее всего, это будут специальные языки под задачу.
Мы пока не там. ИИ-агенты, с одной стороны, заметно ускоряют разработку, но с другой стороны - программирование с помощью ИИ-агентов это гонка на костылях от ямы к яме. Требует очень высокого внимания и навыка со стороны человека.
В текущей ИИ-индустрии всё крутится вокруг обучения, и если нет хорошего датасета для обучения, то результат будет очень грустным. Какие-то опыты по самообучению ведутся, но мы пока не там. Например, Google сделал бота для игры в StarCraft, который обыгрывает большинство противников. Но бот изначально обучался на записях игр реальных людей и делает безумное количество бессмысленных вещей. Где взять датасет для обучения программированию на специальном ИИ-языке - непонятно.
