如果你在冒险进入 Delphi 领域或 Qt 领域有差异,你会选择哪一个?我知道它们不完全可比。我有 Builder C++(几乎是 Delphi)和 MFC(几乎是 Qt)的 Windows 开发经验,并有更多时间使用 Builder C++。请在分析中去掉 Qt 的跨平台能力。
我希望得到与两者合作过的人的回复,以及他或她将如何比较框架、环境等?
预先感谢您的回复。
如果您在谈论 UI 框架,那么您应该将 Qt 与 VCL 进行比较,而不是 IDE(在本例中为 Delphi)。我知道我很固执,但 Delphi 是 IDE,Object-Pascal 是语言,VCL 是图形框架。
话虽如此,我认为没有任何东西可以与 VCL 的功能和简单性相媲美。Qt 很棒,但它不是 VCL。
编辑:这个答案写于2008 年。它可能不再那么贴切了,尽管它可能并非完全没用。与盐一起服用。
我两者都使用过,最终选择了 Qt 路线。这些是原因:
C++ 有点缺点,例如。编译时间、打包和集成度较低的 IDE。然而,Qt 确实让 C++ 感觉更像是一种高级语言。例如,QStrings 消除了字符串处理的所有痛苦。因此,您通常会面临 C++ 的其他问题,例如。更多错误代码,在我使用 Qt 时的经验中不太普遍。
此外,Delphi 的库比 Qt 的要多,但是由于您可以在 Qt 项目中使用 ac 或 c++ 库,并且由于 Qt 功能如此齐全,您通常不必查看任何内容,因此可以减轻这种情况更远。
对于一个新项目,我会选择 Delphi 而不是 Qt,这将是一个奇怪的情况。
我会选择德尔福。当然,你问任何pascalholic,他肯定会回答同样的问题。;)
Qt 再次很好,但 VCL 感觉更精致。但这可能是我多年来使用它的工作,所以感觉很好。我对 Qt 的体验仅限于一个短暂的项目,在确定跨平台并不是真正需要之后最终在 Delphi 中重写,这要归功于GoGlobal的强大功能,它可以使任何 win32 应用程序成为 Web 应用程序,因此可以在任何平台。
这实际上取决于您的需求和经验。我都使用过(尽管不得不说我真正使用的最后一个 Delphi 版本是 Delphi 6,而我目前正在使用 Qt 4.4)。
语言
C++ 优点:
对象帕斯卡优点:
IDE
Qt 优点:
德尔福优点:
框架
我将与其他人进行比较,因为我不知道最新的 VCL 是否足够好。我有几点意见:
Qt IMO 的其他原因是非常好的支持和许可,但这取决于您的需求。这两个框架都有大型社区,
Delphi 和 Qt 之间的一个很大区别是 Qt 信号/插槽系统,这使得在对象之间创建 N 对 N 关系并避免紧密耦合变得非常容易。
我认为Delphi中不存在这样的东西(至少我以前使用它时没有这样的东西)。
我刚刚开始尝试使用 Qt/C++/Qt Creator,我必须承认我很惊讶这个“小可爱混蛋”在我的鼻子下面已经有很多年了,我现在才注意到它。
它(框架)看起来很整洁,功能齐全(甚至是 .NET 所缺乏的东西,例如内置的 XQuery 支持)。
似乎大多数编写的 Qt 应用程序都在处理 2D/3D/游戏。
我认为缺点只是:必须了解 C++ 以及缺乏像 QuantumGrid 这样的 DevExpress 好东西。
我正在认真考虑移植我的一个简单应用程序(像 ThumbsView 这样的图片查看器)。
它真的从同一个代码库运行。真的!
忘记 Kylix、Mono、Lazarus、Free Pascal。这个 Qt 东西在 10 次内击败了他们。
Qt Creator 与 IDE 相去甚远。但我希望将来他们会添加更强大的调试器、代码洞察和重构(至少是“重命名”)和更有意义的编译器错误。
我会认真地向没有 Pascal/C++ 经验的人推荐 Qt 学习曲线。
我会选择Delphi,但这可能是因为我以前编写过它。似乎还有很多公司在使用它,几乎每个有 8 年以上经验的人都在某个地方遇到过它。似乎大多数程序员都可以使用它或至少学习 Pascal。更不用说较新的语言(C#)基于它(至少部分)。
如果您关心的是原生 Win32 速度、一流的 RAD 环境和可执行文件大小,请选择 Delphi。如果您需要一个真正的跨平台框架以及现在灵活的许可政策,并且不介意稍微臃肿的代码,请选择 QT。
我在QT/C++下移植了一个旧的Delphi程序,不得不说QT是在易用性和功耗方面最接近VCL的框架(恕我直言)
我会选择德尔福。只是因为我有更多的经验。我认为没有其他合理的标准。
Qt 是跨平台的,如果算上 Kylix,Delphi 就不算什么了。Lazarus 是跨平台的,但功能还不完善。