ИМХО - очень плохое слово. Выражает неуверенность автора в своих высказываниях. Подобные словечки в тексте новости крайне плохо смотрятся. Сравнивать данные библиотеки глупо и некоррктно. QT претендует на кроссплатформенность, а MFC иначе как ОО надстройка над Win32 API никогда не рассматривалась. Да и MS, вроде, считает MFC устарешей технологией и забивает на это.
Имхо, такие сравнения приводят к одному: показательный разгром MFC. Нельзя MFC ни с чем сравнивать (разве что с wxWidgets - которая проектировалась как аналог). Ну уж тем более с Qt :)
Кстати говоря, искал для себя кроссплатформенный тулкит, ничего, кроме QT, сейчас реально нет. Даже SDL, который срвсем не GUI тулкит, а все GUI библиотеки к нему убоги до неприличия, особой кроссплатформенностью не радует. Абсолютно непонятные глючки на ряде платформ. QT довольно стабилен. Но C++ - не хочу. Для работы - только C++. Для себя - не хочу.
Сравнили жопу с пальцем. MFC ето настоящий "C с классами" - в прямом смысле слова.
Ну не реализуют так C++ библиотеки. Такое впечатление, что M$ когда разрабатывали
MFC делали ето for fun.
> QT довольно стабилен. Но C++ - не хочу. Для работы - только C++. Для себя - не хочу.
PyQt?
Или мсье знает толк в извращениях и желает plain C? ;)
Кстати, почему из рассмотрения исключен GTK2? Не сказать, чтобы он мне нравился или очень хорошо работал за пределами X Window System, но сказать, что он совсем не функциклирует, нельзя.
---cut---
Documentation of Ultimate++ is still a work of progress and only a fraction of it is now finished.
If you want to learn more about Ultimate++, the best way how to do that at the moment is to go through reference examples, normal examples, TheIDE sources and to ask in our mailing list for rest.
---cut---
уже по этому показателю её можно отправить фффтопку. вот когда
подрастет - будет разговор. maybe.
одна радость - это BSD License. но этого как-то маловато будет.
Такие "наезды" показывают слабость позиций софта "альтернативного" M$.
Ну а "Микрософт" отвечает на наезды микропроизводителей "альтернатив" своему софту по принципу "Собака лает, караван идёт" или
"Ах, Моська! Знать она сильна, что лает на слона".:)
ЗЫ. Ждем сравнения супер-пупер библиотеки Qt c .NET WinForms.
ЗЫЫ. Самый убийственный аргкмент против MFC. Приписывается Майклу Муру. "Микрософт" сотрудничает с "Халибертон". Следовательно, MFC - бяка.
Спецы подскажите.
Хочу сделать связку Perl (backend) + Flash GUI никто не знает чде про это можно прочитат и вообще так кто нибудь делает или нет? Усли нет то что лучше всего использовать как GUI в связке c Perl'ом?
Не для флейма ради, а нужно по делу.
Может быть. Однако, "кривизну" MFC надо ОБОСНОВАТЬ, при этом сначала, как всегда учил Луговский, дать ОПРЕДЕЛЕНИЕ, что есть термин "кривизна". А любое необоснованное высказываение - это пук в лужу.
> Может быть. Однако, "кривизну" MFC надо ОБОСНОВАТЬ, при этом сначала, как всегда учил Луговский, дать ОПРЕДЕЛЕНИЕ, что есть термин "кривизна". А любое необоснованное высказываение - это пук в лужу.
Кривизна - неудобство использования. Qt удобнее использовать чем MFC, следовательно MFC более крив, чем Qt. Далее по тексту "MFC - кривой" будет означать "MFC более кривой, чем Qt".
Так вот... MFC - кривой.
По поводу обоснования... попробуй попользуйся MFC, а потом попробуй Qt. Если после этого будешь считать, что MFC лучше... то... можешь отшлепать себя своей кожаной плеткой.
> Кстати говоря, искал для себя кроссплатформенный тулкит, ничего, кроме QT, сейчас реально нет. Даже SDL, который срвсем не GUI тулкит, а все GUI библиотеки к нему убоги...
VCL изначально ориентировался на WinAPI, CLX имеет проблемы с дизайном. Причём, как человек пытавшийся его пользовать... Точно скажу - серьёзные... :-( Сравнивать тогда уже FCL... ;-)
> Ну да... а то что в той же WinForms используются делегаты (по сути - аналог слотов)
Так, ну это уже более по существу, за что и вам признателен.
Понимаете, использование делегатов порождает "событийный потоп". Это термин широко известного в узких кругах некого господина Брюса А.Тэйта, который хорошо описАл это явление. Именно этот эффект и привел к отказу от наработок IBM Taligent/Pink/OpenDoc. Я согласен с означенным господином, ибо я лично лет 8 назад получал по DAP программе Taligent framework (запускался в "полуоси").
Не свободны от "событийного потопа" и AWT, SWT, JFC/Swing и ... WinForms. А вот MFC вполне "комфомфортно себя чувствует".
Интересно, что на курсах по MFC нам рассказывали о происхождении пефиксов afx в MFC.
Требования производительности оказались немаловажными. У Микрософта таки хватило ума не "упереться рогом", как IBM.
Поэтому промышленные программы типа Red Shift, XML Spy, безусловно, содержат некий критикуемый менее удачливыми производителями тулкит.
То есть флуд на ЛОРе типа "KDE тормозит" в первооснве имеет все-таки "событийный потоп".
Ну а для простенькиъ формочек с "лейаутами" - давайте WinForms с Qt сравним. Можно и грушу с яблоком сравнить. Только издатели действительно широко распространненных программ (e.g.Adobe) выбирают MFC. (А также ATL + MFC)
> Вместо сравнения MFC и Qt вы начали священную войну Microsoft vs. Open Source
К сожалению, "holy war" начала как раз другая сторона. :(
Не стоит забывать _ВСЕМ_ и поклоникам Некрософта и ОпенСорсникам о том, что Некрософфт у своих истоков пизди"а и будет пиз"ить технологии и концепции организации у других! Тем более сейчас, когда ОпенСорс шагает семимильными шагами, и при этом наработки просто гиганские, все эти же наработки использует Некрософт ... воть как .. Поэтому я думаю, что МФЦ был актуален 5-7 лет назад, програмисты(инженеры) поняв кривость (точнее даже неактуальность) МФЦ кинулись разрабатывать что то свое.... так родились ВЦЛ и ЦЛиКс...
Делаем выводы господа...
Думать ты можешь все что угодно. Только взрослым солидным дядям твои думки абсолютно по барабану.
Да, когда аргументов по существу не хватает, то начинается совесный понос. Малыш, когда серьезный софт, который используют взрослые дяди будет переведен на VCL, тогда и поговорим. Я думаю завтра в четверг, после дождичка. А пока расти большой и свои гормональные комплексы не переноси на какую-то там MCF.
> Понимаете, использование делегатов порождает "событийный потоп".
Нельзя ли подробнее? Я что-то не до конца улавливаю, что именно топится. События зацикливаются? Одни события порождают другие, которые, возможно косвенным образом, порождают снова первые? Если честно, то подобное развитие событий (каламбур) мне представляется возможным только в случае неудачного (мягкое слово) проектирования, и вряд ли этого можно избежать на MFC (криво написать на любом тулките можно). Или я что-то не понял?
> P.S. А что народ скажет о wxWindows?
Что она довольно глючная, не всегда логичная,
и задолбала своими макросами. Чтобы объявить
контейнеры, надо использовать макросы и потом
инклудить .cpp файл - ужасно не удобно для
человека, привыкшего к STL.
Но в конечном итоге она работает, а для GUI -
работает вполне даже сносно, и её, по этому,
приходится-таки использовать. Дорабатывать
напильником проги при портировании обычно всё
же приходится, но, как правило, не очень долго.
> Малыш, когда серьезный софт, который используют взрослые дяди будет переведен на VCL, тогда и поговорим. Я думаю завтра в четверг, после дождичка.
Вчера, друг мой, вчера... The Bat!, X1 Desktop Search (от google), Netcaptor, Total Commander, Inno Setup, Skype, сама Delphi, Macromedia HomeSite... ;-F)
> Спецы подскажите. Хочу сделать связку Perl (backend) + Flash GUI никто не знает чде про это можно прочитат и вообще так кто нибудь делает или нет? Усли нет то что лучше всего использовать как GUI в связке c Perl'ом? Не для флейма ради, а нужно по делу.
1. Книга печатная Bitter Java у меня дома. Там как раз про неудачность проектирования тулкитов Тэйт рассуждает. У меня сейчас Acrobat не деёт скопировать и запостить цитату со страниц 40-41 оригинального издания. Там ключевое слово "s-l-o-w" (с).
Что касается кривизны написания, то "антипаттерны" можно наделать на любом тулките и MFC здесь не панацея.
Речь идет именно о критериях к тулкиту. Сравните KStars и RedShift. Кто из них одновременно и шустрее и функциональнее.
2. Ну а на делегатах Hello World можно и так забацать.:)
delegate string MyDelegate(string inputString);
class MyTestDelegate
{
public static string MyMethod(string inputString)
{
return inputString;
}
public static void Main()
{
MyDelegate myDelegate = new MyDelegate(MyTestDelegate.MyMethod);
string returnValue = myDelegate("Hello, World!");
System.Console.WriteLine(returnValue);
}
}
Вот бы сеё диво дивное да на слотах!:) Только хоть C# в отличие от C++& Qt и для домохозяек, зато синтаксис хоть "прозрачен".
Это уже, конечно, стёб, однако, давайте сравним два приложения - одно на MFC, другое на "слотах" Qt. В приложении при нажатии на кнопку "Hi" в диалоговом окне будет выведено в метке "Hello, World!". Потом посмотрите какие и как идут сообщения.
3. Типа вывод (тавтологический). Любой кросплатформенный тулкит будет работать медленнее нативного. Кросплатформенность хороша для веб-интерфейса.
Ну про http://www.codejock.com в статье сказано. Что касается http://prof-uis.com, то если ЭТО лицо "индустрии софта для MFC", то говорить с вами не очем. http://prof-uis.com как раз по моему опыту -- ярчайший пример попытки продавать кустарную (даже толком не отлаженную!) поделку. Ни в какое сравнение с Qt profuis не идет.
Не, ну ви таки видели, как этот PyQT реализован? Злейшему врагу не пожелаешь такого кипиша. Там написали парсер C++ только для того чтобы нагенерить стабов! Плохой язык C++, плохо биндится.
Вот когда забиндите Qt к Java через JNI, тогда гойворите, что C++ не поцня.