Я уже много раз писал про визуальные языки программирования, и всегда вывод был, что пока что всё очень плохо: язык Luna заброшен на этапе сломанного прототипа, всё остальное пытается визуализировать обычный код без попыток сделать к этому адекватный интерфейс. И вот, кажется, я нашёл что-то действительно хорошее.

Node-RED — визуальный язык программирования с node.js под капотом. Есть написанные на JS+HTML ноды, для которых можно задавать разные свойства, есть связи между нодами. Ну и всё. Открыли Web IDE, накидали нод, задали свойства, нажали deploy, и готово. Код улетает на бэкенд в node.js рантайм, и сразу же там исполняется. Когда мощи встроенных нод не хватает, можно добавить ноду function и внутри написать произвольный JS код. А ещё всё это запускается конкурентно. Получившийся визуальный код можно сохранить в виде JSON списка нод.

Язык существует с 2013 года, и активно развивается. Есть интересный cookbook с разными примерами кода. Встроенные ноды позволяют работать с HTTP запросами, MQTT, websocket, TCP, UDP, читать и парсить файлы в разных форматах. Написано довольно много интересных нод, которые можно ставить прям из IDE. Несколько примеров:

  • node-red-contrib-python-function — можно писать функции на Python 3. Теряется возможность работать с некоторыми JS объектами и конкурентность, но уже становится немного легче жить.

  • node-red-contrib-chatbot — набор нод для работы с telegram, slack, twilio и прочим.

  • node-red-dashboard — ноды для построения красивых дашбордов.

  • node-red-nodes — большая коллекция разных нод: генерация случайных чисел, работа с geohash и base64, разные модули для raspberry pi и arduino, драйвер для mysql.

  • node-red-web-nodes — ноды для работы с API разных сервисов: Instagram, Flickr, Amazon S3 и прочее.

Ну и снова: если чего-то не хватает, всегда можно написать функцию на JS и вручную дёрнуть нужные зависимости.

UPD: а вот тёмная тема, если очень хочется.