-
Notifications
You must be signed in to change notification settings - Fork 17
История
В 2003 году в рамках разработки нескольких российских корпоративных информационных систем была разработана платформа Eludia.pm.
Первые проекты были рассчитаны на закрытые сети организаций с рабочими местами на базе штатно установленных Windows 2000 / MSIE 5.0 (без перспектив обновления). Для них требовалось быстро и дёшево разрабатывать и по мере внезапной необходимости моментально модифицировать учётные системы, не требовавшие уникальных дизайнерских решений, но простые в освоении неподготовленными пользователями.
Первоначально использовался серверный стек Linux/Apache/MySQL/Perl, впоследствии была снята зависимость от всех перечисленных компонент, кроме одной, самой важной: Perl 5. Поскольку вся платформа представляла собой библиотеку подпрограмм на этом языке + набор графики для отображения кнопок.
В своей нише: закрытые заказные intranet-системы со специфической и часто меняющейся логикой -- Eludia.pm была весьма эффективна, в особенности в первые 10 лет развития. Типовой набор UI-элементов покрывал большинство имевшихся потребностей, а гибкость и лаконичность Perl 5 в сочетании с простой и прозрачной организацией кода обеспечивала необычайно низкую себестоимость процесса разработки/поддержки на вполне приемлемом уровне качества. Десятки Eludia-систем, создававшихся около 2005 года, успешно функционируют и 15 лет спустя.
Однако с течением времени стали накапливаться проблемы, которые всё сильнее мешали использовать эту платформу в новых проектах:
- стандартный набор фрагментов HTML/CSS/js слабо изолирован от серверной логики, соответственно, сложно поддаётся модернизации;
- в особенности это стало проявляться по мере того, как MSIE перестал быть браузером по умолчанию даже в органах государственной власти;
- реализация web-сайтов с индивидуальным дизайном на данной платформе совершенно неадекватна, а проектов без пусть небольшой, но обязательной публичной части ("личный кабинет") со временем всё меньше;
- архитектура решения адекватна для изолированной системы со сложной, но единственной реляционной БД, однако плохо применима в случае многих разнородных источников данных, интеграции через Web-сервисы и т. п.
- глубоко однозадачная природа интерпретатора Perl5 плохо подходит для реализации асинхронных сценариев, потребность в которых обусловлена опять-таки интеграционными задачами;
- дурная слава Perl обусловила демографическую проблему: старPerl'ы уходят (по крайней мере, из профессии), а миллениалы чураются обучения древней магии.
- серверную Dia.pm, представляющую собой Eludia.pm за вычетом всей презентационной логики;
- и клиентскую elu.js, написанную по мотивам спецификации и реализующую традиционную для Eludia организацию кода.
А в течение 2019 года была разработана Dia.js: полная замена Dia.pm на базе вроде бы пока ещё актуального node.js. Это не дословный перевод с Perl на javaScript, а библиотека, написанная с нуля, но с учётом имеющегося опыта: как положительного, так и отрицательного. В частности, любое Dia.js приложение может:
- оперировать с произвольным числом равноправных разнородных источников данных;
- единообразно обрабатывать запросы, приходящие через интерфейсы разной природы (RESTFul-сервисы, очереди);
- реализовывать сложные асинхронные сценарии типа split/join.
В конце 2022 года, в свете очередного переосмысления имеющегося опыта, стартовал следующий проект из той же серии: doix.