Я уже думал о чем-то подобном, но я бы предпочел создать единую новую спецификацию диаграммы, которая подходит для любого целевого языка программирования. Это можно сделать, удалив синтаксис, зависящий от языка, из представления диаграммы.
Основными языками, которые лично меня интересуют для таргетинга, являются Lua и Javascript, и они в чем-то похожи, я уверен, что в будущем они могут использовать одну и ту же унифицированную диаграмму.
Например: в Javascript равенство выполняется с тройным равенством, а в Lua - с двойным равенством. Необходимость изучать эти синтаксические правила для каждого языка действительно замедляет новичка.
На диаграмме синтаксис может быть объединен с «изображением равенства», которое строится для любой из этих форм на основе выбранного целевого языка.
Таким образом, вам не нужно переписывать диаграмму, чтобы перейти с Javacript на Lua или наоборот.
Шаги, которые необходимо предпринять:
- Создайте новый исходный формат, такой как JSON, для описания диаграмм в кодовой форме, он станет новым эквивалентом .drn.
- Создайте синтаксический анализатор для преобразования источника JSON в диаграммы HTML / CSS в интерактивном веб-приложении (parser.drn), это разделит проблемы между отображением диаграммы и спецификацией источника. Он будет работать аналогично Markdown.
- Создайте транспилятор для преобразования исходного кода JSON в Javascript, Lua и т. Д. (Lua_transpiler.drn, js_transpiler.drn и т. Д.)
- Создайте интерактивное веб-приложение, которое позволяет изменять JSON интуитивно понятным способом, взаимодействуя с представлением диаграммы HTML / CSS (app.drn) с помощью мыши и клавиатуры. В первую очередь потребуются функции, позволяющие создавать / читать / обновлять / уничтожать значки и диаграммы в источнике JSON, взаимодействуя с представлением модели HTML / CSS.
- Добавьте в веб-приложение такие функции, как панель инструментов, сочетания клавиш, масштабирование и панорамирование холста и т. Д. Я не уверен, что использовал drakon.tech, но Electron.js выглядит многообещающе, были созданы Visual Studio Code, Draw.io и Discord. используя его, и draw.io имеет открытый исходный код.
Приложения очень похожи на документы / листы Google, они похожи на настольные приложения, но их можно настроить для запуска в браузере или на рабочем столе.
Моя главная проблема в том, что я начинающий программист. Я плохо разбираюсь в коде, написанном другими. Мне потребовались бы недели посвященного времени, чтобы хотя бы разобраться в исходнике drakon.tech и понять, с чего начать, а в настоящее время у меня есть постоянная работа в несвязанной инженерной работе.
Если бы у меня было время, первое, что я сделал бы, - это направил все свои усилия на новый редактор Drakon, поскольку я считаю, что это следующий большой скачок в человеческом программировании, но он требует значительных исследований и разработок для инструментария IDE, чтобы сделать его бесшовным. достаточно, чтобы люди переключались с рабочего процесса текстового редактора, к которому они привыкли.
Одна из областей, в которой такое мышление уже имеет тенденцию, - это разработка игр. Два основных движка разработки игр, Unity и Unreal Engine, уже имеют основанный на диаграммах способ реализации игровой логики.
К сожалению, они не включили мудрые принципы диаграмм Дракона в свои решения, и поэтому диаграммы представляют собой беспорядок, похожий на спагетти, который быстро сбивает с толку и выглядит следующим образом:
Однако это шаг в правильном направлении, который, в конечном счете, я считаю сочетание этого стиля с принципами Дракона с точки зрения структуры и организации.