世界を動かす技術を、日本語で。

オープンソースは一人の人間です

概要

  • The Register の記事が、ロシア人開発者のOSS利用を問題視
  • OSSの多くが 個人開発者 によって支えられている現実
  • 国籍 よりも、個人メンテナーのリソース不足が本質的リスク
  • 人気パッケージも 半数近くが一人 で維持
  • 問題解決策は 個人攻撃や国籍差別ではない ことの強調

オープンソースの現実とThe Register記事への批判

  • The Register が、米国防総省がロシア人開発者のユーティリティを利用していると報道
  • OSS開発者が 不当に攻撃される 事態への憤り
  • 国籍や個人を理由にOSSを批判することの 不当性 を指摘
  • 世界を支えるソフトウェアの多くが 「たった一人の開発者」 によるもの
  • ecosyste.ms というプロジェクトがOSSのメンテナー状況を可視化
    • 1,180万件のOSSプロジェクトを追跡
    • 約700万件が 一人 によるメンテナンス
    • 400万件はメンテナー人数不明、実際は「一人」がさらに多い可能性

オープンソース維持の実態

  • 複数メンテナーのプロジェクトも存在するが ごく一部
  • 「重要なOSSは複数人が管理しているはず」との 先入観 の否定
  • NPMエコシステムのデータで説明
    • NPMでも 単独メンテナー が多数派
    • 月間100万ダウンロード以上の人気パッケージでも 約半数が一人運営
    • ダウンロード数を増やしても、1人メンテナーが消えるのは 極端な上位だけ

OSSリスクの本質

  • OSSのリスクは「 どこの国の誰が作ったか」ではなく
  • 一人で多くを支えるメンテナー
    • リソース不足
    • 過重労働
    • 適切な報酬の欠如
  • OSS全体の価値は 8.8兆ドル (Harvard試算)
  • しかし、その大半が 個人の善意と努力 に依存

社会・メディアへの提言

  • 国籍や個人を攻撃する報道は 有害
  • 本当に議論すべきは「 単独メンテナーの脆弱性
  • OSSサプライチェーンのリスクは
    • 国籍差別ではなく
    • 構造的なリソース不足
  • 単独メンテナーを悪者扱いするのは 間違い
  • 解決策は簡単ではないが
    • 個人攻撃や差別的報道は 絶対に解決にならない
  • Podcast「Hobbyist Maintainers」でも議論
    • 難題だが、 正しい問題設定 が重要

まとめ

  • OSSを支えるのは 一人一人の開発者
  • 国籍や個人攻撃ではなく、 構造的支援 が必要
  • 本質的リスクは「 過小評価される個人メンテナー
  • 報道や利用者は、 OSSの現実 を正しく理解する姿勢が求められる

Hackerたちの意見

アクティビティチェックをしてたら、全プロジェクトの半分がメンテナンス担当者ゼロだってことに気づいてたはずだよね。

一度「完璧」になったソフトウェア(十分に長くうまく動いているもの)は、メンテナンスが不要になる。掃除も調整も更新も、プロジェクトごとの問題じゃなくて、システム全体の問題なんだ。

DoDがNodeを使ってるのがちょっと心配だな。間違ってるかもしれないけど、npmとかって攻撃のターゲットになりやすい気がする。

DoDは超大規模な組織だから、ほとんど何でも使ってるんじゃないかな。

なんで?国防総省は世界最大の組織の一つだよ。そこにはニュースレターを発行したり、ボーイスカウトみたいな人たちがツアーベースを整えるためのウェブページを作ったりする人もいる。そういうことにNodeを使うのは全然問題ないよ。そういうシステムはミサイルを発射するシステムとは繋がってないしね。独立記念日の花火のお知らせのサインアップページが vandalized されても、あんまり問題じゃないよ。

この人、リーナスの仕事についていい話を聞いたことがある。彼の作品を使ったことがあると思う。ロシアと国境を接している国出身なんだよね。これって心配すべきことなのかな?俺は何十年もOSSに関わってきたけど、ほとんど一人でやってたし、時々ボランティアのチームでやってた。ボランティアのチームでの経験がある人ならわかると思うけど、結構…難しいんだよね。うまくいくこともあるけど、思ったよりは少ない。うまくいくときは、だいたい「BDFL」みたいな人がいたり、みんなが同じ目標を持ってることが多かったな。俺の場合は後者が多かった。

(話がそれるけど)それだけじゃなくて、リーナスの両親は政治的に活動的な共産主義者で、若いリーナスは共産主義者のボーイスカウトみたいなパイオニアだったんだ。彼の父親はモスクワに数年間住んでたこともあるしね。

Linuxは多くのメンテイナーとサポートがある、しっかりしたプロジェクトで、リーナス一人のプロジェクトじゃないよ。

だから、NPMには400万以上の一人プロジェクトがあるけど、そのためのメンテナは約90万人いるんだ。このデータは最後に重要なポイントになるはずだよね。何か見落としてる?それとも、実際には重要なデータポイントじゃなかったのかな?

それに、複数人でメンテナンスしてるプロジェクトでも、ほとんどのコミットは一人が担当してることが多いんだよね。

これが、私が個人サイトに11tyを避けてJekyllを選んだ理由なんだよね。

DoDは、無料で手に入るものを見つけるのが得意で、みんなにそれを契約者チームに払うのが自分たちの利益だって納得させるのが上手いよね。

トロイの街は、ある時に無料のものにやられちゃったんだよね。

ソフトウェアコミュニティにはこの問題に対する誤解が多い気がする。まず、サプライチェーンリスクはソフトウェアやエンジニアリングの問題じゃなくて、ガバナンスの問題なんだ。プロジェクトにサプライチェーンリスクがあるからって、誰かが悪い人だとは限らないし、リスクを評価する人たちがみんな同じセキュリティ姿勢を持ってるわけでもない。国防総省(DoD)は、あなたが持っているのとは全然違うリスクを評価しているだろうしね。ほとんどのサプライチェーンリスクは、誰かのコードや性格を非難するものじゃない。たった一人でやってるプロジェクトは、その人が一人だからこそリスクが高いことが多い。バスファクターが1ってだけで、サプライチェーンリスクになるんだよね。ほとんどの人はパッケージを選ぶときに戦争の準備をしないけど、軍がそうするのは全然おかしくない。戦争中は、人々が自分自身や自分のプロジェクトを管理する能力が劇的に変わることが多いし、民主主義の国でもそうなんだ。戦時中は法律の力で協力を求めるのが普通で、アメリカも民間企業に戦争努力に協力させることができるし、実際にそうしてきた。これって、ほとんどの人のセキュリティ姿勢の計算には入ってないかもしれないけど、入ってる人もいるんだよね。

え?DoDは、すべての行を読んで、アップデート用にロックして、必要なら自分たちでパッチを当てる準備をしていなかったら、そのパッケージを使わなかったと思うよ。戦争中に「くそ、信頼できないもう一人がいてくれたら、誰かにこの作業をやってもらえるのに」なんて想像できる?

一人のメンテイナーがバスにひかれたり、他の理由で亡くなった場合、そういうプロジェクトに関する統計って誰か見たことある?データポイントがたくさんあるはずだから、もう研究するには十分だと思うんだけど。プロジェクトは別の一人の開発者に引き継がれるの?それとも似たようなプロジェクトに置き換えられるの?それともただ消えちゃうの?

人気のオープンソースライブラリやツール、アプリ、サイトが一人のメンテイナーから次のメンテイナーに移行する過程を、丁寧に調査したエピソードシリーズを見てみたいな。だから、私がNetflixを運営してない理由でもあるんだけど。

思いつく中で一番近い例はハンス・ライザー/リザーフスかな。でも、バスにひかれるだけの話じゃなくて、もっと複雑なストーリーなんだ。結局、そのプロジェクトはただ死んじゃった。

これを考慮しない人が多いと思うけど、コードがオープンソースなら、理解するのに時間がかかるかもしれないけど、最悪の場合はフォークすればいいんだよね。

ここに一つのデータポイントがあるよ。10年くらい前にASIO Link Pro(ソフトウェア)を買って、システムの仮想オーディオデバイスをルーティングするのに使ってたんだ。作者が残念ながら亡くなって、ライセンスキーサーバーがオフラインになって起動できなくなった。彼の甥が調べて、1年か2年後にそのツールを無料にしてくれたんだ。ライセンスサーバーがオフラインになってからは使わなくなったけど、動画を録画する必要があったからね。結局ハードウェアで問題を解決したけど、そのツールは何年も使っててすごく助かった。当時は約40ドルだったよ。購入して本当に満足した数少ないソフトウェアの一つだね。

基盤となるインフラが変わらない限り、大半のパッケージは目的を達成した後、積極的なメンテナンスは必要ないよ。大きな変更(例えば、Python 3やReact Nativeの新しいアーキテクチャ)があれば、置き換えられたりフォークされたりするんだ。

「ダウンロード数を10億に変更するまで、1人がメンテナンスしているパッケージが1つ、複数人がメンテナンスしているパッケージが9つ見える。どれだろう?」

西側や、白黒で考えるリベラルな人たちは、世界をグレーに見ることができないから、西側にとって大きな損失をもたらすことになるよ。これも見たことがあるよね、‘キャンセル’マフィアのせいで。ロシア、つまりプーチンがウクライナに侵攻したからって、ロシア全体が悪いわけじゃないし、全く関わらないべきってわけでもない。アメリカがイラクに侵攻した後、誰もアメリカとの関わりをやめなかったよ。ロシアがLGBTQの権利を気にしないからって、ロシアが悪い国だとは限らない。同様に、中国が明確な権威主義体制を運営しているからって、中国が悪い国だとは限らない。トランプとそのバカな政府はこれを認識してるけど、やり方が間違ってるんだよね。とにかく、敵でも友達でも、利益が得られる限り貿易を続けるべきだよ。