Юзал ли кто-нибудь этого зверька? Поделитесь впечатлениями.
Что за компилятор в Express-версии? Нормально ли он оптимизирует проги? Стоит ли переходить на эту студию, если мне плевать на то, что она не компилит HL1 SDK?
Первое, что бросается в глаза при запуске - интерфейс. Естественно, по сравнению с 6-й версией он сильно изменился - современные обтекаемые менюшки и кнопочки, перетаскиваемые панельки, которые можно прилепить к любой стенке и сделать выдвигающимися и даже встроенный браузер.
Чуть более удобный браузер классов, показывающий иерархию. IntelliSense, позволяющий сворачивать и разворачивать блоки кода (сомнительная фича, но все же), а также корректно показывающий прототипы всех функций.
Естественно, вся эта красота довольно требовательна к ресурсам.
Теперь перейдем собственно к возможностям самого компилятора. Конечно же, первое, к чему потянулась моя халферская рука - это попытка скомпилить SourceSDK. Открываем проект, компилим.
Пожужжав минуты три выдает тепленький client.dll второй Халфы. Размер - 3.85 мб. Теперь смотрим вальвовский клиент, который компилился VC2003 - 2.99 мб! Ну и ну! А ведь по утверждениям Майкрософт в Экспресс-версию входит тот же оптимизирующий компилятор, что и в профессиональную версию! Неужели они так деградировали за 2 года?!
Ладно, теперь попробуем создать свой проект. Выбираем тип "emptyproj", пишем инициализацию OpenGL с помощью библиотеки GLUT. Компилируем. Смотрим размер экзешника - 76 кб! Что за?!
Ладно, теперь пробуем создать консольное приложение. Выбираем тип "Win32 Console Application" и создаем в нем файл main.cpp с на редкость тривиальным кодом:
C++ Source Code:
void main()
{
}
Компилим, идем в папку проекта и... с удивлением обнаруживаем там экзешник размером 5 кб! И как это понимать?!! Что такого залинковывает этот монстр в Win32-проект???
И тут меня внезапно осеняет! Создаем в студии новый проект типа "Win32 Console Application" и внимаетльно разглядываем окошко его настройки. В нем оказывается можно выбрать еще и подтип проекта, среди которых "Win32 Console Application", "Win32 Application", "Win32 Dynamic-Link Library" и "Win32 Static Library". Теперь они, видимо все нативные приложения, которые запускаются не под CLR, высокомерно назвали "консольными"! Выбираем "Win32 Application" и пишем еще более тривиальный код:
C++ Source Code:
1
#include <windows.h>
2
3
int WINAPI WinMain(HINSTANCE inst, HINSTANCE prevInst, LPSTR cmdLine, int cmdShow)
4
{
5
MessageBoxA(0, "ЛОЛ!", "ыыыыыы)", MB_OK);
6
return 0;
7
}
Ну вот... размер экзешника - всего 6.5кб, намного меньше, чем у VC6.
Если я правильно понял, в "emptyproj" залинковывается среда выполнения CLR, дабы не обязывать юзера ставить .NET Framework! Ппц...!
Отладчик еще не смотрел.
Итог - хорошая современная среда разработки, с отличным компилятором. А главное - можно совершенно бесплатно и легально пользоваться, продавать программы и не получать по шапке от Майкрософт. Пожалуй, я остановлю свой выбор именно на ней.
MS Visual C# .NET 2005 Express
C# - родной язык платформы .NET. Его IDE, в отличие от VC++, отличается гораздо более проработанным и менее глючным интерфейсом в зеленых тонах, радующих глаз.
Сам язык достоин своего названия - улучшеный C++. В нем действительно устранены многие противоречия в синтаксисе языка C++. Правда, не обошлось и без потерь - нет шаблонов и перегрузки оператора "=". Но, по правде говоря, оно там не особо и нужно - платформа .NET и без того предоставляет богатые возможности.
Средства взаимодействия с нативным кодом также есть. Причем, в отличие от C++, Шарпу не нужны никакие громоздкие либы - достаточно определить прототип функции в коде и указать, в какой дллке ее следует искать - линкер сам найдет ф-ию в таблице экспорта.
Сама патформа .NET очень богата. Все классы аккуратно разложены по пространствам имен, так что разбираться в них легко. Большое количество элементов управления, позволяющих быстро и легко разрабатывать сложные оконные приложения.
Вопреки распрастраненному мнению, .NET приложения совсем ненамного уступают в производительности нативному коду (хотя и требовательны к памяти), а в будущих версиях Windows, в которые эта платформа будет встроена изначально, они и вовсе не будут уступать ему в скорости.
Ну а тем, кто говорит, что, мол, шлепать формочки - быдлокодерство, отвечу: "Пишите тогда вообще в машинных кодах".
Также очень порадовал отладчик, подробно описывающий произошедшую ошибку (вместо абстрактного "Access Violation")