Qt или Delphi ... Если бы вы выбрали один над другим? - PullRequest
10 голосов
/ 16 сентября 2008

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

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

Заранее благодарю за ответы.

Ответы [ 10 ]

23 голосов
/ 16 сентября 2008

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

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

17 голосов
/ 17 сентября 2008

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

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

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

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

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

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

9 голосов
/ 16 сентября 2008

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

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

6 голосов
/ 18 сентября 2008

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

Язык

C ++ профи:

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

Объект Паскаля Плюсы:

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

IDE

Qt плюсы:

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

Плюсы Delphi:

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

Каркас

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

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

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

5 голосов
/ 24 сентября 2008

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

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

3 голосов
/ 15 июля 2009

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

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

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

Полагаю, что минусы - это только знание C ++ и отсутствие полезностей DevExpress, таких как QuantumGrid.

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

И он ДЕЙСТВИТЕЛЬНО работает с той же кодовой базы. НАСТОЯЩИМ!

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

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

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

1 голос
/ 18 мая 2009

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

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

1 голос
/ 16 сентября 2008

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

0 голосов
/ 16 сентября 2008

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

0 голосов
/ 16 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...