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

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

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

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

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

geo 16.09.2008 18:32

Почему вы сравниваете IDE с UI-фреймворком?

FlySwat 16.09.2008 18:40

Думаю, вам нужно отредактировать свой вопрос, чтобы он был более ясным. Вы сейчас очень субъективны. Добавьте несколько критериев, по которым можно судить о пригодности каждого из них.

Jim McKeeth 16.09.2008 19:37

Это субъективно. Я не вижу возможности прояснения. Спасибо за добавление тега.

geo 16.09.2008 20:06

"MFC почти Qt" ??? Я удивлен, что ты еще не обиделся за это. :-)

Uli Gerhardt 18.05.2009 17:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
5
11 594
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

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

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

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

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

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

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

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

еще +1 за "паскалголик" :)

W.K.S 02.02.2012 22:08
Ответ принят как подходящий

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

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

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

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

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

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

Для большинства SKU Delphi у вас также есть исходный код VCL.

Uli Gerhardt 18.05.2009 17:49

Небольшое примечание: ознакомьтесь с функциональностью предварительно скомпилированных заголовков в C++, если вы еще этого не сделали. (Поскольку вы указываете время компиляции как обратную сторону C++, похоже, что вы не использовали предварительно скомпилированные заголовки, которые в основном делают компиляцию так же быстро, как в delphi (в большинстве случаев)).

Cray 16.05.2012 11:30

Я использовал предварительно скомпилированные заголовки; это помогает. Однако связывание по-прежнему происходит медленно, и ему не помогают PCH, а зависимости заголовков означают, что вам часто приходится перекомпилировать больше, чем хотелось бы.

mxcl 18.05.2012 17:55

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

Язык

Плюсы C++:

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

Плюсы Object Pascal:

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

IDE

Qt плюсы:

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

Плюсы Delphi:

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

Фреймворк

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

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

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

У Qt теперь действительно хорошая IDE, Qt Creator.

Skilldrick 18.05.2009 21:05

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

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

Он не встроен, но есть, например, deltics.co.nz/blog/?tag=multicast-events и blogs.embarcadero.com/abauer/2008/08/15/38865.

Uli Gerhardt 18.05.2009 17:53

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

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

Я только начал экспериментировать с 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.

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