26

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

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

4

7 に答える 7

25

私が見た主な違いは、Boo は静的に型付けされていることです。つまり、変数の型は最初の代入で推測され、そこから修正されますが、IronPython は通常の Python コードの「実際の」動的動作を備えています。

IronPythonは現在 Microsoft によって公式に維持されており、バージョン 2.0 の新しい動的言語ランタイムを対象としています。静的に型付けされているため、Boo の方が高速である可能性があります。私はそれについての「実際の」経験はあまりありません...

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

于 2008-10-11T09:30:13.073 に答える
14

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

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

パフォーマンスに関しては、Boo は IronPython よりわずかに高速に感じられ、特に IronPython の顕著な起動遅延がありません。

Boo はまだ未熟な言語であり、Python のコミュニティが不足しています。個人的には、本番環境での使用には少し注意が必要です。また、クラス内の明示的な自己を取り除くなど、Python からのすべての逸脱に同意するわけではありません。

于 2008-10-13T14:04:13.020 に答える
11

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

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

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

  • スケジュールされたジョブのスクリプト。これは、特に.NET APIにアクセスする場合に、VBScript、BATファイルの優れた代替手段です。それ以来、私は主にPowershellに切り替えましたが、これはOS固有であり、構文が重いため、まだいくつかの目的でBooを使用しています。
  • ユニットテストの作成
  • 埋め込まれたスクリプト言語
于 2008-10-24T03:27:55.013 に答える
4

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

Jim が Microsoft に「亡命」して以来、IronPython は最上位の言語に昇格しました。そのための Visual Studio もあります。

于 2008-10-13T22:23:22.357 に答える
1

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

于 2008-10-11T12:47:07.623 に答える
0

私の意見では、主な違いは、IronPythonは成熟した言語の実装であるのに対し、Booは若くてあまり知られていないということです。

于 2008-10-11T10:39:10.517 に答える