PEP 8騒動について

今週PEP 8の小さい変更についてMLで騒動が起こってしまいました。

該当のコミットはこれです。

PEP 8: Change requirement to adhere to Standard English (#1470) · python/peps@0c6427d · GitHub

変更点はごくごくシンプルなものです。

- When writing English, follow Strunk and White.
+ Ensure that your comments are clear and easily understandable to other
+ speakers of the language you are writing in.

今まで知らなかったのですが、変更前の "Strunk and White" とは The Elements of Style というすごく有名なライティングに関する本らしいです。

www.amazon.co.jp

この変更は "Strunk and White" を知らない人にとって分かりやすくなるようにする変更で、これだけなら論争が起こることはなかったのですが、コミットログでこの変更がBLMの動きに関連づけられてしまったために論争が起こってしまいました。

Instead of requiring that comments be written in Strunk & White Standard English, require instead that English-language comments be clear and easily understandable by other English speakers.

This accomplishes the same goal without upholding relics of white supremacy. Many native English speakers do not use Standard English as their native dialect, so requiring conformation to Standard English centers whiteness in an inappropriate and unnecessary way, and can alienate and put up barriers for people of color and those whose native dialect of English is not Standard English.

This change is a simple way to correct that while maintaining the original intent of the requirement.

最初の段落はいいのですが、次の段落の冒頭の "This accomplishes the same goal without upholding relics of white supremacy." でまずギョっとします。

White=善/Black=悪というバイアスを強化する用語は、たとえ肌の色を意味していなくても排除しようという運動があり、最近は blacklist/whitelist に対する word policingが大きな話題になりました。そんな背景があったので、 "Struck & White Standard English" の White はもちろん著者の人名なんですが、まさか人名のWhiteすらword policing対象になるの!?と反射的に思ってしまう人がいました。

もちろん人名が問題になっているわけではありません。 Strunk & White Standard English は白人優位な社会で生まれた白人の標準語で、その利用を推奨することは黒人英語(AAVE)などの方言が標準英語ではないんだ、白人英語の方が標準(=優位)なんだというバイアスを助長するのが問題だとされています。とはいえ、コミットコメントでは Strunk & White がなぜ白人優位なのかの説明が抜けているので、まさか名前が問題なの?という誤解の原因になっています。

もう一つ論争になってしまっているのは標準語の利用を推奨するかどうかで、結局 "clear and easily understandable to other speakers of the language you are writing in." を達成するには標準的な一つの方言を使うしかないんですよね。あちこちの英語の方言が混ざると読みにくく、わかりにくくなります。それに英語ネイティブじゃない人に英語の読み書きを強制させることは英語=Standard、英語社会優位のバイアスを強化してしまってることには変わりありません。


PEP 8は本来Pythonの標準ライブラリのためのコーディング規約なので、結局Python開発に参加するときにアメリカの白人英語を使うことに変わりはありません。とはいえPEP 8はPython標準ライブラリに限らず広く使われているので、白人英語に限定した表現をせずに "clear and easily understandable to other speakers of the language you are writing in." という書き方にする変更自体は良いと思います。

とはいえ、このコミッターとGuidoだけで、他のコミッターに説明なくPEP 8が更新されたために、「Whiteっていう人名すらダメなの?」とか「方言使うことを推奨するの?黒人英語だけじゃなくて○○方言は?そもそも英語じゃない言語は?」っていう不要な誤解に基づく論争が生まれてしまいました。

今は git のヒストリを書き換えて、この誤解を招くコミットログをもっと誤解を生まない表現に修正するかどうかが話し合われています。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。