| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Сравнение Qt с MFC |
| Автор: focus_198411 26.10.2008, 00:24 |
| Здравствуйте! Эту тему я создал, для того, что-бы каждый программист оставил своем мение и сравнение библиотек QT и MFC. Какие они имеют плюсы, какие минусы, кто из них сегодня теряет свою популярность, кто наоборот, кто иммет более гибкий подход, кто слишком габаритный? P.S. извените если, не совсем грамотно поставил вопрос, я думаю вы меня поймете! с уважением f0cus |
| Автор: ne0n 26.10.2008, 00:29 |
| focus_198411, http://hardclub.donntu.edu.ua/projects/qt/articles/mfc-vs-qt.html Добавлено через 2 минуты и 56 секунд да и вообще mfc - не являеться кроссплатформенным механизмом. вообщем мое имхо QT рулит. |
| Автор: kosmonaFFFt 26.10.2008, 13:06 |
| Я конечно не эксперт в Qt, на MFC вообще ни разу не писал, но когда оди знакомый попросил объяснить как работает прога, написанная на MFC - пришел в тихий ужас. Имевшееся тогда желание освоить хотя-бы основы MFC пропало навечно. |
| Автор: anatox91 26.10.2008, 14:14 |
| у меня несколько раз появлялось желание изучить MFC, т.к. хотелось попрограммировать под виндой, но каждый раз взглянув на простейший пример у меня желание пропадало очень надолго про Qt лишь скажу что более грамотно спроектированной и организованной библиотеки я еще не видел |
| Автор: aspirin2003 26.10.2008, 19:18 | ||
+1 Однако есть минусы:
|
| Автор: Torsten 27.10.2008, 13:49 |
| MFC - как бесплатный вариант хорош и прост, для винды. Хотя это просто обертка на winAPI. Qt - по лучше, т.к. это ООП обертка для кросс-платформенного программирования. Хотя если что то делаешь, то все равно ингода по нескольку часов приходится сидеть и думать, почему в винде и линуксе по разному что то отображается, то фон другой, то линия какая-та. |
| Автор: Lazin 27.10.2008, 14:19 |
| а почему никто не использует GTK? |
| Автор: SABROG 27.10.2008, 14:32 | ||
А смысл ? При желании можно продать программу написанную на Qt. Также как VoIP Skype или открытый софт работающий под IPhone'ом. |
| Автор: Mayk 27.10.2008, 14:58 |
не знаю как дело счас обстоит но когда-то давно документация у него была просто ужасной по сравнению с Qt и javax.swing. хотя может просто не повезло. mfc кстати идёт в поставке с бесплатной visual studio? |
| Автор: SABROG 27.10.2008, 15:11 | ||||
Скажу тогда за себя. Много раз видел GTKшные приложения (inkscape, ethereal, еще какой-то irc клиент), контролы у них довольно странные, хотя и используются обычные виндовые окна. Выглядят не столько необычно сколько убого. GTK: ![]() Qt: ![]() Qt сразу подкупает человека своими стилями. Жаль, что они не добавляют новые. |
| Автор: Mayk 27.10.2008, 15:22 |
вот кстати да - их диалог выбора файла имхо ужасен |
| Автор: Lazin 27.10.2008, 15:41 |
нет, только в платной. если что, в GTK тоже есть стили хотя диалог выбора файлов ужасен, но это не аргумент |
| Автор: kosmonaFFFt 27.10.2008, 18:29 |
| GTK написан на C и внушает ужас. |
| Автор: Любитель 27.10.2008, 20:44 |
| Переношу в холивары. По сабжу - MFC сравнивать с серьёзными вещами вообще как-то неправильно. GTK - а кто из здесь присутствующих что-то писал на гтк? |
| Автор: Lazin 27.10.2008, 22:38 |
| я писал, правда на pyGTK |
| Автор: slackware 28.10.2008, 00:43 |
| прочел сообщение Цитата(Lazin @ 27.10.2008, 14:19) а почему никто не использует GTK? smile SABROG А смысл ? При желании можно продать программу написанную на Qt. )))))))))))))))))))))))))) SABROG, вы будите уверять, что GTK не Qt? +) клева +) |
| Автор: anatox91 28.10.2008, 10:21 |
| slackware, ты о чем вообще? |
| Автор: Любитель 28.10.2008, 13:54 |
Будем считать, что незасчитано. Над ГТК оч много примочек для других языков, потому что ГТК написано на сях, а не плюсах. Именно поэтому (в первую очередь) ГТК сливает QT |
| Автор: slackware 28.10.2008, 14:25 |
| anatox91, а на QtDeveloper ты не GTK приложения пишешь? +) |
| Автор: Любитель 28.10.2008, 16:25 |
+1 |
| Автор: slackware 28.10.2008, 20:46 |
| Любитель, -1 Добавлено @ 20:47 Любитель, любой может такое написать +) +1 плакалъ |
| Автор: Ockonal 29.10.2008, 09:07 |
| Неадекватный человек... Добавлено через 1 минуту и 20 секунд Мое имхо... Начал учить Qt... Остановился на c#. Вот если бы Qt была бесплатна (коммерческое использование). Устройство библиотеки очень понравилось. Правда, как говорили, тормозная, как комбайн (с) |
| Автор: Mayk 5.11.2008, 16:32 | ||
Кто? Кто посмел отменить pyQT и Jambi? а с документацией там как? |
| Автор: Lazin 5.11.2008, 16:41 |
не в курсе, читал только tutorial |
| Автор: kemiisto 5.11.2008, 17:09 |
| Недавно встала проблема выбора фреймворка для построения кросплатформенных GUI программулек. |
| Автор: Любитель 5.11.2008, 21:32 |
Ну... Даже официальных биндингов для ГТК гораздо больше - http://www.gtk.org/language-bindings.html |
| Автор: nerezus 7.11.2008, 12:23 | ||||||
|
| Автор: kemiisto 11.12.2008, 17:20 |
Нет, тоже не пойдёт. Python ещё изучать. Да и потом, большая часть документации по Qt всё равно на C++. Я уж лучше Java поковыряю. |
| Автор: kosmonaFFFt 11.12.2008, 20:41 | ||
ИМХО питон один из самых простых в изучении языков. |
| Автор: nerezus 11.12.2008, 20:49 | ||
Да он имхо немногим легче C++. А самые легкие - это субъективно жаба и паскаль. |
| Автор: kemiisto 11.12.2008, 20:59 |
Java - лёгкий в изучении? |
| Автор: JackYF 12.12.2008, 19:04 |
| Перл рулит |
| Автор: Lazin 12.12.2008, 21:59 |
| a Python рулит и педалит |
| Автор: Coocky 13.12.2008, 02:41 | ||
| Сразу видно по ответам,кто дилетант,а кто программер Тут один чел граммотно сказал-МФС-очень крутая и удобная библиотека для разработки приложений под винду..Это всего лишь ОБЕРТКА над стандтардным и классическим WinAPI/ Что позволяет писать приложения быстрее.По поддержку СОМ,ОЛЕ БД и прочего -я просто молчу...Да -она немного громоздка,страшна,и неудобна..Для тех,кто не хочет разбираться или учить,а хочет мнгновенную халяву..Но..У вас всего два выбора-либо МФС либо-.....Винапи Все остальное-имеет свои преймущества и недостатки..Qt,в плане программирования-ну вроде как удобней Сам программирую на МФС уже лет 5-6. Пробывал и Qt-можете найти мои посты по поводу впечатлений. Однако сравните цены-и вы все поймете. Сколько и что стоит..А разобраться в библиотеке МФС-делов то-2-3 месяца.. Зато-это истиное ООП-и если вы плохо учили классический С++,тогда вам будет СТРАШНО Всем остальным-бог в помощь в разработке быстрых приложений. Добавлено через 3 минуты и 59 секунд
МФС -уже столько лет,что вам и не снилось..Ее миллион раз хоронили,а она жива. Более того-еще и новой версией обагатилась..Поддержка ее была слаба,ибо все было кинуто Мелкими на ДОТ нет и C#. Так что -серьезней-вы не найдете Можно говорить-ИМХО,а можно и нужно анализировать! Чего вам и советую. |
| Автор: kemiisto 13.12.2008, 03:31 | ||||
Ну, со вторым понятно, а к продуктам ex-Borland MFC каким, прости, макаром? Тебе не кажется, что ты противоречишь сам себе? Про .NET отмолчался?
Что то я не улавливаю связи между знанием C++ и истинным ООП. Истинное - оно в Smalltalk, Ruby, Python. Там где всё - объект и объекты обмениваются путём посылки сообщений. А грубишь зря. Сразу видно, что ты адепт C++ & MFC. Хотя ты верно, сказал. Сразу видно, кто программер... А кто такой программер? По возрасту Qt и MFC - ровесники.
Ключевое слово - выделено жирным шрифтом. |
| Автор: Lazin 13.12.2008, 11:05 |
либо ATL/WTL, а все остальное пока экзотика, может это даже и к лучшему |
| Автор: Coocky 13.12.2008, 13:43 | ||||||
C ATL- соглашусь.. WTL-только те,у кого много свободного времени
Еще раз..ВНИМАТЕЛЬНО следим за моими руками. Здесь сравнивается что?Qt с MFC. Значит под Винду программим Итак- вы согласны,что..ну минимум 80% продукта разрабатываются Борланд(Делфи и С++) и VC++?Согласны.. Я думаю. Так вот,Делфи отбрасываем-ибо это удел Паскаля.Остается что?Правильно-для языков С++ ()-остается Борланд и VC++ .А теперь давайте сравним- 1. Каким средством разрабатывается большинство программ? 2. Знание какого средства разработки наиболее востребовано на рынке труда? 3. ЧТо наиболее оплачиваемо и универсально? Так вот,кто работает и зарабатывает себе на ЖИЗНЬ ,а значит существует и ОРЕИНТИРУЕТСЯ,а не ПОДРАБАТЫВАЕТ между парами,тот легко ответить на эти вопросы.Кто еще молод и амбициозен-пусть пройдется по рынку вакансий (С# и JAVA-не считаем). Еще есть вопросы? MFC 1992, Qt 1996. Вообщем-то почти да.Если не считать,что за 4 года было написано миллион приложений.А интересоваться стали Qt не более,чем 3 года назад,ибо ТОЛЬКО тогда вышло нечто под Винду .
Никто никому не грубил. Для того,что б отвечать,нужно хотя бы разбираться в вопросе.Или минимум сравнить на личном опыте. У ВАС есть сравнение? Если да-укажите мне недостатки и преймущества,плиз Теперь немного справочной информации. Первая версия MFC была выпущена вместе с седьмой версией 16-разрядного компилятора языка C/C++ компании Microsoft в 1992 году. Для тех, кто занимался разработкой приложений с использованием API функций, пакет MFC обещал весьма значительное повышение производительности процесса программирования. Object Windows Library (OWL), разработанная компанией Borland для работы с собственным компилятором C++, была конкурирующим продуктом, представленным в тот же период. В конце концов Borland прекратила разработку OWL и приобрела краткосрочную лицензию на использование библиотек для работы c MFC, но так и не предложила полной поддержки MFC в своих продуктах. Позднее Borland выпустила VCL в качестве замены OWL. Упор компании Microsoft на MFC был ослаблен в пользу Microsoft .NET Framework. Однако, несмотря на это, MFC по-прежнему остается популярной среди разработчиков. В настоящее время корпорация Microsoft объявила MFC устаревшей библиотекой. Хотя опять же-вышла-новая версия, где в основе лежит купленая у питерских разработчиков библиотека.Дай бог памяти-забыл название. Windows Template Library (WTL) — свободно распространяемая шаблонная библиотека классов C++, предназначенная для написания стандартных GUI приложений Windows, являющаяся расширением библиотеки ATL. WTL представляет из себя надстройку над интерфейсом Win32 API операционных систем Windows, и в первую очередь разрабатывалась как облегчённая альтернатива библиотеке MFC. WTL поддерживает работу с окнами и диалогами, стандартными диалогами Windows, GDI, стандартными контролами, ActiveX и пр. В библиотеке представлены основные элементы управления: меню, панели инструментов, кнопки, поля ввода, списки и т. д. Помимо основных, также доступны для использования оконные элементы управления, такие как Splitter. В библиотеку включены также некоторые вспомогательные классы, например класс-обертка строки CString, синтаксически совместимая с аналогичным классом библиотеки MFC. Изначально WTL была разработана сотрудником Microsoft Нэнадом Стефанович для внутреннего использования, но позже была выпущена в качестве дополнения к Microsoft Visual Studio и Win32 Framework SDK, но без официальной документации и поддержки. Билиотека распространяется по лицензии Common Public License Version 1.0. А потому неотвеченных вопросов на форумах -НЕМЕРЕННО! Отличительная особенность Qt от других библиотек — использование Meta Object Compiler — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов, содержащие макрос Q_OBJECT, и создает дополнительный исходный файл на C++, содержащий мета-объектный код. Active Template Library (ATL) — набор шаблонных классов языка C++, разработанных компанией Microsoft для упрощения программирования объектов из Модели Компонентных Объектов Component Object Model (COM). COM, реализованная в Visual C++, позволяет разработчикам создавать различные объекты COM, сервера автоматизации OLE и управляющие элементы ActiveX. Созданная по схеме Standard Template Library (STL), ATL включает мастера и помощники, позволяющие создать первичную объектную структуру практически без программирования вручную. Например, управление интернет-магазином может быть реализовано с помощью Microsoft Foundation Classes. Но для передачи по сети размер магазина должен быть небольшим. Приложения, написанные на MFC, отличаются своими размерами и требованием поддержки библиотек. В то же время ATL позволяет создавать небольшие по размеру элементы управления, которые не требуют поддержки библиотек. Таким образом, ATL — это в некоторой степени облегчённая альтернатива MFC в качестве средства управления COM. ATL используется в ASP (Active Server Pages) для создания объектов, которые могут быть вызваны скриптом. Добавлено через 3 минуты и 51 секунду
Господа,дабы разрешить наш спор-назовите плиз три составляющие ООП? |
| Автор: kemiisto 13.12.2008, 14:02 | ||||||||
Вот они:
Нет. Не думаю. Java, C# и VB.NET никак не могут в сумме давать меньше 20%. Руками. По правде говоря, не знаю. Ты думаешь VS?
Головы? Опять VS? Java.
Опять же: ты настойчиво игнорируешь .NET. А вот я тебе и говорю, что такого ограничения изначально никто не вводил (посмотри сообщение ТС'а)! И вводя его ты отбираешь у Qt, пожалый, главный козырь - кроссплатформенность. Так не пойдёт! |
| Автор: nerezus 13.12.2008, 14:17 | ||||
Но никак уж не C++-средства — достаточно посмотреть в вакансии - всем нужнен веб и EE.
Если фриланс - то PHP и C(malware) P.S. Java + Qt очень понравилось. Мощная связка. |
| Автор: Coocky 13.12.2008, 14:33 | ||
Добавлено через 7 минут и 49 секунд
Да..Видать я отстал от жизни Насколько я помню,есть три кита, которые лежат в основе ООП-инкапсуляция,наследование,полиморфизм. Все остальное-еретизм и отсебятина.. Причем тут сообщения Я ж сказал про рынок труда-из того,что я перечислил,ибо мы говорим о С++.Читать не умеем? Отделяйте мух от котлет.Причем тут JAVA, eclipse/netbeans PHP...... Давайте еще сюда токарей,водителей машрутки. Мы что сравниваем? Назовите мне хотя бы....ээээ.....10 продуктов ( |
| Автор: Coocky 13.12.2008, 14:49 |
| Еще раз повторяю-я юзал немного Qt и не говорю,что это плохая библиотека.Многое даже понравилось.НО! Есть свои минусы,при всех плюсах. А потому под Винду-пока еще не конкурента. И мало кто решится,ну разве что рад любопытства,перейти на нее,отказавшись от АПИ ,или МФС. Главные факторы-среда разработки,стоимость. Что касается понимаемости или простоты-можно поспорить.Я согласен.Только вот спорьте,а не ерунду говорите про другие языки,библиотеки,системы,технологии.. |
| Автор: Lazin 13.12.2008, 15:17 | ||
А я думал это инкапсуляция, наследование и полиморфизм (и интроспекция, но это уже на про с++ посылка сообщения объекту в с++ это вызов метода объекта, все объекты в MFC унаследованы от общего предка, и состоянием они то-же могут обладать. Хотя на самом деле эта библиотека немного устарела, я считаю. читай выше ЗЫ сейчас обязательно кто-нибудь прийдет и начнет кричать что венда мастдай и тд |
| Автор: kemiisto 13.12.2008, 15:33 | ||
Ты по ссылке то ходил? Так трудно что ли?
Adobe Photoshop Album, Google Earth, Last.fm Player, Skype, VirtualBox, VLC Media Player, Mathematica, PerfectDisk. И опять - причём тут Windows? |
| Автор: Lazin 13.12.2008, 16:35 |
у них интерфейс на wxWidgets |
| Автор: nerezus 13.12.2008, 17:55 |
| новые его версии на Qt. |
| Автор: kosmonaFFFt 13.12.2008, 19:59 |
| И Opera, насколько я знаю, тоже на Qt. |
| Автор: kemiisto 13.12.2008, 20:03 | ||
Это не верно. http://my.opera.com/kilsmo/blog/2008/01/29/opera-is-not-based-on-qt.
|