Что такое CodeSpeak?
Это система программирования, основанная на естественном языке. Если раньше мы объясняли машинам, что нужно делать, на специально спроектированных формальных языках, то с появлением LLM появилась возможность делать то же самое гораздо короче, используя обычный, человеческий язык. В остальном CodeSpeak задуман как язык программирования: как и программы, тексты на CodeSpeak пишутся в обычные текстовые файлы, «компилируются» с помощью LLM, порождая исполняемый код (на традиционных языках программирования, таких как Python или Kotlin), проверяются перед компиляцией и так далее.
Какие-то правила в нём всё-таки есть. Например, модули (каждый файл — это отдельный модуль) импортируют другие модули специальной командой, и ошибка в такой команде будет ошибкой компиляции.
А зачем менять язык программирования на человеческий?
На человеческом языке те же самые мысли можно выразить намного короче, чем на машинном, потому что людям многое очевидно — просто из интуитивных соображений и из опыта взаимодействия с миром.
Так получается потому, что LLM видели очень много примеров программ и просто человеческих рассуждений, и им «очевидны» те же вещи, что и людям.
Чтобы описать какие-то простые операции вроде «найти в базе данных» или «передать по сети» на традиционных языках, нужно указать кучу деталей, а для человека (и для LLM) обычно всё понятно, если есть контекст.
Почему выбрали английский язык?
Мы не ограничиваем пользователей в том, на каком человеческом языке писать. У нас были примеры, когда писали на русском, на корейском и на других языках.
Просто английский понимает максимальное число людей из индустрии, плюс LLM с ним работают лучше всего, поэтому для начала мы всё тестируем на нём.
Если инженеры начнут писать промпты на английском, будут ли нам нужны традиционные языки программирования?
Скорее всего, да. Исторически можно сказать, что C «заменил» язык ассемблера, а потом Java «заменил» C, но на самом деле все эти языки активно используются, просто для разных задач.
Можно себе представить, что некоторые традиционные языки станут не нужны, поскольку не будет смысла на них писать, но какие-то точно останутся.
Учитывая возможности CodeSpeak, какой набор навыков нужен будет инженеру-разработчику?
Инженеру-разработчику нужно понимать фундаментальные вещи про компьютеры и построение сложных систем. Думаю, что при обучении ещё долго будет полезно изучать программирование «вручную», чтобы формировалось более глубокое понимание того, как всё устроено. Так ещё совсем недавно многим студентам преподавали C, хотя очень малая доля из них сталкивалась потом с этим языком на работе.
На нынешнем этапе CodeSpeak позволяет создавать только небольшие проекты и приложения? Или это уже полноценная замена традиционному языку программирования?
Про полноценную замену говорить рановато, CodeSpeak пока на очень ранней стадии разработки, но размер проектов принципиально не ограничен. Можно создавать сколько угодно модулей.
На практике по-настоящему больших проектов на CodeSpeak ещё никто не делал. Ожидаю, что, если попробовать, найдётся много неожиданных проблем. Но мы всё обязательно починим, когда это понадобится нашим пользователям.
А как работает интеграция CodeSpeak с привычными языками программирования?
Из описаний на человеческом языке мы генерируем код на традиционных языках. Это похоже на то, как традиционные языки генерируют машинный код.
Как научиться программировать с помощью CodeSpeak? Например, я хочу написать чат-бота — что мне нужно ввести на английском, чтобы CodeSpeak меня понял?
Нужно так и сказать: хочу написать чат-бота для такого-то мессенджера, который делает то-то и то-то. Когда захотите добавить или изменить в нём какие-то функции, дополните описание и запустите CodeSpeak заново, он добавит или изменит то, что вы описали, в коде.
Эквивалентны ли язык программирования и человеческий язык?
Эквивалентность, как правило, определяется примерно так: если любую программу на языке А можно написать на языке Б и наоборот, то языки эквивалентны.
В этом смысле, строго говоря, человеческий язык эквивалентен не одному языку программирования, а скорее всем таким языкам, вместе взятым. То есть любое корректное описание на человеческом языке можно переписать на какой-нибудь язык программирования, а любую корректную программу на любом языке программирования можно переписать на человеческом языке (и, как правило, она станет сильно короче).
Как вы считаете, как CodeSpeak изменит индустрию?
Ну хорошо. А какие у вас планы, связанные с CodeSpeak?
Завоевать мир 😃



