Image

Category:

Подошёл к необходимости использовать более или менее оптимальную ООП-систему GUI для Windows на С++ (native code). 

Оптимальность в смысле быстроты/размера, по отношению к не только крупным приложениям с развитым интерфейсом, но и к мелким утилитам с 1-3 диалогами.

Система, т.е. связка "хорошая ООП-библиотека" + "удобный редактор интерфейсов для неё".


Рассмотренные варианты:
 

преимущества

недостатки

итого

MS DevStudio 2005 + WinAPIмалый размер кода, независимость от разных ДЛЛ-ок (спорно для сложных контролов)чрезвычайно трудоёмко создавать развитый интерфейс, архитектура далеко не ООП
Важный недостаток: система манифестов. Необходимость "таскать" в дистрибутиве массу лишнего.
программа с развитым интерфейсом крайне трудоёмка для написания; да и вообще это не ООП, приходится так или иначе писать "обёртыши", т.е. изобретаю велосипед
MS DevStudio 2005 + MFCте же примерноте же примерновыводы те же
Borland C++ Builderсравнительно удобный фреймворк, неплохая система классов, удобный редактор интерфейсаограничения самого фреймворка, некоторая его кривость, а также кривость реализации некоторых возможностей, с самим GUI не связанных, но навязываемых разработчику через BCB-VCLподходит для мелких и средних программ; для больших программ сравнительно неудобен
MS DevStudio 2005 + Qt 4 integratedРазвитая система классов;
Кроссплатформенность на уровне перекомпиляции.
Очень широкий спектр возможностей.
Большой размер .ехе (.dll).
Необходимость обрабатывать исходники утилитой (pre-link).
Громоздкая, сложная и местами неочевидная система классов, событий, сигналов.
Хороший вариант для больших программ. Для утилит - слишком громоздко.

FOX-Toolkit

(изучается)

Ultimate++

инновационный подход к пострению классов для GUI - упрощает понимание и использование;
статическая линковка; сравнительная простота иерархии классов;
мощная библиотека базовых классов;
получается компактный код;
большой потенциал;
отзывчивость сообщества на вопросы;
кроссплатформенность
библиотека ещё молодая, со всеми вытекающими; сложность освоения множества нетрадиционных подходов; пока не полностью документирован
 остановил свой выбор на этой библиотеке

В идеале хотелось бы развитый и ООП-ориентированный фреймворк вроде Qt, с удобным отладчиком, редактором кода и самого интерфейса (в вижуале 2005 очень и очень неплох), но не заставляющий тащить за собой кучу больших dll-ок, либо не раздувающий код (в случае статической линковки) на мегабайт(ы).

Может кто-то предложит более оптимальные варианты?