Актуальность COM, ATL, MFC

413
19 декабря 2016, 20:05

Здравствуйте.

Собственно вопрос состоит в том: почему до сих пор используются MFC, COM, ATL и так ли они хороши, чтобы сейчас их использовать? Дело в том, что я заметил, что на многих вакансиях C++ Developera в перечне необходимых навыков и знаний присутствуют MFC и\или COM, ATL. Неужели их так перспективно учить?

Почему? Где они используются и зачем их применять?

Взять тот же MFC. Он очень громоздкий, тяжелый, неудобный и т.д.... Есть ведь, к примеру, Qt, который намного удобнее и работать с ним приятнее. В чем смысл MFC тогда? Стоит ли его изучать? Зачем на нем писать новые проекты, когда есть более удобные фреймворки (Qt, GTK, SDL в конце концов).

А COM... Он тоже достаточно неудобный и сложный (впрочем как и кривой). Не понимаю почему в вакансиях они так часто встречаются. Enterprise? Но ведь для этого сейчас есть .NET (С# и т.д.) ну и Java конечно, да и такие вещи как WPF, где можно интерфейс сделать довольно-таки быстро и выглядеть он будет прилично.

P.S.: Особенно будет интересно послушать ответы Senior C++ Developerов и про то, используют ли они в своей работе данные вещи (это, конечно, зависит от специализации, но всё же), если да, то зачем и где, а также стоит ли эти технологии изучать (я знаю лишь основы этих технологий, мне тот же Qt больше нравится, чем, к примеру, MFC).

Answer 1

COM - универсальный клей для Windows. COM компонент можно написать на любом языке и вызвать из любого языка. Большое количество функций в Windows основано на COM.

Даже новое WinRT по своей сути является оберткой над COM-овскими объектами.

COM - это фундаментальная часть винды как и WinAPI.

Возможно, для прикладного софта COM стал громоздким, тяжелым, неудобным так же, как и WinAPI, но он - важная часть современной винды.

Answer 2

Всё дело в том, что есть куча старых проектов, которые используют эти технологии. Учить их вовсе необязательно, если не собираетесь сопровождать какой-нибудь старый проект. Microsoft-овская библиотека вообще не прижилась и сейчас существует множество лучших возможностей. СОМ использется в основном для сопровождения. За ATL не ручаюсь — не в курсе.

Answer 3

Qt, однозначно, сейчас более востребован

READ ALSO
Инкремент, декремент

Инкремент, декремент

добрый день, вопрос такой, почему нельзя сделать так:

334
Bada: проблемы с кодировкой.

Bada: проблемы с кодировкой.

Как в Bada перевести строку кириллицы такой как, например, "папа" в следующий вид: "%D0%BF%D0%B0%D0%BF%D0%B0" ? Все примеры которые рассчитаны на чистый C++ не подходят

314
Получить настройки прокси

Получить настройки прокси

Добрый день! Понадобилось получить дефолтовые настройки прокси в Windows XPВот код:

304
Исключения в методе с++

Исключения в методе с++

Добрый день! Хочу, чтобы исключение генерировалось в методе класса, а обрабатывалось в другом месте, поправьте

284