我有一个C++应用程序,我必须提供一些面向网络的功能,如OAuth2,并使用一些常用服务的REST API。以下是我的想法:将Python嵌入到C++应用程序中是否明智?
我正在研究的过程(产品的一个功能)主要是网络有界的。因此,性能下降并不明显。
在Python中实现简单的API调用相关脚本比C++更简单,并且从长远来看更易于维护。
在C++中有可用于REST,OAuth2的库,但Python很容易工作,并且可以使用libpython与C++接口。 https://docs.python.org/2/extending/embedding.html
该项目在C++和Qt5中已经有了很大的代码库。
这里有一些问题,我很担心:
它是一个很好的建议去实现一个混合语言的方法,即使所有的功能在C++中是可用的,只是为了避免复杂? (请不要将这个问题标记为征求意见,我寻求合理的论点)。
与Python中的C++相比,是否存在主要的性能下降或者我对任务进行网络绑定的假设,这使得CPU时间无关紧要。
在使用libpython在不同平台上构建整个代码库时是否存在严重问题?
该项目基本上是进程绑定,因此无法移植到Python。此外,它的巨大和移植将比在C++中执行复杂的事情花费更多。它只是需要在线交互的软件的特定部分。
为什么不从C++完全切换到Python,如果它更容易使用Python并且它具有代码中使用的所有库?如果你认为Python很慢:你确定你的程序在CPU使用率方面必须很快,还是I/O限制?如果后者是真的,那么你可以很好地使用Python。 – ForceBru
已编辑。最后我添加了一点。 –