Python の使用

Meson は Python で実装されています。これには長所と短所があります。多くの人が心配している主なことは、ソースコードをビルドするために Python に依存していることです。このページでは、この問題のさまざまな側面について説明します。

依存関係の悪夢

複数のプラットフォームで保守することが困難な Python プログラムは数多くあります。その理由は主に依存関係にあります。プログラムは特定のプラットフォームでコンパイルするのが困難な依存関係を使用したり、古くなっていたり、他の依存関係と競合したり、特定の Python バージョンでは利用できなかったりする可能性があります。

Meson は 1 つの簡単なルールで依存関係の問題を回避します: Meson は Python 基本ライブラリ以外の依存関係を持つことはできません。必要なのは Python 3(およびおそらく Ninja)だけです。

再実装性

Meson は、実装言語がビルド定義に公開されないように設計されています。これにより、他のプログラミング言語で Meson を再実装することが可能(場合によっては容易)になります。現在、Meson を再実装する計画はありませんが、Python がビルド定義内で公開されないようにします。

クロスプラットフォームツール

現在使用されているすべてのオペレーティングシステムでネイティブに動作する技術的なソリューションやプログラミング言語はありません。Autotools が 1980 年代後半に設計されたとき、Unix シェルはほとんどどこでも利用できました。もはやそうではありません。

また、プロジェクトが大きくなるにつれて、遅かれ早かれコード生成、スクリプティング、またはその他のツールが必要になるという側面もあります。これは避けられないようです。どこでも利用できるスクリプティング言語が存在しないため、これらのツールは各プラットフォーム用に書き直す必要があります(これは多くの作業であり、エラーが発生しやすい)。または、プロジェクトは何かに依存する必要があります。

Meson を使用するプロジェクト(少なくとも現在のバージョン)は、Python 3 は常に利用可能であるという事実に依存できます。Python 3 がなければプロジェクトをコンパイルできないからです。次に、すべてのツールを Python 3 で作成できます。すべてのプラットフォームで追加の依存関係なしで(通常の移植作業は別として)実行されることがわかっています。これにより、マルチプラットフォームプロジェクトのメンテナンス作業が大幅に削減されます。

検索の結果は