質問

これら2つのプロジェクトをそれぞれ調べたところ、どちらも非常に似ているようです。どちらもCLIの上で実行され、どちらもpythonスタイルの構文を持ち、標準のpythonライブラリの代わりに.NETを使用します。

では、それらの違いとそれぞれの利点は何ですか?

役に立ちましたか?

解決

主な違いは、Booは静的に型付けされていることです。つまり、変数の型は最初の割り当てで推論され、そこから固定されます。IronPythonには「実」通常のPythonコードの動的な動作。

IronPython は現在Microsoftによって公式にメンテナンスされており、はバージョン2.0の新しいDynamic Language Runtimeを対象としています。静的に型付けされているため、Booの方が高速かもしれません。 「本物」があまりないしかし、それを体験してください...

IronPythonは、多くのpython標準ライブラリも再実装するため、IronPythonで多くのpythonソフトウェアを変更せずに実行できます(例 Django )。

他のヒント

Booは静的に型付けされていますが、オプションのアヒル型付けがあります(私の経験では、これはかなりうまく機能します)。 Booは、「手首にやさしい」ように特別に設計されています。 -つまり、Shiftキーとキーの組み合わせを使用する必要性を最小限に抑えます。 SharpDevelop でIDEを適切にサポートしています。

明らかなように、BooはPythonから多くのインスピレーションを得ていますが、.NET機能を十分に活用できるように設計されています。

パフォーマンス面では、BooはIronPythonよりもわずかに高速であり、特にIronPythonの顕著な起動ラグがありません。

ブーはまだ未熟な言語であり、Pythonのコミュニティがありません。個人的には、本番環境での使用について少し注意が必要です。また、クラスから明示的なselfを削除するなど、Pythonからのすべての脱却にも同意しません。

IronPythonをまだ使用していませんが、Booについて知っていることは次のとおりです...

  • BooはPythonに触発され、多くの構文上の類似点があります。違いについては、 http://boo.codehaus.org/Gotchas+for+Python+Usersをご覧ください。
  • ブーはCLR専用に作成されました
  • 静的に型付けされており、いくつかの利点があります
    • DLLにコンパイルし、VBおよびC#プロジェクトで参照できます
    • IDEでコード補完を取得します
  • 言語自体が拡張可能な場合。 「構文マクロ」を作成できます。実際に言語に新しい要素を追加します。これにより、DSLを作成するのに適しています。
  • IronPythonはまだ1.0ですが、まだ1.0ではありません。この言語はまだ苦しんでいますが、非常に使いやすいです。

次のような目的でBooを使用しました:

  • スケジュールされたジョブのスクリプト作成。特に.NET APIにアクセスする場合、VBScript、BATファイルの優れた代替手段です。それ以来、私は主にPowershellに切り替えましたが、OS固有であり、より重い構文を持っているので、私はまだいくつかのものにBooを使用しています。
  • 単体テストの作成
  • 埋め込みスクリプト言語

BooとIronPythonの両方でアプリケーションを作成しました。私にとって、IronPythonはより堅牢な選択肢であり、CPythonポートで変更せずに作成したものの多くです。 .Net Frameworkを対象とする場合、最近のプロジェクトはすべて純粋なIronPythonでした。

ジム" defected"以来マイクロソフトにとって、IronPythonは最上位の言語に昇格しました。 Visual Studioもあります。

ここでVolkAに同意します。 Djangoを実行できることは大きなことです。 Booがそれをやり直すのに苦労するのは、まさにそのようなすばらしいフレームワークです。今日、それは言語が提供する構造よりも、言語が提供するフレームワークの問題です。また、Booは、サポートする構成においてPythonよりも多くの改善を提供していません。

主な違いは、私の意見では、 IronPython は成熟した言語の実装であるということです-一方、ブーは若く、あまり知られていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top