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



