我有一個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
已編輯。最後我添加了一點。 –