8

私は現在、ほとんどのプログラミング プロジェクト (主に小さなプログラムとプロトタイプの迅速な開発) に Python を使用しています。機会があればいつでもさまざまな Microsoft ツールや API を柔軟に使用できる言語の学習に時間を費やしたいと考えています。IronPython と C# の間で決定しようとしています。Python は私のお気に入りのプログラミング言語であるため (主にその簡潔さと簡潔な構文のため)、IronPython は理想的なオプションのように思えます。しかし、それについて少し読んだ後、いくつかの質問があります。

IronPython を使用したことがある方にとって、従来の Python がどこで終わり、.NET がどこから始まるのかが不明確になったことはありませんか? たとえば、.NET ライブラリと Python 標準ライブラリでは機能がかなり重複しているように見えるため、文字列操作や XML の解析が必要な場合、どのライブラリを使用すればよいかわかりません。また、自分のコードで Python と .NET のデータ型をいつ使用するべきなのかもわかりません。たとえば、コードで使用するのは次のうちどれですか?

d = {} 

また

d = System.Collections.Hashtable()

(ちなみに、後者のようなことをたくさんすると、簡潔さの一部が失われる可能性があるようです。それが、そもそも Python を好む理由です。)

もう 1 つの問題は、.NET CF や Xbox XNA など、多くの Microsoft の開発者ツールが IronPython で利用できないことです。IronPython では C# を完全に活用できない状況は他にありますか?

4

2 に答える 2

11

C# にバインドされた IronPython で大規模なアプリケーションを構築しました。

ほぼ完全にシームレスです。真の "python" フィールから IronPython に欠けているものは、C ベースのライブラリ (それらには .NET を使用する必要があります) と IDLE だけです。

この言語は、夢のように他の .NET 言語と対話します...具体的には、インタープリターを埋め込み、変数を参照によってバインドする場合。

ちなみに、IronPython のハッシュは次のように宣言されています。

d = {}

これは実際には IronPython.Dict オブジェクトであり、C# 辞書ではないことに注意してください。とは言うものの、変換を .NET クラスに渡した場合、変換は目に見えない形で機能することが多く、明示的に変換する必要がある場合は、それを問題なく実行するビルトインがあります。

全体として、理由があれば、.NET で使用するのに最適な言語です。

一言アドバイス: Visual Studio IronPython IDE をペストのように避けてください。スペースとタブの間のインデントで自動行補完が台無しになっていることがわかりました。これは、コードに挿入された追跡が困難なバグです。

于 2009-01-31T01:15:04.487 に答える
3

Boo [ http://boo.codehaus.org/]を見ることをお勧めします。これは、Python に触発された構文を持つ .NET ベースの言語ですが、.NET 3.5 の全機能を提供します。

IronPython は .NET 中心のライブラリを使用するのに最適ですが、言語のタイピング方法が根本的に異なるため、ライブラリの作成にはあまり適していません。Boo は、ダック タイピングが明示的に要求された (または特定の型がユーザーによって指定された) 場合を除き、コンパイル時に推論ベースの型付けを行うため、C# (および他の言語) コードから簡単に使用できる .NET 中心のライブラリを構築できます。 IronPython は適していません。また、実行時のイントロスペクションが少なくて済むため、Boo はより高速なコードにコンパイルされます。

于 2009-01-31T02:17:45.763 に答える