7.6 KiB
DSL & program language
Как будет развиваться vibe coding? Code Review (CR) глазами человека на "много букф" JS/Java etc? Точно нет.
Краткие промпты (issue) vs детальные спецификации (многостраничные требования)? Один агент пишет код (Pull Request, PR), второй за ним делает CR?
Может быть даже:
- первый агент ставит общую задачу проекта \ типа аван-проект (привет от ГОСТ 24.). Агент формирует общий замысел, разбивает всю систему на части, пишет бизнес-требования и т.п.
- второй детализирует требования к каждой части (ТЗ) и формирует проектное решение - как потом собрать все эти части, но уже в коде (бизнес-логики) снова в одну систему, но уже "закодированную" (исполняемую)
- третий будет solution architect (технологический концепт, выбор технологического стека, интеграции и т.п.), data architect
- четвертый формирует issue для отдельной подзадачи, пятый делае PR, шестой по нему CR, седьмой - тестер и т.д.
Только все эти этапы - это повтор классики system \ software engineering (SE\SWE), а для AI-coding нужен видимо "более свежий" концепт разработки.
revision
Комментарий к Архитектура вместо синтаксиса: CodeSpeak — язык разработки следующего поколения, использующий силу LLM спецификаций, Новый язык программирования эпохи ИИ
Полагаю, что нужно идти параллельно двумя путями:
- DSL для каждого класса ПО
- верхнеуровнеывый JS/Java (условно) для каждого языка программрования - возможно единая оболочка, транслирующая верхнеуровневый код в классический язык программирования JS/Java (условно), как и компилятор в машинный код \ bytecode. Назовем его macro code (MC)
Общий вариант: человек (DSL-программист \ DSL промпт-инженер) пишет на DSL, далее агент генерит MC-код, человек его CR и далее только человек участвует только в User testing.
Как вариант, упрощенный DSL - это связка Онтологии (на каком либо языке, например, OWL/RDF, т.е. формальная онтология) и языка запросов, например, SPARQL. Такая связка показана в проекте Semantic BPM\VAD, онтология в частности.
Общий подход SPARQL-driven Programming Guide - лишь как демонстрация. Далее его бы развить до аналога PL\SQL, т.е. добавить процедурное расширение для получения PL\SPARQL.
PL\SPARQL - это только в части обработки данных (сама модель данных в OWL\RDF).
Блок workflow - как уже устоявшаяся практика в задачах "управления задачами" - BPMN-engine. Только конечно более совершенный, чем BPMN 2.0, но вектор верный "Программирование без программирования": от Model-Based Design до Model Based Software Development (MBSE), где по модели генерируется весь код. BPMN 2.0 до этого еще далеко, там no-code только для примитивов типа Hello Calculator. Графическая визуализация - это основа для MC.
Полагаю, что отдельным направлением будет "vibe coding по аналогии" - это когда даешь ссылку на сервис (в идеале open source) и он тебе этот сервис переделывает под твои предпочтения, например, другой стек или добавляет новые функции. Или просто далее "один в один" - для обхода блокировок.
Фактически "по кнопке" были сделаны сервисы:
- on-line сервис: https://www.ldf.fi/service/rdf-grapher см. https://github.com/bpmbpm/rdf-grapher/tree/main/ver1
- graphviz-online см. https://github.com/bpmbpm/graphviz-online/tree/main/ver1 - удивительно, в оригинальном graphviz-online не было поддержки тега image
- https://github.com/bpmbpm/excel-online/tree/main/ver1
и другие. Причем подобное может делать человек, "далекий от программирования".
С учетом грандиозных возможностей AI реализовать "DSL для каждого класса ПО" и macro code (BPMN Next) - вопрос только постановки задачи и ... оплаченных токенов (бесплатные модели не особо хороши, точнее только в последние месяцы своей бесплатности, например, Grok Code Fast 1, kimi etc).
Фактически индустрия программирования как когда-то при переходе с Ассемблера на С (и далее С++) должна "взять новую высоту", где уже более верхнеуровневый код будет представлять собой конструктор смыслов (условно RDF - триплетов, точнее их конструктор) и "писать на нем" будет простой (смертный) бизнес-пользователь, а "продвинутый бизнес-пользователь" даже сможет делать CR, проверять (условно) ключевые "BPMN Next" и PL\SPARQL конструкции.
Во многом подобное будет напоминать сборку ПО как пазла: ведь все компоненты: онтология \ DSL, аналоги "BPMN Next" \ "PL\SPARQL" - это могут быть достаточно агрегированные конструкции. Конечно, если нет нужного элемента для текущего пазла, то будет запрос к ИИ и тот сделает нужный блок (на JS\Java) для повторного использования в этом и других пазлах.