Зачем мы сделали метадату?

Metadata.js - это комплект из нескольких js-библиотек для построения учетных систем, веб-приложений и умных сайтов. В ней нет революционных открытий, но есть отличительные особенности:

Javascript

Первым языком программирования для меня был Pascal с ассемблерными вставками. Позже, Delphi, C, VB внутри Access, еще позже - 1С, на котором было сделано много интересных проектов. 1С подкупает удобным IDE с мощным отладчиком и конечно, высокоуровневостью встроенных объектов. Документ, Регистр, Компоновка - это очень круто. Можно построить полноценную учетную программу со складом и кассой не написав ни строчки кода, покликав мышкой в конфигураторе. По скорости разработки настольных учетных систем, конкуренты 1С мне не известны. К сожалению, за простоту конфигурирования приходится дорого платить. Тормознутость системы до определенного момента преодолевается экстенсивно: просто покупаем сервер помощнее, но если нужен доступ к данным миллиону пользователей, сервер 1С с такой задачей справляется плохо. Дела становятся еще хуже, когда задача не вписывается в предопределенные платформой шаблоны. Язык программирования 1С и своеобразная архитектура, задают программисту жесткие границы, сложность преодоления которых, может перевесить плюсы от типовых объектов платформы.

В задаче, с которой началась история метадаты, требовалась работа с редактором векторной графики, расчет спецификаций и ценообразования в offline-режиме на клиенте. Инструментов для работы с распределенными данными 1С не предоставляет. Планы обмена уродливы от рождения, задачу бесконфликтной репликации не решают, а на больших данных (от 1000 узлов обмена) просто не работают. С графикой, тоже всё плохо. Три человекогода, потраченные на рисовалку во встроенном в 1С браузере, завершились провалом. Зато, открыли мне мир javascript, прототипное наследование которого даёт программисту столько свободы, что многие не выдерживают и просят эту свободу ограничить (Flux, TypeScript). Наверное, эта свобода, и есть главная причина, по которой я уже не мог оставаться программистом 1С. Открытый исходный код, простота подключения сторонних библиотек в javascript и возможность модифицировать их поведение, выглядят привлекательнее черного ящика с проприетарной лицензией 1С.

Примеры использования

Компонетны метадаты упрощают разработку веб-приложений. Программист получает инструменты для работы с распределенными, ссылочно-типизированными данными в браузере и Nodejs, может сосредоточиться на бизнес-логике. Вопросы стандартного интерфейса, автономного режима и синхронизации данных, платформа берёт на себя.
На метадате работает Заказ дилера и связанные с ним сервисы Параметрических заказов и Планирования производства. На метадате работает этот сайт. Сейчас здесь только статьи, но в ближайшие месяцы, добавим инструменты управления потоками задач и другие полезные подсистемы.

Метадата помогает программисту не опускаться на низкий уровень при решении задач сбора, доставки и обработки данных:

Метадата задумана для построения сложных распределенных систем, но с её помощью, можно решать и простые задачи. Например, если на предприятии внедрена 1С:УПП или 1C:ERP, с помощью метадаты легко сделать личные кабинеты покупателей и поставщиков, разместить на сайте живой каталог товаров с красивым дизайном, динамическими остатками и ценами. Рабочие места водителей, курьеров и торговых представителей, инструменты сбора данных со сканеров и датчиков, онлайн-отчеты, инструменты согласования документов и т.д. Сложные данные, для работы с которыми программисту ранее требовалась платформа 1С, теперь легко доставить в браузер и микросервис.