题
如果您有机会进入 Delphi 领域或 Qt 领域,您会选择哪一个?我知道它们不完全可比。我拥有使用 Builder C++(几乎是 Delphi)和 MFC(几乎是 Qt)进行 Windows 开发的经验,并且有更多时间使用 Builder C++。请在你的分析中拿出Qt的跨平台能力。
我希望得到曾经使用过两者的人的答复,以及他或她如何比较框架、环境等?
预先感谢您的回复。
解决方案
编辑:这个答案写在 2008. 。它可能不再那么恰当了,尽管它可能并非完全无用。加盐服用。
我两者都用过,最终选择了 Qt 路线。原因如下:
- Trolltech 通过电子邮件提供快速、一对一的支持
- Qt 不断创新,定期推出强大的新功能
- Qt 文档非常棒,在极少数情况下,您可以阅读源代码
- 拥有 Qt 的源代码还可以让您在基础库中进行调试,这在很多情况下对我来说都是救星
- 该 API 非常一致且设计良好。我们已经为该项目安排了新人员,一个月内他们就表现出了对工具包的深入了解,并且可以很快学习新课程
- 它与其他语言有绑定,例如。Ruby 和 Python。
C++ 有一些缺点,例如。编译时间、打包和集成度较低的 IDE。然而,Qt 确实让 C++ 感觉更像是一种高级语言。例如,QStrings 消除了字符串处理的所有痛苦。因此,您通常会遇到 C++ 的其他问题,例如。根据我使用 Qt 的经验,更多错误代码并不常见。
另外,Delphi 的库比 Qt 的库多,但由于您可以在 Qt 项目中仅使用 C 或 C++ 库,而且 Qt 的功能非常齐全,因此您通常不需要查看任何库,因此可以减轻这种情况。更远。
如果我在新项目中选择 Delphi 而不是 Qt,那将是一种奇怪的情况。
其他提示
如果您谈论的是 UI 框架,那么您应该将 Qt 与 VCL 进行比较,而不是 IDE(在本例中为 Delphi)。我知道我很固执,但 Delphi 是 IDE,Object-Pascal 是语言,VCL 是图形框架。
话虽如此,我认为没有任何东西可以与 VCL 的功能和简单性相媲美。Qt 很棒,但它不是 VCL。
我会选择德尔福。当然,你问任何一个帕斯卡狂,他肯定会给出同样的答案。;)
Qt 也很好,但 VCL 感觉更精致。但那可能是我多年来与它合作的结果,所以感觉很好。我对 Qt 的体验仅限于一个短暂的项目,在确定由于 走向全球 它可以使任何 win32 应用程序成为 Web 应用程序,因此可以在任何平台上运行。
这实际上取决于您的需求和经验。我曾经使用过这两种版本(不过不得不说,我真正使用的最后一个 Delphi 版本是 Delphi 6,而我目前正在使用 Qt 4.4)。
语言
C++ 优点:
- C++ 更“标准”,例如你会发现更多的代码、库、示例等,并且你可以自由地使用STL和boost,而Object Pascal更多的是一种奇异的语言
- Qt 在不同平台和编译器上编译(Kylix 基于 Qt,BTW)
对象帕斯卡优点:
- 一些动态属性直接构建到语言中,不需要像 MOC 这样丑陋的解决方法
- 编译器针对该语言进行了高度优化,而且速度确实非常快
- 该语言不如 C++ 复杂,因此不易出错
集成开发环境
Qt 优点:
- 严格来说,除了 Designer 之外,Qt 没有任何 IDE,但它可以很好地集成到您首选的 IDE(至少是 Visual Studio 和 Eclipse)中
- 设计器在布局方面比 Delphi 表单做得更好(注意:这是基于Delphi 6的经验,而当前版本可能不正确)
德尔福的优点:
- 现在,IDE 确实非常完善且易于使用,在我看来,它明显击败了 Visual Studio(我没有使用 Eclipse 的经验)
- 没有一点2...但如果我必须分配流行词“集成”,我会将其分配给 Delphi IDE
框架
我将与其他人进行比较,因为我不太了解最新的 VCL。我有几点评论:
- 两个框架都涵盖了大部分所需的功能
- 两者都有可用的源代码,这是 IMO 必须的
- 两者都有或多或少一致的结构 - 我更喜欢 Qt,但这取决于您的喜好(备注:我永远不会说 Qt 几乎是 MFC - 我已经使用 MFC 很长时间了,Qt 和 Delphi - 以及 .NET,就此而言 - 都更好)
- VCL具有更多面向DB的功能,特别是与可视化组件的连接
- Qt 具有更多面向绘画(2D / 3D / OpenGL)的功能
在我看来,Qt 的其他原因是非常好的支持和许可,但这取决于您的需求。这两个框架都有大型社区,
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 是跨平台的,但功能还不够完善。