Python理事会が古参開発者を追い出して開発者コミュニティが騒動に

どういうわけか日本では一切話題に上がっていないのですが、Pythonの[開発者コミュニティ](https://discuss.python.org/)でなんか問題が起きているようです。
どうも話が様々なスレッドにとっ散らかっているうえに半分はDiscordや非公開のところで動いているみたいなので、読み取れていないところが色々あるかもしれません。
誰かが補足してくれるはず。


## [Proposed bylaws changes to improve our membership experience](https://discuss.python.org/t/for-your-consideration-proposed-bylaws-changes-to-improve-our-membership-experience/55696)

最初のきっかけはこのスレッドです。
これは規約の一部を変更する提案であり、その中でも3番目の提案である[Adds provision to remove Members by vote of the Board of Directors](https://github.com/psf/bylaws/compare/a35a6071de181adbb7a160d5d1447e7b0272359c...5b24dd2)という変更が注目を浴びました。

Python財団には[フェローという制度](https://www.python.org/psf/fellows/)があり、これはPythonエコシステムやコミュニティに優れた貢献をした人に与えられる名誉称号です。
これまでは、このフェローを解任する方法は『全てのメンバーによる投票』しかありませんでした。
今回の提案では、これをPython理事会だけの秘密投票、過半数の賛成で解任できるように規約変更します。

これはPython理事会への大きな権限集中につながり、また気に食わないフェローを秘密裏に排除することもできるのではないかということで一部に反対意見が上がりました。
とはいえ全面反対という人はおらず、過半数ではなく2/3の賛成や全会一致とかにしたほうがいいだろうという主張がほとんどです。

さて、ここで全会一致を強硬に主張していたのがTim Petersです。
問題のあるユーザが数人理事会に入ってしまったとしても、全会一致なら暴走を防げるという主張です。

Tim Petersは[CPython](https://github.com/python/cpython/graphs/contributors)初期の主要開発者の一人であり、2000年代前半を中心に2500コミットを行い、2024年現在でもcontribute数第11位を誇っています。

どこかでこの名を聞いたことのある人もいるかもしれません。
そう、[TimSort](https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%A3%E3%83%A0%E3%82%BD%E3%83%BC%E3%83%88)の実装者です。
そしてまた、かの有名な[The Zen of Python](https://peps.python.org/pep-0020/)の著者でもあります。

彼は[最初期のフェローの一人](https://www.python.org/psf/fellows-roster/)であり、2017年には[Distinguished Service Award](https://www.python.org/community/awards/psf-distinguished-awards/#id4)という賞も受賞しています。
とまあ、Pythonにこれまで多大な貢献をしてきた人物ということです。

このスレッドにおける彼の主張はかなりペシミスティックであり、とにかく最悪なことが起きた場合でも最低限何らかの防波堤を置いておくべきだと延々主張していました。
彼に賛同する人も多少はいましたが、勢力としては別に過半数でもいいんじゃないかという人のほうが多く、そういう人たちがTimに突っかかるorそういう人たちにTimが突っかかるという展開になりました。
でまあ、Timは特にしつこいタイプの投稿者であったみたいで、そういう人が論争を始めるとどうなるかというとおわかりのとおりスレッドはぐっだぐだになりました。

ただ個人的には、Timの意見は的を射ている部分も多いと感じています。
全会一致までいくかはともかく、ある程度の制御装置は付けておくべきですよね。
たとえばPHPでは[FFI](https://wiki.php.net/rfc/ffi)という[色々と時期尚早であったRFC](https://externals.io/message/103613)の受理をきっかけに、それまでは過半数で受理される決まりであったRFCが[2/3以上の賛成で受理されるように改定](https://qiita.com/rana_kualu/items/38c9917f634bc7767f1b#abolish-narrow-margins)されました。
Pythonコミュニティはそのような状態に陥ったことがないからなのか、スレッドからは全体的にどうも危機感の薄さを感じました。

最終的にスレッドの終盤あたりで提案への投票が行われ、該当の提案は81%の賛成で受理されました。


## [Three month suspension for a Core Developer](https://discuss.python.org/t/three-month-suspension-for-a-core-developer/60250)

突然Timが3か月の活動停止を宣告されました。


:::note warn
Python理事会は、行動規範グループからの勧告に従い、あるコア開発者を3か月の停止処分にしました。

ユーザは、期待される行動規範に繰り返し違反しました。

・規約変更に関する議論を過度に投稿し(モデレータがトピックを閉鎖した時点で177件中47件)、コミュニティメンバーに過度な疑念、恐怖、感情的な反応をもたらした。
結果として規約変更は81%の支持を受けて受理され、論争は誇張されたでものであることが明らかである。

・裏付けられていない『逆人種差別』や『逆差別』を主張し、意図的な脅迫や排他的な雰囲気形成を行っている。

・不快な言葉、中傷的な言葉を使う。
1970年代の中傷的な寸劇を『本当に面白い』などと表現しており、これはコミュニティの他メンバーに対する共感の欠如を表している。

・職場でのセクハラなどのデリケートな話題を口にする。
嫌がらせや不快な環境作りと解釈される恐れがある。

・性的虐待などの話題について気軽に言及する。
一部の参加者にとって不適切な話題となる。

・コミュニティメンバーのBANや削除について言及すること。
許可なく個人情報を公開していると見做される可能性がある。

・他者にとって受け入れがたい行動をニューロダイバーシティの特性だとして無視すること。
これはニューロダイバーシティは特別な扱いを必要とするという固定観念を産み出す問題がある。

・物議を醸す話題、過去の論争を過度に蒸し返し、コミュニティの議論を継続的に妨害する。

・他のコミュニティメンバーのメンタルヘルスについて憶測する。


モデレータのBrett CannonとŁukasz Langaは、本提案への投票を棄権しました。
:::

この決定はどうやら表からは見えないところで行われたようで、Python理事会への権力集中という問題を図らずも証明していますね。

また、該当のスレッドを見るかぎり、正直かなり言いがかりに近いものを感じました。

たとえば`1970年代の中傷的な寸劇`をあらわす単語は`slut`ですが、これは`slut`という名前のPyPIライブラリについて面白いと言及したものであり、`slut`という単語自体に面白いと言ったわけではありません。
またセクハラについては、そうなったときにどうするんだと防波堤の必要性について語ったものであり、決してセクハラ的な主張を行ったわけではありません。
さらに逆人種差別については言及自体見当たりませんでした。
こんなかんじでとにかく牽強付会な理由付けが散見されます。

もちろん適切な理由もありますし、あと[元の話題から離れて](https://discuss.python.org/t/how-can-we-better-support-neurodivergent-newcomers-to-the-community/58724/)[延々しょうもない話をしている](https://discuss.python.org/t/inclusive-communications-expectations-in-python-spaces/57950/)のを見ているとBANしたくなるのもわからないでもないですけどね。

あと[元スレッド](https://discuss.python.org/t/for-your-consideration-proposed-bylaws-changes-to-improve-our-membership-experience/55696)では`slut`が`XXX`に書き替えられたことはなんとなくわかるのですが、実はそれ以外にも幾つかの発言がモデレータによって改竄されているようです。
はっきりとはわかりませんが、どうも`モデレータによって編集された`という[フラグすら残さず変更することも可能](https://discuss.python.org/t/why-im-leaving-discuss-python-org/58093/)らしく、元スレッドを見ただけでは何がどう書き替えられたのか全然わかりません。
従って元々は完全にアウトな言説が存在していた可能性ももしかしたらあるかもしれませんが、後から全く検証できないのは問題な気がしますね。

もちろん、この対処はかなり否寄りの賛否両論を招きました。

たとえば[かつてPSFの理事を務めていた](https://www.python.org/psf/records/board/history/)[Steve Holdenが脱退](https://discuss.python.org/t/why-im-leaving-discuss-python-org/58093)したり、[運営に楯突いたKarl Knechtelが永久BAN](https://discuss.python.org/t/im-leaving-too/58408/11)されたり、うっかり[Pythonが遅い](https://discuss.python.org/t/pep-744-jit-compilation/50756)と口走った[hypernovaが永久BAN](https://discuss.python.org/t/i-am-being-threatened-by-a-moderator-please-help/58570)されたりしています。
[PSFカテゴリの掲示板](https://discuss.python.org/c/python-software-foundation/9)はほとんどこの話題ばっかりです。


## [The Shameful Defenestration of Tim](https://chrismcdonough.substack.com/p/the-shameful-defenestration-of-tim)

全面的にTimを擁護する記事。
この著者はTimと同僚だったという過去を差っ引く必要はありますが、とにかくTimの有能さを褒め称え、それを排除するPython理事会の愚かさをこれほどかと主張しています。


## [Python Bans Prominent Dev for Enjoying the Wrong Old SNL Sketch](https://lunduke.locals.com/post/5985667/python-bans-prominent-dev-for-enjoying-the-wrong-old-snl-sketch)

この記事の著者がTimとPython理事会の全員に質問を送ったところ、回答を返してきたのはTimだけだったそうです。



# [Reddit](https://www.reddit.com/r/Python/comments/1ep4dbt/the_shameful_defenestration_of_tim/)

Redditの投稿は、ほとんどがTimに同情的でした。

Timは始終冷静で理にかなった質問をしていた、Python理事会のほうをBANすべき、たった40投稿でBANされるならredditユーザは全滅じゃないか、PSFはPythonを乗っ取ろうとしている、いや既にCoCWGという名のWokeに乗っ取られている。

まあ流石に陰謀論がすぎている投稿も散見されました。
特にこのスレッド、重複が存在していないのに[重複しているという理由で一度削除された](https://www.reddit.com/r/Python/comments/1ep4dbt/comment/lht4bp7/)ため、より妄想を掻き立てられてしまったようです。


# 感想

3ヶ月と期限を切ってはいますが、こんなことされて戻ってくるような人はそうそういないでしょうから実質永久BANといっていいでしょう。
[最近はほとんどContributeがない](https://github.com/tim-one)とはいえ、Pythonにとっては間違いなくレジェンド級の開発者です。
そこまでのリスクを負ってでもTimを排除したかった理由、外から見るかぎりでは正直よくわかりませんでした。

Pythonといえば[この数年言語ランキングのトップを独走している](https://japan.zdnet.com/article/35223162/)言語です。
そんな重要な言語の足元で起きているこんな ~~面白~~ 大変な出来事が、全く話題になっていないのはどうしてなんでしょ。

やはりPythonを使う人はPythonのライブラリだけにしか興味がなく、Pythonの言語自体はどうでもいいってかんじなんですかね。