Qt или Delphi Если бы вы предпочли одно другому?

Если бы у вас была разница между тем, чтобы отправиться в мир Delphi или в мир Qt, что бы вы выбрали? Я знаю, что они не совсем сопоставимы. У меня, например, есть опыт разработки под Windows с помощью Builder C++ (почти Delphi) и MFC (почти Qt), и немного больше времени я работаю с Builder C++. Пожалуйста, исключите кроссплатформенность Qt в своем анализе.

Я надеюсь на ответы людей, которые работали с обоими, и как он или она сравнит структуру, среду и т. д.?

Заранее благодарим вас за ответы.


person geo    schedule 16.09.2008    source источник
comment
Я надеюсь на ответы людей, которые работали с обоими, и как он или она сравнит структуру или среду?   -  person geo    schedule 16.09.2008
comment
Почему вы сравниваете IDE с фреймворком пользовательского интерфейса?   -  person FlySwat    schedule 16.09.2008
comment
Я думаю, вам нужно отредактировать свой вопрос, чтобы быть более ясным. Вы сейчас очень субъективны. Добавьте несколько критериев, по которым можно судить о пригодности каждого из них.   -  person Jim McKeeth    schedule 16.09.2008
comment
Это субъективно. Я не вижу возможности уточнения. Спасибо за добавление тега.   -  person geo    schedule 16.09.2008
comment
MFC почти Qt??? Я поражен, что тебя еще не обвинили в этом. :-)   -  person Uli Gerhardt    schedule 18.05.2009


Ответы (10)


Изменить: этот ответ был написан в 2008. Вероятно, это уже не так удачно, хотя, возможно, и не совсем бесполезно. Принимать с солью.

Я использовал оба и в итоге пошел по маршруту Qt. Вот причины:

  • Trolltech предлагает быструю и индивидуальную поддержку по электронной почте
  • Qt регулярно внедряет инновации и новые мощные функции.
  • Документация Qt потрясающая, а в тех редких случаях, когда это не так, вы можете прочитать исходный код.
  • Наличие исходного кода для Qt также позволяет вам выполнять отладку внутри ваших базовых библиотек, что во многих случаях спасало мне жизнь.
  • API очень согласован и хорошо разработан. Мы привлекли к проекту новых людей, и в течение месяца они демонстрируют глубокие знания инструментария и могут очень быстро осваивать новые классы.
  • Он имеет привязки к другим языкам, например. Руби и Питон.

С++ является несколько недостатком, например. время компиляции, упаковка и менее интегрированная IDE. Однако Qt делает C++ более похожим на язык более высокого уровня. Например, QStrings берет на себя всю боль при обработке строк. Таким образом, дополнительные проблемы с C++, с которыми вы обычно сталкиваетесь, например. более ошибочный код, по моему опыту, менее распространены при использовании Qt.

Кроме того, существует больше библиотек для Delphi, чем для Qt, но это смягчается тем, что вы можете просто использовать библиотеку C или C++ в проекте Qt, а также тем, что Qt настолько полнофункционален, что вам часто не нужно искать дальше.

Было бы странно, если бы я выбрал Delphi вместо Qt для нового проекта.

person mxcl    schedule 17.09.2008
comment
С большинством SKU Delphi у вас также есть исходный код VCL. - person Uli Gerhardt; 18.05.2009
comment
Просто примечание: ознакомьтесь с функциональностью предварительно скомпилированных заголовков в C++, если вы еще этого не сделали. (Поскольку вы считаете время компиляции недостатком C++, кажется, что вы не используете предварительно скомпилированные заголовки, которые в основном делают компиляцию такой же быстрой, как в delphi (в большинстве случаев)). - person Cray; 16.05.2012
comment
Я использовал предварительно скомпилированные заголовки; помогает. Однако компоновка по-прежнему медленная и не поддерживается PCH, а зависимости заголовков означают, что вам часто приходится перекомпилировать больше, чем хотелось бы. - person mxcl; 18.05.2012

Если вы говорите о фреймворках пользовательского интерфейса, то вам следует сравнивать Qt с VCL, а не с IDE (в данном случае с Delphi). Я знаю, что я сторонник, но Delphi — это IDE, Object-Pascal — это язык, а VCL — это графическая среда.

При этом я не думаю, что есть что-то, что хотя бы приблизилось к мощности и простоте VCL. Qt великолепен, но это не VCL.

person Mick    schedule 16.09.2008

Я бы выбрал Делфи. Конечно, вы спросите любого паскальголика, и он обязательно ответит точно так же. ;)

С Qt снова все в порядке, но VCL выглядит более отточенным. Но тогда это могут быть годы моей работы с ним, так что это просто кажется правильным. Мой опыт работы с Qt ограничился недолговечным проектом, который в итоге был переписан на Delphi после того, как было определено, что кроссплатформенность на самом деле не нужна благодаря мощи GoGlobal, который может превратить любое приложение win32 в веб-приложение и, следовательно, работать на любой платформе.

person skamradt    schedule 16.09.2008
comment
еще +1 за паскальхолика :) - person W.K.S; 02.02.2012

Это действительно зависит от ваших потребностей и опыта. Я работал с обоими (хотя должен сказать, что последней версией Delphi, с которой я действительно работал, была Delphi 6, а сейчас я работаю с Qt 4.4).

Язык

Плюсы С++:

  • С++ более "стандартный", например. вы найдете больше кода, библиотек, примеров и т. д., и вы можете свободно использовать STL и повышать, в то время как Object Pascal является более экзотическим языком
  • Qt компилируется на разных платформах и компиляторах (Kylix основан на Qt, кстати)

Плюсы объектного Паскаля:

  • некоторые динамические свойства встроены прямо в язык, никаких уродливых обходных путей, таких как MOC, не требуется.
  • компилятор сильно оптимизирован для языка и действительно очень быстр
  • язык менее сложен, чем C++, и поэтому менее подвержен ошибкам

IDE

QT плюсы:

  • Строго говоря, для Qt нет IDE, кроме конструктора, но он хорошо интегрируется в предпочитаемую вами IDE (по крайней мере, в Visual Studio и Eclipse).
  • дизайнер лучше справляется с макетами, чем с формами Delphi (Примечание: это основано на опыте работы с Delphi 6 и может быть неверным с текущими версиями)

Плюсы Делфи:

  • IDE теперь действительно отточена и проста в использовании, и она явно превосходит Visual Studio IMO (у меня нет опыта работы с Eclipse).
  • нет пункта 2... но если бы мне пришлось присвоить модное слово "интегрированный", я бы присвоил его Delphi IDE

Структура

Я оставлю сравнение с другими, так как я недостаточно хорошо знаю новейший VCL. У меня есть некоторые замечания:

  • обе платформы охватывают большую часть необходимой функциональности
  • у обоих есть доступный исходный код, который является обязательным IMO
  • у обоих более-менее согласованная структура — я предпочитаю Qt, но это зависит от ваших предпочтений (примечание: я бы никогда не сказал, что Qt — это почти MFC — я давно пользуюсь MFC, и и Qt, и Delphi — и .NET , если на то пошло - намного лучше)
  • VCL имеет больше функций, ориентированных на БД, особенно связь с визуальными компонентами.
  • Qt имеет больше функций, ориентированных на рисование (2D / 3D / OpenGL).

Другими причинами, говорящими в пользу Qt IMO, являются очень хорошая поддержка и лицензирование, но это зависит от ваших потребностей. Существуют большие сообщества для обоих фреймворков,

person Community    schedule 18.09.2008
comment
Теперь у Qt действительно хорошая IDE, Qt Creator. - person Skilldrick; 18.05.2009

Большая разница между Delphi и Qt заключается в системе сигналов/слотов Qt, которая позволяет очень легко создавать отношения N-к-N между объектами и избегать тесной связи.

Я не думаю, что такая вещь существует в Delphi (по крайней мере, когда я ее использовал, такой вещи не было).

person Aurélien Gâteau    schedule 23.09.2008

Я только начал экспериментировать с Qt/C++/Qt Creator и должен признать, что был удивлен, что этот "маленький милый ублюдок" был у меня под носом несколько лет, а я обратил на него внимание только сейчас.

Он (фреймворк) выглядит аккуратно, полнофункционально (даже были вещи, которых нет в .NET, например, встроенная поддержка XQuery).

Кажется, что большинство написанных приложений Qt имеют дело с 2D/3D/играми.

Я считаю, что минусы только в том, что нужно знать C++ и отсутствие таких фишек DevExpress, как QuantumGrid.

Я серьезно подумываю о переносе одного из моих простых приложений (средства просмотра изображений, такого как ThumbsView).

И это ДЕЙСТВИТЕЛЬНО работает из той же кодовой базы. СЕРЬЕЗНО!

Забудьте о Kylix, Mono, Lazarus, Free Pascal. Эта штука с Qt превосходит их всех в 10 раз.

Qt Creator далек от IDE. Но я надеюсь, что в будущем они добавят более мощный отладчик, понимание кода и рефакторинг (по крайней мере, «Переименовать») и более значимые ошибки компилятора.

Я бы серьезно рекомендовал всем, у кого нет опыта работы с Pascal/C++, пройти курс обучения Qt.

person Gad D Lord    schedule 14.07.2009

Я бы выбрал Delphi, но это, вероятно, потому, что я программировал его раньше. Кажется, есть еще несколько компаний, которые его используют, и почти все, у кого есть опыт работы более 8 лет, где-то сталкивались с этим. Кажется, что большинство программистов могут относиться к его использованию или, по крайней мере, к изучению Pascal. Не говоря уже о том, что более новые языки (C#) основаны на нем (по крайней мере, частично).

person kemiller2002    schedule 16.09.2008

Выберите Delphi, если вас интересует собственная скорость Win32, первоклассная среда RAD и размер исполняемого файла. Выберите QT, если вам нужна по-настоящему кроссплатформенная среда в сочетании с гибкой политикой лицензирования и вас не смущает слегка раздутый код.

Я портировал старую программу Delphi под QT/C++, и должен сказать, что QT — это фреймворк, наиболее близкий к VCL с точки зрения простоты использования и мощности (ИМХО).

person Community    schedule 18.05.2009

Я бы выбрал делфи. Только потому, что у меня больше опыта в этом. Не думаю, что есть другие разумные критерии.

person cleg    schedule 16.09.2008

Qt кроссплатформенный, Delphi не очень, если считать Kylix. Lazarus является кроссплатформенным, но еще не полностью функциональным.

person Community    schedule 16.09.2008