Qt或者Delphi ...如果要选择一个?
如果我们有冒险进入Delphi土地或者Qt土地的差异,那我们会选择什么?我知道它们并不完全可比。我有一个使用Builder C ++(几乎是Delphi)和MFC(几乎是Qt)进行Windows开发的经验,还有更多的时间使用Builder C ++。请在分析中排除Qt的跨平台功能。
我希望得到与他们一起工作过的人的答复,以及他或者她将如何比较框架,环境等?
预先感谢答复。
解决方案
回答
我会选择delphi。只是因为我有更多的经验。我认为没有其他合理的标准。
回答
我会选择Delphi,但这可能是因为我之前已经对其进行了编程。似乎仍然有许多公司在使用它,几乎每个拥有8年以上经验的人都在某个地方遇到过它。似乎大多数程序员都可以使用它,或者至少可以学习Pascal。更不用说新语言(C#)基于它(至少部分地)的事实。
回答
Qt是跨平台的,如果算上Kylix,Delphi不会太多。 Lazarus是跨平台的,但功能还不够完善。
回答
如果我们正在谈论UI框架,则应该将Qt与VCL进行比较,而不是将IDE(在这种情况下为Delphi)进行比较。我知道我一直在坚持,但是Delphi是IDE,Object-Pascal是语言,VCL是图形框架。
话虽这么说,我认为没有什么比VCL的功能强大和简单性更匹配的了。 Qt很棒,但它不是VCL。
回答
我会选择德尔福。当然,我们要问任何有关帕斯卡的人,他肯定会回答相同的。 ;)
Qt再次很好,但是VCL感觉更加优美。但这可能是我多年使用它的经验,所以感觉不错。我对Qt的经验仅限于一个短暂的项目,由于GoGlobal的强大功能可以确定任何跨平台的Win32应用程序,因此在确定不需要跨平台后,最终在Delphi中对其进行了重写。平台。
回答
编辑:此答案写于2008年。它可能不再那么贴切,尽管可能并非完全没有用。加盐。
我都用过,并最终选择了Qt路线。原因如下:
- 奇趣科技通过电子邮件提供快速和一对一的支持
- Qt不断创新,并定期引入强大的新功能
- Qt文档很棒,在极少数情况下,我们可以阅读源代码
- 拥有Qt的源代码还可以让我们在基本库中进行调试,这在很多情况下对我来说都是救生员
- 该API非常一致且设计合理。我们已将新人员招募到该项目中,并在一个月之内展示了他们对该工具包的深入了解,并且可以非常快速地学习新课程。
- 它具有与其他语言的绑定,例如。 Ruby和Python。
C ++有点不利,例如。编译时间,打包和集成度较低的IDE。但是Qt确实使C ++更像是一种高级语言。例如,QString消除了字符串处理的所有麻烦。因此,我们通常会遇到的C ++其他问题,例如。使用Qt时,更多错误的代码在我的经验中并不普遍。
另外,Delphi的库比Qt的库更多,但这可以缓解,因为我们可以在Qt项目中使用ac或者c ++库,并且因为Qt功能齐全,我们通常不必看任何东西进一步。
当我为新项目选择Delphi而不是Qt时,这将是一个奇怪的情况。
回答
这确实取决于需求和经验。我都使用过(尽管不得不说,我真正使用过的最后一个Delphi版本是Delphi 6,而我目前正在使用Qt 4.4)。
语言
C ++优点:
- C ++更"标准",例如我们将找到更多代码,库,示例等,并且可以自由使用STL和boost,而Object Pascal更像是一种外来语言
- Qt在不同的平台和编译器上进行编译(Kylix基于Qt,BTW)
对象Pascal优点:
- 语言中内置了一些动态属性,不需要像MOC这样的丑陋变通办法
- 编译器针对该语言进行了高度优化,而且速度非常快
- 该语言比C ++复杂,因此不易出错
的IDE
Qt优点:
- 严格地说,除Designer之外,没有用于Qt的IDE,但它可以很好地集成到我们首选的IDE中(至少是Visual Studio和Eclipse)。
- 与Delphi表单相比,设计师在布局方面做得更好(注意:这是基于Delphi 6的经验,可能不适用于当前版本)
德尔福专家:
- 该IDE确实已经过抛光并且易于使用,并且明显击败了IMO(我没有使用Eclipse的经验)
- 没有第2点...但是如果我必须将流行语分配为" integrated",我会将其分配给Delphi IDE
框架
我将与其他人进行比较,因为我对最新的VCL不够了解。我有一些评论:
- 这两个框架都涵盖了大多数所需的功能
- 两者都有可用的源代码,这是IMO必不可少的
- 两者都有或者多或者少一致的结构-我更喜欢Qt,但这取决于喜好(备注:我永远不会说Qt几乎是MFC-我已经使用MFC很长时间了,并且Qt和Delphi都使用过-和.NET ,就此而言-会更好)
- VCL具有更多面向DB的功能,尤其是与可视组件的连接
- Qt具有更多面向绘画(2D / 3D / OpenGL)的功能
支持Qt IMO的其他原因是非常好的支持和许可,但这取决于需求。这两个框架都有很多社区,
回答
Qt信号/插槽系统是Delphi与Qt之间的最大区别,它非常容易在对象之间建立N对N关系并避免紧密耦合。
我认为Delphi中不存在这样的东西(至少在我以前使用时没有这样的东西)。
回答
如果我们担心本地Win32速度,一流的RAD环境和可执行文件大小,请选择Delphi。如果我们需要一个真正的跨平台框架以及一个灵活的许可政策,并且不介意代码过于膨胀,请选择QT。
我在QT / C ++下移植了一个旧的Delphi程序,我必须说,就易用性和功能(IMHO)而言,QT是最接近VCL的框架。
回答
我刚刚开始使用Qt / C ++ / Qt Creator进行实验,我必须承认我很惊讶这个"小巧的混蛋"就在我的鼻子下面很多年了,我现在才注意它。
它(框架)看起来很整洁,功能完善(甚至是.NET缺少的东西,例如强大的XQuery支持)。
似乎大多数Qt编写的应用程序都在处理2D / 3D / Games。
我认为缺点仅在于:必须了解C ++和缺少QuantumGrid这样的DevExpress产品。
我正在认真考虑移植我的一个简单应用程序(如ThumbsView之类的图片查看器)。
它实际上是从相同的代码库运行的。真正的!
忘记Kylix,Mono,Lazarus和Free Pascal。这个Qt东西击败了他们十次。
Qt Creator离IDE很远。但是我希望将来他们会添加更强大的调试器,代码见解和重构(至少是"重命名")以及更有意义的编译器错误。
我会认真推荐给没有Pascal / C ++经验的人使用Qt学习曲线。