原文來源:編輯部的故事,開源中國
律動 BlockBeats 序:「Black lives matter」這個口號已經喊了一個月了,似乎一場保護黑人的全球運動在如火如荼的進行。現實生活中人們在遊行、抗議;線上世界也難以獨善其身。開發者們開始譴責、聲討那些開發語言中帶有歧視意味的字元:master、blacklist、slave 等等...... 開發這些字眼的極客們也開始自我檢討,彷彿這些字元的更改真的可以給黑人和那些正在忍受「奴役」的人們帶來更好的生活,世界上就真的不再有歧視與不平等。
開源社區本應該是一個自由討論與溝通,促進科技發展的凈土,而如今開源已經有些脫離了他的初衷與本質。科技巨頭們忙著宣揚自己的態度,慢一秒自己也會成為眾矢之的。有意思的是,事情沒發生之前,又有多少人覺得這些詞這些字眼有什麼不妥呢?如果之前已經意識到問題,為何遲遲未動呢?
我們不禁還是要發出這樣的疑問:改掉 master、slave 和 blacklist 就真能世界和平了么?也許當我們不在認為這些字眼充滿了不尊重和不妥的時候,才是實現了一種平等。
6 月 17 日,最初在 Git 中寫下「master」一詞的開發者 Petr Baudis 在社交網站上說,「當我說話時,是給別人聽的,而不是給我自己聽的。」意指當年不該使用「master」這個可能給別人造成傷害的詞語。
Petr Baudis 2005 年參與編寫 Git 時,選擇了「master」(和「origin」),他曾多次希望可以改成「main」(和「upstream」)。直到現在,才由 GitHub 開始主導替換工作。
這幾天,GitHub 首席技術官 Billy Griffin 也在社交網站上忙著回帖。他的大多數回復都在表達一個意思:謝謝您的意見,我們非常同意,並且我們已經開始著手將 master 替換成 main。他們發表上述言論的直接原因是,6 月 12 日,推特用戶 Una Kravets 喊話 GitHub,建議把 Git 中默認分支名字「master」改成「main」。隨後,GitHub CEO 稱讚了這個提議,並在評論區 @Billy Griffin。緊接著,更多人提出自己的意見,參與討論。Billy Griffin 開始一遍遍回應:我們在改了、我們在改了…… Petr Baudis 則說要去研究計算機術語「master/slave」的歷史。
GitHub 不是第一個在公眾的監督下,換掉「master」的主體,也不會是最後一個。美國的反歧視和反暴力執法運動,已經促使許多科技巨頭或知名軟體,調整自己的業務和產品,平息輿論。IBM、亞馬遜、微軟接連調整面部識別平台業務,以防加深歧視或遭受指責。GitHub、谷歌、OpenShift,微軟的 PowerShell 腳本語言、P5.js JavaScript 庫等近幾周先後開始更改源碼中,被認為帶歧視色彩的術語,以免不恰當的詞語造成傷害。現在,關於是否要更改「master/slave、blacklist/withelist」等詞語,可以改成什麼的討論還在繼續,而越來越多的軟體和廠商已經站好隊——決意替換這類辭彙。多個公司更改代碼中的計算機用語計算機術語政治正確性其實不是新鮮話題。2004 年,「master/slave」曾被全球語言檢測機構評為年度最不政治正確的十大辭彙之一,時任主席稱這是政治滲透到計算機技術控制中的表現。早在那時,洛杉磯就有一個區域採購部門,以種族歧視為由,禁購採用該辭彙的軟體。不過當時計算機軟體和網路並不像今天這麼普及,因此更改用語的事件比較零散。比如,2008 年,開源軟體 Drupal 在社區發布消息,高調站隊,將「master/slave」重命名為「client/server」,並解釋稱,在有更好的替代方案可用時,繼續使用潛在的、冒犯性術語通常是不受歡迎的。
之後一直到 2018 年,IETF 在草案當中,要求開源軟體更改「master/slave」和「blacklist/whitelist」兩項表述。計算機術語的使用才引起更廣泛關注。同年,許多開發者呼籲一些開源軟體廠商修改源碼,Redis、谷歌、Python 都曾被要求這樣做。谷歌開始避免再使用「blacklist」一詞,Redis 和 Python 開始清除「master/slave」表述。清除這些表述的成本不低。谷歌幾天前確定 Chrome 瀏覽器中不再使用「blacklist/whitelist」的說法,後續計劃用用「blocklist/allowlist」來替代,但這項工作並不確定什麼時候能完成。Redis 的作者 Antirez,早在 2018 年就解釋過修改源碼會產生的兼容性問題,例如:
- 不能再應用現有的 PR
- 有像 INFO 和 ROLE 這樣的命令——使用包含 slave 術語的協議進行回復
- 術語 slave 中的源代碼包含 1500 個事件
- 擁有私人項目並根據需要進行代碼合併的人會遇到很多問題
尤其是最後一項,GitHub 現在也面臨這個問題。Billy Griffin 在回復更換用語的建議時說,「我們正在與 Git 的其他利益相關者合作,以達成一致。」GitHub 從更新新存儲庫的默認設置開始,並為遷移提供更多指導,除了 GitHub Pages 之外,他們正更廣泛地更改新存儲庫的默認分支名稱。Billy Griffin 還在跟開發者解釋,為什麼更認可用「main」而不是其他詞來代替「master」。原因包括,前兩個字母相同,容易有肌肉記憶,另外表意也更為準確。此外,6 月 7 日,Billy Griffin 還曾建議將計算機使用的「blacklist/whitelist」更改為「allowlist/denylist」。在 Una Kravets 呼籲 GitHub 換掉「master」一詞時,大家就在等待 Linus Torvalds 對這件事作出回應,解釋為何這樣寫。事實上,這個詞並不是 Linus 寫進去的,而且從 Linus 2018 年的一些行動中,或許就能看出 Linus 對此類事情的態度。2018 年 9 月 16 日,Linus 發行了 4.19-rc4 版本的內核,他和其他幾個內核開發人員在內核樹的補丁程序上簽字,合併了新的行為準則政策。行為準則涉及要使用受歡迎、包容的語言。人們對 Linus 的做法和行為準則本身有很多不滿,有些人認為採用行為準則是某些利益獲得群體,控制軟體項目的一種方式,沒有必要在計算機用語中討論立場是否正確,技術應該是中立的。雖然 Linus 發完公告就退出了開發團隊,很多人也不喜歡新的行為準則,但這份準則還是留了下來,而「master」顯然不屬於準則中說的,是受歡迎的語言。為什麼碩士學位 master 不用改?黑色有什麼不對嗎?反對的聲音一直很多。最突出的兩個理由是:計算機源碼中的「master、blacklist」等詞語,並不包含歧視情緒;更改的成本不低。「即使我的想法是博客中表達的那樣(代碼中的 slave 並沒有指代奴隸的意思),但我最終還是決定改變 Redis(中引起爭議的)術語……但是我們需要做更多事情。」這是 Antirez 6 月 13 日在社交平台上發表的言論,他道出了很多人的心聲。
有開發者會問,如果要改代碼中的詞,那麼英語國家的碩士(master)是不是要換?黑帽子、黑天鵝中的黑字是不是也要換掉?其實倡議者們想表達的,並不是不能使用「黑」這個詞,而是希望不要把「黑」作為「白」的對立面,表達「不好」、「壞」、「需要被限制」等負面意思。同理,當「master、slave」出現在源碼中,並且表達的「主-從」關係,這會讓一些人聯想到奴隸制。Drupal 十多年前重命名「master/slave」時,就指出過這一點:如果代碼里有一句「here are the steps I had to take to get my slave running」,可以理解成:我執行一些步驟,讓分支運行;也可以理解成讓我的奴隸跑起來。而奴隸制並沒有消失,有些地方有人口販賣交易,很多移民或特殊工種本質上正在被奴役,所以在軟體社區,應該儘可能反對所有形式、語言的壓迫。針對「blacklist/whitelist」。黑名單 blacklist:代表該被禁止的、不好的名單。白名單 whitelist:代表可以被允許的,好的名單。更容易給看到代碼的人,造成「黑 = 不好,白 = 好」的印象,而且,「black」也常常和「slave」聯繫在一起,提醒人們此前長時間存在的種族不平等。一直以來,黑人運動中,一個重要的「任務」就是告訴所有人:黑色 ≠ 不好、黑人 ≠ 奴隸。上世紀,被譽為「黑人民族的桂冠詩人」Langston Hughes 曾用一首詩,來證明這個道理:
我是黑色的當我照鏡子時,我看到我自己,但我並不感到羞恥上帝並沒有讓我比其他人更壞大地是黑色的,各種好東西從大地里出來樹木、鮮花、水果、紅薯和玉米,以及一切使人活下去的東西,都是從地下冒出來的——古老的黑土地煤是黑色的,它可以溫暖你的房子、做飯夜晚是黑色的,有一個月亮,和一百萬顆星星,非常美麗睡眠是黑色的,它讓你得到休息,所以你醒來時感覺很好我是黑色的今晚我感覺很好「黑色有什麼不對嗎?」
冷萃財經原創,作者:Awing,轉載請註明出處:https://www.lccjd.top/2020/06/27/%e5%bd%93%e5%bc%80%e5%8f%91%e8%80%85%e4%bb%ac%e5%bc%80%e5%a7%8b%e5%8f%8d%e7%9c%81%e3%80%8c%e9%94%99%e8%af%af%e3%80%8d%ef%bc%8c%e6%98%af%e4%bb%a3%e7%a0%81%e9%94%99%e4%ba%86%e5%90%97%ef%bc%9f/?variant=zh-tw
文章評論