Как максимально упростить разработку GUI WEB приложения?
Уже к концу 90-х RAD IDE типа Delphi, C++ Builder и Visual Basic довели разработку классических десктопных приложений почти до идеала: во многих случаях программисту больше не надо было думать о реализации и нюансах работы стандартных элементов GUI, а только раскидать их по форме и прописать логику прикладного плана. Вершиной развития этого направления стал, наверно фрэймворк WinForms (многие ругают его и вышеупомянутых предшественников за поощрение смешивания кода бизнес-логики и представления, но лично я не вижу проблемы с вынисением логики по максимуму в отдельную class library и структурированием кода в ней "по всем понятиям", тут как всегда "разруха не в клозетах, а в головах"). Вот интересно есть ли уже что-то столь же (или более) удобное для web?
Очевидно, что в наше время задачи практически любого уровня (и персональные хобби-проекты, и информационные системы для предприятий) зачастую удобнее реализовывать в виде web-приложений (чтобы иметь доступ к ним из разных мест, централизованную базу данных, возможность легко делиться с друзьями/коллегами и, едва ли ни главное - возможность запуска на любой современной ОС), но любой, пошедший этим путём сталкивается с необходимостью придумывать и реализовывать (верстать и кодить) дизайн страницы, "плясать от" примитивов HTML, вникать довольно во многое и писать вручную сравнительно много не связанного напрямую с реализацией бизнес-логики кода (есть, конечно, WYSIWYG-среды типа DreamWeaver но генерируемый ими код (который потом всё-равно придётся поддерживать) - это "ужас на крыльях ночи"). Какие есть варианиы обхода этого?
В идеале, мне кажется, должно быть декларативное описание дерева GUI (причём на базе не HTML-примитивов (как обычный DOM), а какого-то более вменяемого набора виджетов, реализация которых убирается "под капот"), отдельное от него опциональное (должен быть вменяемый стандартный) описание "скина" и отдельно файлы кода логики, оперирующей исключительно тем, что описано в упомянутом выше декларативном описании UI плюс внешними сервисами.
Есть уже что-то такое? Мне, человеку с более чем десятью годами десктоп-разработки за плечами, работающему в основном в одиночку и горящему желанием реализовывать непосредственно прикладные идеи, а не заниматься собственноручно web-дизайном и вёрсткой этого иногда очень нехватает...
Читал про это в прошлом году на Opennet, я так понял это что-то, реализация чего в браузерах только начинает делать первые мини-шажки (и наверняка по старой доброй традиции будет в разных браузерах отличаться). Или нет?
StrangeAttractor: по этим двум ссылкам все написано. Есть полифилы, стандарт потихоньку пилят, с полимером можно уже неплохо жить... но думаю пройдет еще год два прежде чем это станет мэйнтрим подходом.
Этот подход реализует целый зоопарк java фреймворков таких как JSF, GWT, primefaces и д.р. Но у них куча своих недостатков - сложный жизненный цикл, трудность кастомизации, нагрузка на сервера выше.
А что касается вэб-компонентов то сейчас самая нормальная реализация идеи, на мой взгляд, React.js. Простой, быстрый, не навязывает архитектуры, кроссбраузерный, легко тестировать, с поисковиками нет проблем.
Про Java-фрэймворки (в частности JSF пробовал когда-то) знаю, но вы очень верно подметили во втором предложении - IMHO это практически сводит их смысл на нет: сэкономишь на одном, затрахаешься с другими вещами. Я ищу что-то, с чем я смогу 99% времени заниматься прикладной логикой, а не boilerplate-кодом. React.js посмотрю, спасибо.
Ещё мне кажется, что один из недостатков - попытка стирания явных границ между server и client side. Концептуально это кажется круто, но на живых задачах мне кажется горахдо лучше максимально чётко разделять эти части. Должно быть собственно чисто client-side приложение на JavaScript иди чём-то в него транслируемом и web-сервисы, которые оно дёргает как внешние ресурсы.
Может я что-то упустил, но чем ASP.NET WebForms не подходит? Визуальный редактор форм, практически как в упомянутых Delphi/Builder/WinForms, который превращается в HTML при обращении к сайту (насколько я помню даже кроссбраузерно).
Для меня ваш вопрос тоже актуален.
Присматриваюсь к Xojo и Wakanda, но это экзотика и использовать в реальных проектах, сомнительно. Неизвестно какая их ждет судьба в дальнейшем (вдруг закроются?)
А вы в итоге остановились на чем-то?