# blacklist/whitelist master/slave に関する情報集め blacklist/whitelist、master/slave という単語は相応しくないという意見に OSS がどの様に対応すべきかを自身で考える為の情報集めです。見つけ次第、逐次更新していきます。 僕(mattn) 自身は [black lives matter](https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%BB%E3%83%A9%E3%82%A4%E3%83%B4%E3%82%BA%E3%83%BB%E3%83%9E%E3%82%BF%E3%83%BC) に同意をしています。blacklist/whitelist、master/slave という単語を廃止する事が、歴史的背景を持たない文化圏では特定の意味を持たなかった為、個人的には若干思う所はありますが、廃止自身に反対するつもりはありません。 昔から、主副を表す物には master/slave という単語が使われてきました。ハードディスクの IDE、仮想端末(pty)、色々あります。またネットワークの IP フィルタリングに関しては blacklist/whitelist と表記した物が今でも沢山あります。 我々日本人が意識せずに使っていた blacklist/whitelist、master/slave という単語が、人々にどの様に影響しうるのか、今後 OSS としてどの様に関わっていけば良いかを理解する上で、自分なりの情報集めをしたいと思っています。 この Gist で個人的な偏りを出すつもりはありません。ただ、1つだけ言っておきたいです。これらの単語が過去に特定の文化圏で差別的な意味を持っていたのを知らずに使った他の文化圏の人達や、その前提知識を得ずに議論に参加しょうとする人達に対して無知だ無関心だ素人だと攻撃する様な事は建設的ではないと思っています。決してそれらを招く為の情報集めではない事をご理解下さい。 # master/slave の歴史的背景 https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96 > マスター(主人)とスレーブ(奴隷)という用語はしばしば論争の的となることがある。 > > 2003年11月、ロサンゼルス郡は電子メールで出入り業者に対してこれらの用語を使った製品を納入しないよう要求した[5][6][7]。これに対してIT業界ではばかげた主張だとして取り合わない動きが大勢を占めた[8]。マスタースレーブという用語はデバイス内部で起きていることを正確に表した技術用語であり、かつて存在した奴隷制度とは何の関係もないというのがその理由であった(ポリティカル・コレクトネスも参照)。 > > 一方で、こうした論争を避けるため、データベースの分野ではマスタースレーブの代替語として「プライマリー」や「レプリカ」といった語句を採用するケースもある。2018年には、プログラミング言語Pythonが論争の末、マスタースレーブを「ペアレント」や「ワーカー」「ヘルパー」といった語句に置き換えている。 ## 代替案 * leader/follower # blacklist/whitelist の歴史的背景 https://en.wikipedia.org/wiki/Blacklisting > A blacklist can list people to be discriminated against and cannot be employed. As a verb, blacklist can mean to put an individual or entity on such a list. https://en.wikipedia.org/wiki/Blacklist_(computing) ## 代替案 * blocklist/allowlist # 各 OSS での議論 ## Django (2014-05-21) https://github.com/django/django/pull/2692 > The docs and some tests contain references to a master/slave db configuration. > While this terminology has been used for a long time, those terms may carry racially charged meanings to users. > This patch replaces all occurrences of master and slave with 'leader' and 'follower' ## CrunchDB (2014-05-26) https://issues.apache.org/jira/browse/COUCHDB-2248 Inspired by the comments on this PR: https://github.com/django/django/pull/2692 > Summary is: `master` and `slave` are racially charged terms, and it would be good to avoid them. Django have gone for `primary` and `replica`. But we also have to deal with what we now call multi-master setups. I propose "peer to peer" as a replacement, or just "peer" if you're describing one node. > > As far as I can tell, the primary work here is the docs. The wiki and any supporting material can be updated after. ## Drupal (2014-05-28) https://www.drupal.org/node/2275877 ## Redis (2016-04-21) https://github.com/antirez/redis/issues/3185 ## Python (2018-09-07) https://bugs.python.org/issue34605 https://developers.srad.jp/story/18/09/14/0935201/ ## Chromium (2019-07-04) https://bugs.chromium.org/p/chromium/issues/detail?id=981129 ## Go (2020-06-08) https://go-review.googlesource.com/c/go/+/236857/ https://news.ycombinator.com/item?id=23445987 https://www.reddit.com/r/golang/comments/gy9ylr/go_has_removed_all_uses_of_blacklistwhitelist_and/