Что с Desktop приложениями?

Примерно 1.5 года назад мне понадобилось разработать небольшое desktop приложение. Буквально пару экранов и несколько несложных форм. Казалось бы, задача простая, должна решаться за пару дней, но нет.

Перед началом разработки необходимо выбрать фреймворк для desktop приложения с графическим интерфейсом. Определил 3 ключевых критерия: - Простота разработки - Производительность - Возможность создания современного дизайна

Swing - библиотека специально для Java. Производительный, но современный дизайн реализовать не просто, да и процесс разработки вызывает трудности. Не подходит.

Qt - кросс-платформенный фреймворк. Производительный, с возможностью разработки любого дизайна, но очень сложный. Для простого приложения придется приложить огромные усилия, особенно в рамках Java. Тоже не подходит.

WPF - графическая подсистема в составе .NET Framework. C# похож на Java, по этому не вижу проблем в совершенно другой инфраструктуре. Но он, как и предыдущие варианты, не простой в разработке.

Web-desktop - это целая категория решений, которые представляют собой desktop приложения на основе web-движка. Звучит круто, можно использовать привычный html и css. Этот тот же веб, но клиентский! Есть только одна значительная проблема - производительность. Web совершенно не производительный и архитектурно ужасный.

Этот список можно продолжать еще очень долго, но поверьте, нормальных решений не будет. Это печально, я ведь хотел разработать простое desktop приложение за пару дней. А в итоге потратил неделю на изучение неподходящих решений.

Тогда решил, надо разработать свое решение. Ранее уже был опыт разработки на графическом API OpenGL, но сейчас он считается устаревшим, по этому выбор пал на Vulkan API. Он более низкоуровневый и с хорошим контролем памяти.

Так я начал разрабатывать графический UI движок Vext. Ключевые принципы, которых стараюсь придерживаться: - Решение должно быть Open Source - Разработчики, использующие движок, должны делать это с легкостью, без головной боли - Высокая производительность - Легковесность - Высокая расширяемость и гибкость

В общем за все лучшее и против всего плохого.

Первая итерация разработки продлилась пару месяцев, затем выгорание. Прошло время, исправляюсь, обновляю архитектуру и продолжаю с новыми силами.

Если Вам интересно такое направление разработки, то поддержите активностью под постом. Разработка такого проекта - задача непростая и очень объемная, так что поддержка точно не будет лишней. И заранее спасибо всем поддержавшим!