web-dev-qa-db-ja.com

Qtプログラミング:PythonまたはC ++でより生産的ですか?

Qtに飛び込もうとしていますが、まだ大規模なプロジェクトを行っていません。現在Pythonを使用していますが、私は考えていました-プログラマーの生産性の観点から使用するのに本当に良い言語はどれですか?

言語間のほとんどの比較では、Pythonが明白な答えです。これは、メモリ管理などをいじる必要がないためです。

ただし、Qtではよくわかりません。それはC++に十分な追加機能を提供し、(私が知る限り)Pythonコードの行はほとんどの場合C++コードの行とほぼ同じです(クラス定義のようないくつかの追加のものを除く) Qtは、そのクラスに固執している限り、ほぼすべてのメモリ管理を行い、PythonにあるNiceコンテナと同等のものを提供します。

私は常に静的に型付けされた言語を好みましたが、さまざまな理由でPythonバンドワゴンに乗りました。ただし、プログラマーの生産性がC++と同様である場合は、他の利点のためにそのように戻ることができます- -より効率的なコードと、ユーザーがインストールする依存関係が少なくなります。

考え?

40
Micah Yoder

私の意見(C++とPython一般的に、特にQtの場合)を試しました):Pythonは常に 'の観点から勝ちますプログラマーの生産性」と「安心」。PyQtはQtを非常によく表しているため、「QtwithPython」や「QtwithC++」については疑問が残りません。一般的に、pythonの方が生産性が高いコース外でない限り、Pythonでは利用できない速度などが必要です。

最善の方法答えにたどり着くには、最初にC++で単純なプロジェクトを作成し、次にpythonで同じプロジェクトを作成して比較することですが、それはpython Pythonで簡単に見つけたらプロジェクトをコーディングした後のように、別のプロジェクトも試して、最初にPythonで、次にC++で実行してください。

24
Anurag Uniyal

どちらかといえば、C++の愛好家であるにもかかわらず、実際にはPythonをお勧めします。 Pythonコードを使用すると、MOC、移植性、ビルド時間などを気にする必要はありません。C++とPyQTまたはPySideでQTスロットを実装する作業を比較するだけです。この方法でウィジェットを処理することは、はるかに簡単であることがわかります(はるかに高い生産性)。追加のパフォーマンスが必要な場合でも、PythonからC++コードを呼び出すことができます。

組み合わせを使用する場合は、埋め込むのではなく、Pythonを拡張することを検討してください。 Pythonは通常、C/C++システムに埋め込むよりもC/C++コードを埋め込むのに適しています。また、アプリケーションは一般にパフォーマンスが重要なコードよりもはるかに平凡でパフォーマンスが重要ではないコードで構成されているため、そのように理解する傾向があります。したがって、アプリケーションを主にC/C++関数を使用するpythonアプリケーションとして記述します。それに取り付けられていると、そのようなシステム設計によりよく適合します。

27
stinky472

間違いなくPython。

はい、人々はPythonは理由がなくても生産性が高いと言うでしょう。回答の中には、再コンパイルする必要がないというものもあります。詳細を説明します。

  1. PythonはC++の抽象化レイヤーの1つであるため、少ないコードでデザインを考えて表現することができます。プログラムはそれほど速く実行されないかもしれませんが、あなたが望むものをコードでより速く表現することを確認してください。

  2. 最も一般的なケースは、アプリケーションを起動し、いくつかのファイルをロードし、環境をセットアップして、ダイアログを開くときです。そこで、ボタンが機能していないか、ボタンがあるべき場所にあることに気づきます。これで、ほとんどの人がアプリケーションを閉じ、ここに1つのスロットをバインドし、そこに1つの信号をバインドします...そして、アプリケーションを起動し、ファイルをロードし、セットアップします... with pythonコードを入力して、アプリケーション全体ではなく、ダイアログを再度起動します。あなたのことはわかりませんが、そのタイプのタスクは、私がQtでほとんどの場合行うことです。

  3. Pythonは、C++にはないものを提供します。イントロスペクションです。実行中のプログラムを調べて、実行時にそのコンポーネントに関する情報を引き出すことができます。 Qtは部分的にこれを提供します。メタプロパティとメタ情報をQtオブジェクトに添付できるMOCレイヤーがあります。 Pythonプログラムのすべての部分を内省することができます。Pythonコードをデバッグする、またはそれがどのように機能するかを理解しようとする多くの人々は、正当な理由でこれに夢中になっています

8
SystematicFrank

Pythonを使用すると、プロジェクトをビルドする必要はありません。これで十分な時間の節約になると思います。Pyqtバインディングは素晴らしいです。qt/ C++よりもpyqtの方が間違いなく効率的です。

5
Alexandre C.

pythonまたはC++のどちらを使用するかは、構築するアプリケーションに大きく依存し、Qtにはあまり依存しません。リソースが多く、CPUやメモリなどの多くのリソースを必要とするアプリケーションを構築する場合は、 C++の方が良いでしょう。一方、アプリケーションがよりUI駆動型である場合、pythonは、迅速な開発と豊富なライブラリの点で他の多くの利点を提供します。

3
lamirap