他の言語で既存のコードのPythonバインディングを開発する動機は何ですか?多くのプログラマーが既存のCコード用のPythonバインディングを開発しているのを目にします。なんで?それはどのように役立ちますか?
3 に答える
これはプリファレンスベースであるため、完全な権限で言うことはできませんが、C用のPythonバインディングを開発すると、Python構文の生産性と操作性が向上するため、開発プロセスが容易になります。
(たとえば、Python CUDA、3D、Kinectなどのライブラリ)
PythonにはCのバインディングがあります。これは、Cが低レベルの言語であり、非常に高速で効果的であると同時に、膨大な量のハードウェアおよびソフトウェア機能をサポートしているためです。Cは初心者にとって非常に難しく、Pythonが改良したオブジェクト指向機能を本質的に欠いています。Cのオブジェクト指向の振る舞いの欠如も、C++の作成に貢献しました。
多くの場合、ソフトウェアプロジェクトは、コードの実行速度ではなく、開発者の速度によって制限されます。ほとんどの場合、PythonはCよりも優れています。
Cに対するPythonの強みは次のとおりです。
- 非常に明確で読みやすい構文
- 強力なイントロスペクション機能
- 直感的なオブジェクト指向
- 手続き型コードの自然な表現
- 完全なモジュール性、階層パッケージのサポート
- 例外ベースのエラー処理
- 非常に高レベルの動的データ型
- 事実上すべてのタスクのための広範な標準ライブラリとサードパーティモジュール
- C、C ++(またはJythonの場合はJava、IronPythonの場合は.NET言語)で簡単に記述できる拡張機能とモジュール
- スクリプトインターフェイスとしてアプリケーション内に埋め込むことができます
Cには、長年のテストやバグ修正などを伴う非常に高品質のライブラリが多数あり、Pythonですべてを再実装しようとするのはおかしいためです(たとえば、Pythonで暗号化ライブラリを使用することは決してないので、バインディングを使用する必要があります。十分にテストされ、paranoidで開発されたopenssl、NSS、gnutlsなどのCライブラリ)。