这个问题争议很大,很多人觉得不合适,但我个人觉得还是要看应用场景。毕竟就算是js也能开发桌面应用。
python是解释性语言,效率真的很低,发布的时候很难加密。这对于服务器应用来说没什么,但是对于c端应用来说就很麻烦了。不能很好地保护代码意味着用户可以很容易地获取和篡改你的源代码。目前有些工具可以二进制发布python,但最后效果不大。
至于python能否开发windows桌面应用,我个人认为可以。python有很多接口库可以用,包括pygame、kivy、pyqt等。目前最成熟的解决方案应该是qt,它可以轻松解决跨平台问题,不需要绑定windows平台。不过qt是c写的接口库。虽然提供了很多方便的接口和工具,但是开发效率比较低,对开发者的素质要求比较高。
qt已经通过商业应用的测试,但是pythonspyqt5真的很让人头疼,不过好在pyside2是lgpl正式推出发布的。虽然不包括所有的qt模块,比如串口通信,但是不支持移动发布等。,最常用的模块已经可用。
就我而言。;m关注,使用pyside2一段时间后,效率远高于c,个人认为对于一些中等复杂的应用,完全可以替代c,而不用担心任何效率问题。当然,我个人还是保持和qt官方的界面一致,强烈推荐用qml代替widgets。小部件仍然由本地gui绘制,而qml使用opengl来充分利用硬件加速。
python这几年在服务器端也很活跃,证明其运行效率没有致命问题。前几年还说java效率低,不能开发桌面应用,但是java写的ide,比如jetbrains,eclipse,还是被接受的,口碑也不错。
使用python开发桌面应用的另一个好处是可以充分利用python资源,包括网络协议、人工智能等。如果要用c的话,真的是累死人。
qt可以调用python。
不过对于初学者来说,如果建议用python或者直接用pyqt,毕竟qt用的是c和qml。当然,你要在现有的qt项目中增加一些东西,建议放弃python。另外qt的内存消耗也不是我们用户所担心的,所以要尽量优化代码,比如c中的函数尽量传地址。