Есть плюсы, но и минусов не мало.
У кого-нибудь есть другие мнения? (о минусах VisualC++)
Все дело в привычке Win32 приложения можно и на чистом WinApi писать.
В заголовке раздела участвуют эти слова ("Есть плюсы, но и минусов не мало"). Однако, на сколько я начинаю разбираться с данной средой, я кроме некоторой сложности интерфейса и библиотек MFC (по сравнению с VCL), я недостатков не заметил. По-моему, слегка привыкнув, можно вполне реализовывать очень разнообразные по сложности программы. И всякие там Delphi и Builder-ы будут не нужны. Я считаю, что данный инструмент является лучшим из сред разработки под Windows. У кого-нибудь есть другие мнения? (о минусах VisualC++)
По поводу минусов - мое мнение такое:
1. Для начинающего VCL гораздо легче понять, чем MFC (да и для понимания MFC неплохо было бы с WinAPI дружить).
2. Иногда сильно достает "Microsoft specific" - отличия от стандарта C++. Билдер похоже, больше поддерживает стандарт C++.
Но есть и плюсы, из-за которых я не работаю с Билдером:
1. Приложения получаются несколько эффективнее.
2. MFC более гибко в создании User Interface чем VCL (я бросил заниматься Билдером, когда понял, что у простого ListBox'a (вплоть до VCL из Builder'а 6) нет Event'а, сигнализирующего о том, что юзер выбрал другую строку в этом ListBox'е).
данный инструмент является лучшим из сред разработки под Windows. У кого-нибудь есть другие мнения? (о минусах VisualC++)
Я писал раньше под билдером довольно долго. А потом передомной стала задача реализовать сравнивалку файлов с спец-возможностями. Сначала мучился с VCL..... пытался даже использовать стандартные компоненты для вывода содержимого файлов. Но потом плюнул на Билдёр и сел на VC. Конечно переход был мегатрудным... Но когда я понял, что в VC(MFC) для эффективной работы нужно использовать все возможности ООП... Теперь никто меня не заставил пересесть снова на Билдер. VC предоставляет СВОБОДУ. А Borland, при всем уважении к этой компании, решила отобрать ее у программеров.
2. Иногда сильно достает "Microsoft specific" - отличия от стандарта C++. Билдер похоже, больше поддерживает стандарт C++.
Спецификации не являются показателем того, поддерживает ли компилятор в большей мере стандарт, т.к. являются расширениями стандартных фич. Куда более важно поддерживает ли компилятор сами стандартные фичи. В этом Борланд, на сколько мне известно, проигрывает MS. Но и MS не на высоте...
1. Приложения получаются несколько эффективнее.
Понятие эффективности имеет смысл только при указании критерия эффективности.
2. MFC более гибко в создании User Interface чем VCL (я бросил заниматься Билдером, когда понял, что у простого ListBox'a (вплоть до VCL из Builder'а 6) нет Event'а, сигнализирующего о том, что юзер выбрал другую строку в этом ListBox'е).
Ну во-первых компилятор тут ни при чем, в во-вторых, кто тебе мешал ввести такой Event?
Но когда я понял, что в VC(MFC) для эффективной работы нужно использовать все возможности ООП...
Так VC или MFC ? :)
MFC не дает возможности "использовать все возможности ООП" хотя бы потому, что невозможно множественное наследование.
VC - это просто компилятор и по большому счету (если не учитывать различные несоответствия стандарту) предоставляет такие же возможности ООП, как и любой другой современный компилятор С++.
VC - это просто компилятор и по большому счету (если не учитывать различные несоответствия стандарту) предоставляет такие же возможности ООП, как и любой другой современный компилятор С++.
На счет MFC надо сказать, что если человек юзает VC, то без MFC создавать что-либо мегасложное довольно трудно. Я сам долго с самого перехода на VC был приверженцем чистого Win32 API. Но Когда начал заниматься разработкой относительно более сложных систем, чем эксперименты с WNDCLASS, я осознал всю полезность уже готовой библиотеки. Ну, если человеку роднее COM ему наверняка понравиться WTL. Но в любом случае, разработка приложений уже не мыслима без приминения высокоуровневых библиотек. Так что я думаю, не стоит заоострять внимание на сравнении компиляторов, а обратить его на окружение, которое поставляется с соответствующими средами разработки.
VCL vc MFC .... бокс.....
А на счет небольшого несоответствий стандартам я согласен.
:)
Но в любом случае, разработка приложений уже не мыслима без приминения высокоуровневых библиотек.
Если выбросить слово "высокоуровневых" в виду его полной бесполезности, то полностью согласен.
Ну, если человеку роднее COM ему наверняка понравиться WTL.
Уже не в первый раз встречаю это заблуждение. WTL не имеет отношения к COM.
Так что я думаю, не стоит заоострять внимание на сравнении компиляторов, а обратить его на окружение, которое поставляется с соответствующими средами разработки.
Ну а что там поставляется...
Линкер? Не думаю, что многих заботит сравнение линкеров. Они достаточно просты, чтоб в них было много различий.
Редактор и компилятор ресурсов? Не думаю, что различия столь разительны. Тем более, что каждый несколько для своих целей.
Среда разработки? Борландовским редактором я давно не пользовался, но и MS-кий без дополнительных плагинов (VisualAssist и т.п.) весьма убогий.
Дебагер? Довольно простенькие дебагеры и там и там... для серьезных вещей все равно не подходят, приходится юзать "тяжелую артиллерию": SoftIce, kd и т.п.
Анализ и тестирование кода отсутствуют как таковые в базовой поставке, впрочем, как и средства рефакторинга.
Библиотеки? GUI-библиотек много и многие из них портированны под оба компилятора. Так что здесь тоже плюсов не наблюдается.
Единственный плюс это, пожалуй, наличие большего количества различных SDK, а также DDK только под VC.
Вот и остается сравнивать только компиляторы... :D