一般的に、他のパッケージマネージャーもあまり良くないよね。特に、crates.ioやcargoはNPMと同じような問題を抱えていて、その言い訳の文言も妙に似てる。プログラミング言語やその周辺エコシステムのデザインやアーキテクチャについて面白いのは、「コアチーム」に与えられる大きな影響力だよね。コア言語の開発者が1人いると、1,000人の人気パッケージ開発者がいて、その下には1,000,000人のソフトウェア開発者がいて、さらに1,000,000,000人のユーザーがいる。つまり、ピラミッドの頂点で手を抜くと、下の層でその影響が大きくなるってこと。log4jみたいな「トップ1000」のパッケージにセキュリティの脆弱性があれば、数十億ドルの経済的損害や、何世代にもわたる修正作業が必要になることもある。でも、奇妙なことに、上の2つのレベルの資金はほとんどゼロに近い!ほとんどのプロジェクトは慈善事業で、道端で小銭を乞うような状態。最も使われているライブラリの中には、ボランティアの努力によるものも多いのに、グローバルなeコマースを支えているんだよね! cough-OpenSSL-cough。結果的に、問題を解決する力を持っている人たちが、解決するための資金が最も少ないってこと。だから、NPMやCrates.ioは、GoogleやMicrosoftなどの主要な出版社のアイデンティティを確認したり、名前空間を追加するような基本的なセキュリティチェックすら拒否しているんだ。これは一定の労力がかかるし、技術的には簡単で、今は監視も安くできるけど、彼らの小さな予算を圧迫する可能性が高い。例外として、NuGetのようにしっかりした資金提供があるパッケージマネージャーがあって、Microsoftからの安定した資金で内部(営利!)のワークフローを支えているのと同じくらい、外部の「無料」ユーザーもサポートしている。「無料でオープン」って素晴らしいけど、結局は払った分だけの価値があるってことだね。[1] ほとんどの人がすぐに思い浮かべられる名前だよね:Guido van Rossum、Larry Wall、Kerningham & Richieとか。