Sig*_*erm 18
使用本机C++ Qt而不是PyQt有什么好处
速度/功率/控制.
PyQt应用程序仍然需要python.C++/Qt应用程序编译为本机exe.通过使用C++,您将可以访问python中无法使用的第三方库,而且您将消灭"中间人" - 位于您的程序和qt dll之间的层,并且可能会获得更好的性能.例如,我不会在python中编写归档程序或mp3解压缩程序,尽管它当然可以完成.
然而,这需要付出代价--c ++没有垃圾收集器,复杂得多,开发速度"慢"(编译时间),需要多年掌握,只有当你的瓶颈在解释器内时才能获得更好的性能(即脚本语言开销).即C++以更大的责任和更长的开发时间为代价提供更多的能量.如果你不需要,那么你没有理由坚持使用C++.
语言的选择取决于您的申请/情况和您的个人喜好.如果您需要申请SOON或制作模型,那么使用您熟悉的语言是合理的.如果您遇到严重的性能问题,那么聘请熟练的C++程序员来完成这项工作是合理的 - 制作本机应用程序,对其进行分析,优化等.
请注意,语言是一种工具.如果你只是因为喜欢这门语言而想用你的语言,你就不能有效地工作.
- 编辑 -
就个人而言,我不会将python用于我期望长期维护的更大的应用程序.然而,这是因为语言并不完全符合我的心态(依赖于墨菲定律)和(因此)我对此并不满意.不同思考的人可能会更熟悉Python,甚至可能认为C++限制性太强.
另一件事是从我编写Blender插件和各种python脚本的经验来看,出现了一些严重的性能开销,因为语言是脚本化的,并且可以在C++中免费执行的非常繁重的列表/映射/数组操作可能需要5倍python中.10倍的时间.有些人可能会坚持认为这可以修复,但是,这种"修复"的成本可能会克服使用脚本语言带来的好处.不管我的偏好如何,我仍然使用Python来制作需要运行多个实用程序的实用程序脚本,拆分/拼接/解析它们的文本输出并用它做一些事情(C++在这种情况下不是很好),我仍然在必须可扩展的程序中提供Python绑定(假设Lua不好).
最后,它归结为选择最合适的工具 - 如果C++与Python相比不会给你任何好处,那么就没有理由转换.
如果您计划分发应用程序,那么提供自包含的已编译可执行文件要比依赖最终用户首先安装Python和PyQt容易得多.但这可能是也可能不是你的考虑因素.
C++ 优化机器速度。
Python 优化程序员的速度。
C++ 相对冗长:每个想法表达的字数更多。Bugs / Lines_of_code 大致是一个常数,因此简洁很重要。
C++ 的内存管理有时是手动的,这可能意味着奇怪的运行时问题http://stromberg.dnsalias.org/~strombrg/checking-early.html,包括段错误和内存泄漏。Python 将其从程序员手中解放出来并使其自动化。
GUI 很少关心其实现语言的速度 - 主要问题是最终用户键入和单击的速度有多快。