30 дек. 2009 г.

MinGW vs MSVC

Решил попробовать скомпилировать проект с помощью бесплатного тулкита Microsoft Visual Studio Express а именно Visual Studio 8 (2005). Тулкит "жирный" 462 mb. сама Visual Studio, и 395 mb. Windows Platform SDK (в 2005 версии не входит в состав VS, imho это правильно).
Наверное дело привычки, но студия как IDE после Code::Blocks мне не понравилась, почти без "танцев" сбилдил либы wxWidgets, сам же проект "ниасилил", в общем на Code::Blocks лично мне оказалось удобней (правда геморрой был и там, но спасло гугление на официальном форуме wxWidgets).
В общем Release теперь билдиться только с помощью компилятора MSVC. Почему? Все просто: размер бинарника собранного в MinGW - 3.3 mb, в MSVC - 2.2 mb, т.е. - 30% (или + 50% это как посмотреть). К тому же компилятор явно быстрее, это факт. Но к студии необъяснимое отвращение, почему-то интерфейс (контролы и т.п.) вызывают стойкую ассоциацию с .NET приложением, воротит и все тут.
Параллельно посмотрел Qt 4.6, чего-то не собираются некоторые экземплы, покрутил примеры, да, фреймворк по-хорошему толст, примеры некоторые впечатляют, говорят современный (обозвать ивенты и обработчики событий сигналами и слотами и присобачить слева moc прекомпилятор это нее**цо модерново, да).
Но вот я подумал о своем приложении не супер-пупер, но и не самом простом (IPC, Custom Events, Sockets, не самый хреновый GUI, кстати нативный и выглядящий как на WinAPI). Так вот аппликуха использует в среднем около 2.5-3 mb оперативной памяти, сидит в трее и расчитана на постоянное использование, размер NSIS инсталлятора менее психологической метки в 1 mb и никаких дополнительных либ, для небольших и средних проектов самое оно (хотя назвать Code::Blocks небольшим или средним язык не поворачивается и он чертовски хорош). С Qt эти показатели увеличиваются в разы. Лицензия wxWidgets опять же намного свободней. Вот и вся логика, а модерн ради модерна пусть будет для эстетов и пиарастов.
P.S. Разработка wxWidgets началась в 1992 году, Qt - в 1994, думаю костылей и там и там хватает.

15 дек. 2009 г.

wxWidgets 2.9

Попробовал нестабильную ветку. Она действительно нестабильная. И кривая. Местами.
Некоторые методы объявлены как депрекейтед, некоторые просто изменили. Строки (wxString) например, DDE (wxConnection) и т.д. и т.п.
Но это все можно понять, избавляются от старого хлама. Но вот чего я понять не могу, так это изменившегося размера exe-шника статически слинкованного приложения:
3.3 mb на wxWidgets 2.8.10
7.2 mb на wxWidgets 2.9.0
5.2 mb на wxWidgets 2.9.0 после применения патча на кривые руки

Понятно что не WinAPI, но так недалеко и до Q-евого кошмарика где приложение тянет с собой туеву хучу бегамайт shared либ (QutIM например при размере около 2 mb тянет более 20 mb либ), это просто 3.14дец, хуже только .NET (недавно обновился на 250 mb ради Paint.NET).

В общем убежал в ужасе обратно на stable.