2017-03-05 15 views
0

私はOAuth2のようなネットワーク指向の機能をいくつか提供し、人気のあるサービスのREST APIを使用しなければならないC++アプリケーションを持っています。ここで私は心の中でてきたものだ:PythonをC++アプリケーションに埋め込むことをお勧めしますか?

  • 私が働いているプロセス(製品の特徴)は、主にネットワーク-有界です。したがって、パフォーマンスの低下はあまり重要ではありません。 Pythonで

  • 実装するシンプルなAPI呼び出し関連のスクリプトは、長期的にはC++よりも道に簡単であり、さらにメンテナンス性です。

  • REST、OAuth2にはC++で利用できるライブラリがありますが、Pythonは簡単に動作し、libpythonを使用してC++とインターフェイスすることができます。 https://docs.python.org/2/extending/embedding.html

  • プロジェクトはすでにC++とQt5で大規模なコードベースを持っています。ここで

私は心配程度だいくつかの問題があります:

  • は、すべての機能だけで複雑さを避けるために、C++で使用できる場合でも、ハイブリッド言語のアプローチの方に行くには良いアドバイスです? (意見を求めて質問にフラグを立てないでください、私は論理的な議論を求めます)。

  • があるが問題ではない多くのCPU時間を作り、PythonでC++、またはバインドされたタスクビーイングネットワークについての私の仮定に比べて、主要なパフォーマンスダウングレードされています。

  • は、異なるプラットフォーム上でlibpythonで全体のコードベースを構築に関与が深刻な問題はありますか?

  • プロジェクトは基本的にプロセスバインドされているため、Pythonに移植することはできません。さらに、C++で複雑なものを実装するよりも、膨大で移行コストがかかるでしょう。オンラインインタラクションが必要なのは、ソフトウェアの特定の部分だけでした。

+2

Pythonで作業するのが簡単で、コードで使用するすべてのライブラリがあれば、C++からPythonに切り替えるのはなぜですか?Pythonが遅いと思うなら、あなたのプログラムはCPU使用量に関して高速でなければならないのですか、それともI/O境界ですか?後者が真であれば、おそらくPythonをうまく使うことができます。 – ForceBru

+0

編集されました。私は最後にポイントを追加しました。 –

答えて

2

ハイブリッド言語は、Game Engine、3Dモデリングツール、MSオフィスなど、多くのプロジェクトや製品で十分に実証されています。

パフォーマンスの劣化に敏感ではなく、あなたが低いの恩恵を受けることができます起動し、コストを維持した場合、それは良いでしょう。それはハイブリッドかによって影響されるかどうか

は、しかし、あなたが考慮に入れる必要があるいくつかのものは、展開およびデバッグ努力しています。ハイブリッド設計者は、ある人が会社を離れる場合に、適切な候補者を見つけるためにいくつかの問題に関わっているかもしれません。また、ネットワークモジュールとしてPythonを使用してプロジェクトを立ち上げ、必要に応じてマイルストーンを達成し、後でC++に切り替えることもできます。

私がゲーム会社で働くと、サーバーとクライアントの両方がハイブリッド言語プロジェクトになります。ゲームロジック、LuaでAIと戦っている間にC++のサーバーフレームワーク。クライアントはUnrealEngine3、Graphics、C++のフレームワークを使用していますが、Game LogicはUnreal Scriptにあります。彼らはどちらも素晴らしい仕事をした。

関連する問題