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

StackOverflow https://stackoverflow.com/questions/72799

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

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

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

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

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

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

Язык

Плюсы C++:

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

Плюсы Object Pascal:

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

Среда разработки

Плюсы Qt:

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

Плюсы Delphi:

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

Структура

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

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

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

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

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

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

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

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

Я считаю, что недостатками являются только:необходимость знать C ++ и отсутствие полезных функций DevExpress, таких как QuantumGrid.

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top