実世界の例を挙げましょう。
約15年前、私はCで書かれた大規模システムをUnixからWindowsに移植する作業をしました。これは約300万行のコードでした。スケールのアイデアを得るために、Unixシステム(RS6000)の一部でコンパイルするのに24時間以上かかりました。Windowsは約4時間でシステムをコンパイルできました。
(独自のインタープリター言語で200万行のコードもありましたが、ファイル処理用に設計されていないため、ビルドシステムには使用しないことにしました。また、言語を実装するCコードをコンパイルするビルドシステムが必要でした)
ビルドシステムがシェルスクリプトとメイクファイルの組み合わせで記述されていたとき、これらはWindowsに移植可能ではなかったため、独自のビルドシステムを記述することにしました。
Cを使用することもできましたが、Pythonを使用することにしました。いくつかの理由がありました。(同時にPythonのソースコード管理システムも書き直しました。これはビルドシステムと非常に統合されていたため、チェックインモジュールのオブジェクトファイルは開発者が共有できます。)
ほとんどのコードは、ファイルの命名規則に基づいて作成されたいくつかの簡単なルール(すべてのプラットフォーム、Windows、VMS、および6バージョンのUnixで数千行のPythonのみ)で構築できます。
RegExが異なるプラットフォーム上のCシステム間であまり標準ではなかったとき、PythonはRegExを組み込みました。
いくつかのモジュールにはカスタムビルドステップが必要で、Pythonではクラスファイルを動的にロードできました。フォルダー内に魔法の名前のpythonファイルがあることに基づいて、カスタムクラスを使用してモジュール(lib)を構築することを許可しました。 これがpythonを使用する大きな理由でした。
Javaを検討しましたが、その時点ではすべてのプラットフォームで出荷されていませんでした。
(ソースコード管理システムのUIでは、すべてのプラットフォームで移植可能なWebブラウザーを使用しました。これは、インターネットに接続できるようになる6か月前でした。X25でブラウザーをダウンロードする必要がありました。)