Qt编程:在Python或C ++中更高效?

尝试着深入Qt,但还没有做一个大型的项目。 目前使用Python,但我一直在想 – 在程序员的生产力方面,哪种语言更好?

在大多数语言之间的比较中,Python是显而易见的答案,因为你不必混淆内存pipe理和所有这些。

但是,对于Qt我不太确定。 它为C ++提供了足够的附加function(从我所知道的情况来看),大部分时间(不包括类定义和结构组件等附加function),一行Python代码大致等于一行C ++代码。 Qt为你做了几乎所有的内存pipe理,只要你坚持使用它的类,并且提供你可以在Python中find的漂亮容器的等价物。

我一直倾向于使用静态types的语言,但是由于各种各样的原因,我们也得到了Python的热潮。 但是,如果程序员的生产力与C ++相似,那么我可以跳出这种方式来获得其他好处 – 代码效率更高,用户安装的依赖性更less。

思考?

我的意见 (在总体上尝试了C ++和Python,特别是在Qt的情况下):Python总是在“程序员生产力”和“安心”方面获胜。 PyQt很好的代表了Qt,因此问题并不在于“Qt with Python”或“Qt with C ++”,一般情况下python的效率更高,除非你需要速度或python中没有的东西。

最好的方法是先编写一个简单的项目,然后在Python中编写一个简单的项目,然后在python中进行相同的项目比较,但这可能会偏向于python,因为在编写项目之后,您可能会发现在Python中很容易,所以尝试另一个项目,首先在Python中执行,然后在C ++中执行。

如果其中之一,我实际上build议Python,尽pipe是一个C ++爱好者。 使用Python代码,您不必担心MOC,可移植性,构build时间等问题。只需比较在C ++中实现QT插槽所涉及的工作与使用PyQT或PySide相比较,例如我觉得这种工作要less得多以这种方式处理小部件(生产力大得多)。 在需要增加性能的情况下,仍然可以从Python调用C ++代码。

如果您使用组合,请考虑扩展Python而不是embedded它。 Python通常更适合embeddedC / C ++代码,而不是embedded到C / C ++系统中。 由于应用程序通常由比性能关键的代码更普通,非性能关键的代码组成,所以它主要作为一个附带有C / C ++函数的python应用程序来编写的系统devise更好。

肯定是Python。

是的,人们会说Python没有理由就更有生产力。 一些答案提到你不必重新编译。 我会给你更多的细节

  1. Python是C ++的一个抽象层,所以你可以用更less的代码思考和expression你的devise。 你的程序运行速度可能不快,但是确保你在代码中expression得更快。

  2. 最常见的情况是当你启动你的应用程序,加载一些文件,设置环境并打开一个对话框。 在那里,你注意到一个button不工作或应该在哪里。 现在,大多数人closures应用程序的地方,在这里绑定一个插槽,一个信号在那里…并启动应用程序,加载文件,设置…用python你只需编写代码并再次启动对话框,不是整个应用程序。 我不了解你,但是这种types的任务是我大部分时间用Qt做的

  3. Python给你一些C ++没有的东西:内省。 您可以浏览正在运行的程序,并在运行时提取有关其组件的信息。 Qt部分给你。 你有MOC图层元属性和元信息可以附加到Qt对象。 Python程序的所有部分都可以被内省。 许多人debuggingPython代码,或试图了解它是如何工作的,有一个很好的理由沉迷于此

使用Python,您不必构build您的项目。 我想我已经足够节省时间了。 而Pyqt的绑定是真棒。 pyqt比qt / C ++更有效率。

无论你使用Python还是C ++,更多的依赖于你正在构build的应用程序,而不是Qt。 如果你正在构build一个资源沉重,需要大量资源(如CPU和内存)的应用程序,C ++将是一个更好的select。 另一方面,如果你的应用程序是更多的UI驱动的话,python在快速开发和丰富的库方面提供了很多其他的好处。