Подошёл к необходимости использовать более или менее оптимальную ООП-систему GUI для Windows на С++ (native code).
Оптимальность в смысле быстроты/размера, по отношению к не только крупным приложениям с развитым интерфейсом, но и к мелким утилитам с 1-3 диалогами.
Система, т.е. связка "хорошая ООП-библиотека" + "удобный редактор интерфейсов для неё".
Рассмотренные варианты:
В идеале хотелось бы развитый и ООП-ориентированный фреймворк вроде Qt, с удобным отладчиком, редактором кода и самого интерфейса (в вижуале 2005 очень и очень неплох), но не заставляющий тащить за собой кучу больших dll-ок, либо не раздувающий код (в случае статической линковки) на мегабайт(ы).
Может кто-то предложит более оптимальные варианты?
Оптимальность в смысле быстроты/размера, по отношению к не только крупным приложениям с развитым интерфейсом, но и к мелким утилитам с 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-ок, либо не раздувающий код (в случае статической линковки) на мегабайт(ы).
Может кто-то предложит более оптимальные варианты?
