Как создать GUI-подобное приложение для десктопного веб и не сойти с ума?
Заголовок очень длинный, но зато суть отражает почти полностью:
суть в том, что мне и далеко не только мне нравится GUI-программирование. Нормальное такое классическое, в результате которого получались такие без гениальные вещи как интерфейс OS/2 WorkPlace Shell, интерфейс Mac OS X Aqua и все последующие...
Отсюда вопрос: а есть ли хоть какой-то вариант писать веб-приложения именно в GUI-стиле? Да, пусть с ограниченным набором виджетов и без каких-то феерических возможностей, но зато с такими классическими вещами, как обработчики событий на виджете, абсолютно адекватным поведением виджетов-контейнеров, правильным взаимодействием между виджетами, унификацией их внешнего вида и широкими возможностями их «тематического» декорирования (гм, вспомните лучше темы KDE). При этом если никому не нужно, чтобы приложение было одним и тем же для мобильных устройств и для десктопа -почему бы не разнести сугубо V составляющую на 2 части, а не пытаться сделать один интерфейс настолько супер-адаптабельным и универсальным, что его код станет по сути SSHA-суммой Книги перемен?
При этом весь JS код должен оперировать вменяемыми операциями наподобие «создай виджет - инстанс такого-то класса и помести его в другой виджет - контейнер такой то» или, как более правильный подход: «загрузи по URL такому-то описание формы приложения, сгенерируй виджеты. А теперь вот тебе обработчики событий для созданных объектов-виджетов».
В общем, вопрос прост как три копейки: есть ли в 2017-м году хоть один JS-фреймворк, который был бы комфортен для GUI-разработчиков и позволял бы получать работающие в браузере веб-приложения, по сути являющиеся, например, «веб-репликами» их уже написанных GUI-собратьев? Ведь многие же компании, и очень крупные, самые крупные, переводили свои десктопные приложения на веб-платформу. Неужели им всем было в радость просто писать всё заново в чистой веб-парадигме со всеми этими «прекрасными» вещами типа DOM и VirtualDOM?
P.S. Вопрос возник по итогам попытки прочесть https://habrahabr.ru/post/341688 : из прочитанного я не понял практически вообще ничего, хотя у меня есть опыт JS-разработки. Я просто не врубаюсь, что такого полезного с функциональной, осязаемой точки зрения мне даёт всё это...
Внимание, правильный ответ:
https://github.com/qooxdoo/qooxdoo
Огромное спасибо dmxrand и всем-всем-всем, кто помог определиться!