“有人的地方就有江湖,有江湖的地方就有纷争”。这话不仅适用于现实世界,也适用于网络世界。
就在前不久,全球三大操作系统之一 Linux 的官方社区就发生了一些纷争,一位暴躁老哥本着“能动手尽量憋BB”的原则,直接黑掉了网站。
黑掉 linux 网站的技术原理其实不难,就是个典型的 DNS(域名解析)劫持。
一张图,两句话就能讲明白:
(黑客盗走DNS账号密码,把网友带进了沟里)
虽然原理很简单,但表面的冲突永远都只是冰山一角,更深层次的恩怨情仇往往藏在深海之中。
Linux 官网为何被黑?主页上的菊花图片是何含义?黑底绿字又表达着什么怨念?这一切是何人所为?是人性的扭曲还是道德的沦丧?本期幺哥试图走近真相,为大家揭开 Linux 社区被黑事件背后的故事与矛盾……
Let's Rock !
1.“碍着我写代码了”
时间回到三个月前。
2018年 9月16日,Linux 的创始人Linus 冷不丁签发了一份名叫“CoC”(Code of conduct )的行为规范,本意是想规范社区的行为,不骂人,不歧视,为社区营造出“其乐融融合家欢”的讨论氛围,不料却点燃了冲突的导火索。
这套行为准则的大致意思是说:
为了营造开放、热情的社区环境,社区的每一个人应该遵守这套行为准则,不得言语辱骂他人,不得在代码和讨论中发表带有歧视的内容,包括性别(歧视)、年龄、种族、国籍、经济地位、外表、性取向、性认同等等方面。
然后具体罗列了一些处理办法。
(大家感受一下这个意思就好)
支持平等,反对歧视;支持文明表达,反对言语辱骂。在常人看起来,这大概是一份鼓励人们积极向上的行为准则。
可就这么个准则,引起了巨大争议,反对的声音犹如滔滔江水连绵不绝……
一个典型的声音是:“做技术的专心写好代码就行,不应该受这些跟技术不相关的事影响。”,他们觉得 CoC 行为准则是一种“政治正确”,会影响他们写代码。
听起来似乎有些不讲道理。
难道专心做技术就可以搞性别歧视、种族歧视、性取歧视? 一份尊重文化差异,追求人人生而平等的行为守则怎么就碍着你们写代码了?
别说,“尊重文化差异” 还真会影响写代码。
说个真事。数据库技术领域有个正儿八经的技术专业术语叫:“master-slave”,翻译过来大意是“主从模式”或者“主仆模式,它是用来提高数据库工作效率的一种调度方法。具体是什么不太重要,总之,全世界的程序员都在用,而且很多年都没什么问题。
可是这两年忽然人跳出来说,这个词带有歧视的意味!
因为“master“和“slave”分别是“主人”和“奴隶”的意思,分明是暗示“奴隶制度”,不符合当今人人平等的价值观……
知名数据库 Redis 的作者 Antirez 经常收到来自各地的请托邮件,要求他改掉 Redis 里的 “master-slave”。他起初一脸懵逼,觉得虽然这个词一开始确实可能源于奴隶制度里的主仆关系,可是用着用着这个词早已不带任何感情色彩,只是一个很纯粹的技术词汇。
(其实这个表述还挺形象)
可是反对的呼声越来越高,迫于压力,Antirez 只得在网上发起一个匿名投票,结果六千多个投票者里,居然显示半数以上都支持改掉 master-slave。
面对这个结果,他能怎么办,他也很绝望啊,作为 Redis 的作者,Antirez 要对项目负责。他深刻知道,一个在常人眼里看似简单的程序修改实际会付出很昂贵的代价,因为这个术语牵扯到的其他命令非常多,很可能让项目产生各种奇奇怪怪的兼容性问题。
更关键的是,Antirez 打心底觉得这个词不带歧视。这种自由意志被多数人道德绑架甚至强奸的感受,让他非常不好受。
或许是出于文化差异,其实我听着也觉得这事儿挺扯。
这就好比,“奴隶”的“奴”字我们已经用了很多年,这时忽然有人扛着“女权主义”的旗子跳出来说“凭什么奴隶的‘奴’字是“女字旁”,这是歧视女性啊!”
(奴字最早确实是一个“咸猪手”伸向“女”)
而且这种呼声还非常高,在“女权主义”这杆旗的庇护下,人们纷纷要求把所有字典、书、网上的 “奴”字都改成“仅”字或者“男又”字,理由很简单,男女平等的时代,凭什么奴隶的“奴”只用女字旁?
听起来似乎也有那么一丢丢道理。
可是倘若真的依照这个逻辑,把“奴”改成“仅”,很快就会有人要求把“嫖娼”二字也改了。凭什么“嫖”的是“女票”,不能是“男票”?
发展到最后,所谓的“平权”只会沦为荒诞。
可 Antirez 最终还是没能忍受人们没完没了的要求,他妥协了,在保留 master-slave 的情况下同时启用 master-replica 用法,两个术语是一个意思,开发者们爱用哪个就用哪个,相当于即可以用“女票女昌”,也可以“男票男昌”,爱嫖哪个嫖哪个,最大程度上兼顾左右。
看到这里,或许大家已经开始理解为什么 Linux 社区的一部分人要极力反对看似正能量的 CoC 行为准则了。
原因很简单,一旦人们欣然接受 CoC,开了这个口子,未来的规矩和要求可能越来越多,没完没了,就像漩涡一样把所有开发者卷进去。诚如陈医生的那句名言:“得不到的永远在骚动,被偏爱的都有恃无恐。”
到最后,如果开发者们连写个代码也要步步惊心,一不小心就被扣上各种歧视、三观不正的帽子,确实恐怖。
2 “SJW们的阴谋”
更恐怖的是,有人怀疑 CoC 行为准则其实是个阴谋,一个由“SJW”发起的阴谋。
SJW 全称是“Social Justice Warrior”,社会正义斗士,指那些大义凛然地扛着道德大旗到处指责别人,实际想法非常主观,他们有的人或许是发自内心以为自己是圣人,有的人则是借着这些名头提高自己的权力。
这个词在国内貌似不常见,但有两个意思相似的词:“道德婊”、“键盘侠”。他们都喜欢站在道德高点给别人扣帽,得不得理都不饶人。
在一些开发者眼里,SJW 们不需要懂技术,但只要一扛起诸如“尊重女性”、“尊重同性恋”之类的旗帜,就变得神圣不可侵犯,一旦冒犯了他们,就给你扣上三观不正的帽子。
这么说当然不是空穴来风。
备受争议的 CoC 行动原则最早是基于一个叫“贡献者盟约”的文档而来,它的作者 Ada 在2015年,就干过 “得理不饶人”的事情。
(行为准则最初的作者 Coraline Ada Ehmke)
当时,另一个开源项目 Opal 的核心开发者 Elia 在网上发表了一些对变性人不太友好的言论,Ada 被激怒了,因为她就是变性人,还是 LGBT活动家(LGBT——同性恋、双性恋、变性人等性别观点不同于常人的人),经常在外呼吁平等对待LGBT。
于是,她以“歧视 LGBT 群体”为由,要求 Opal 项目组将 Elia 驱逐出去。
由于 Ada 名气不小,她的呼吁很快得到响应,Opal 项目组分成两派撕了起来。一派觉得 Elia 的言论确实不妥,需要受到惩罚;
另一派则觉得 Elia 在社交媒体Twitter 上爱咋说咋说是言论自由,而且这事儿跟 Opal 项目无关,跟技术无关,所以不应该处罚。况且,Elia 是项目的核心代码贡献者,一个为项目呕心沥血的人,凭什么要被“从天而降”一行代码也没贡献过的“道德圣斗士”几句话就驱逐呢?
争到最后,双方各退一步达成和解, Opal 项目组没有清退 Elia,但也妥协,采纳了 Ada 的贡献者盟约,对项目组成员未来的行为进行一定规范。
争执本该结束,可是新的问题很快就出来了。
没过多久,Ada 在贡献者盟约里更新了一些新条款。明眼人一看就知道是针对Elia的。大概意思是:
不发表歧视同/异性恋、变性人的内容,代码里和讨论区都不行;一旦发现,将被要求清退出项目组;并且要求贡献者盟约的使用范围进一步从项目组改成公共领域,在公共场合也不准发表不当言论……
这下彻底把 Opal 项目组给惹怒了,他们觉得Ada 有些理不饶人,仗着自己有修订盟约的权力就胡来。
于是项目组决定甩开这帮人,自己弄一套大家看着都还满意的行为准则。
从那之后,Ada 就成了许多开发者眼中的 SJW,喜欢扛着“平权大旗”到处横插一脚,用正义的名义来伤害开源项目的核心开发者。
无独有偶。类似的情况在 Linux 社区发布 CoC 时又出现了。
Linux 核心组里有个叫“曹子德”的元老级人物自始至终拒绝签署 CoC 条约。
没过几天,一个 Ada 的追随者 Sage Sharp 在网上指控曹子德是“强奸辩护者”。理由是,曹子德以前曾经写过一篇文章说不少强奸案其实没有真实证据,只是因为女方单方面指控就定了罪,值得推敲。
一石激起千层浪,全世界的开发者们又吵开了……
“有心之人又想借机把曹大神排挤出核心团队……”
“再闹下去,越来越多的技术大神都会被逼得离开社区……”
“哎,希望学术的归学术,政治的归政治……”
(图片截取自V2ex讨论区)
之后,更多开发者们对 CoC 避而远之,极端反对者甚至不惜对 LGBT 恶语相向,甚至黑掉网站来表达态度。
3.认错的暴君
说来也怪,既然反对 CoC 行为准则的人那么多,那 Linux 项目组为什么还要签发 CoC 呢?
因为在此之前,Linux 社区的氛围确实不怎么友好,时不时出现一些言语攻击、辱骂。对那些出错的人(尤其是技术新人),社区的反应非常严厉,欠缺礼貌宽容。
这一点在 Linux 的创始人 Linus 本人身上就体现得淋漓尽致。
Linus 本人是个远近闻名的大喷子,暴君。当发现别人代码里的问题,他会当众用各种不堪又别具一格的话来嘲讽、羞辱你。
当 OpenBSD 项目的开发者在贴子里强调了代码的安全性,Linus 会回帖说对方是“自慰的猴子”,只知道炫耀安全性;
当核心成员提交的代码不够简洁,Linus 会用独有的方式爆粗口:“皇天在上,这踏马写得就是一坨屎……”
从上个世纪 90 年代 Linux 项目诞生至今,见识过 Linus 喷人功力的程序员手拉手连起来兴许可绕地球一圈……
虽然在不少人眼里,Linus 已经到了口无遮拦、语言虐待的地步。不过他自己却解释:“我只关心技术,不太擅长和人打交道,照顾别人情感这事对我来说太难了!比写代码难多了……”
简而言之:
“我控几不住寄几啊!”
哎……真是不知道该怎么说他了。难道在他这样的技术天才和完美主义者眼中,“在座的各位真的都是辣鸡?” ,以至于按捺不住喷人的冲动?(话说乔布斯生前也是个“暴君”)
不过,在喷人这件事上,Linus 确实做到了一视同仁。
有人专门用软件分析过他所有公开骂人的邮件,发现没有什么地域、性别、种族、性取向等偏向和歧视,真如他所说,“只是聚焦于代码和技术本身的好坏”。
Linus 真的就像我们身边那种学术很厉害但情商很低的大神一样,一心只想做技术,懒得考虑别的……
总之,他就这么喷了二十多年,许多人也习惯了他的作风。毕竟他是全球为Linux 贡献代码最多的人,技术非常厉害,大家似乎也不能要求一个人尽善尽美。
到后来,有的人居然开始赞赏他不做作,不妥协的风格。人们也津津乐道于 Linus 的喷人技术……
当然,因为不堪忍受言语辱骂而撂担子离开项目组的技术大牛也不是一个两个了……
我总是相信,一家公司的性格会越来越接近 CEO 本人的性格,一个社区也是如此。
在 Linus 的带领下,整个Linux 社区在十几年里的气氛都恰似他本人的行为作风。有网友直言:“反正作为一个新用户,我从来没有在 Linux 社区里感受到自己是受欢迎的。”
这两年 Linus 似乎意识到了这个问题,终于决定改变。CoC 就算是其中一个标志。
在签发 CoC 后不到30分钟, Linus 群发了一封道歉信,一个二十多年的“暴君”居然开始对自己的不良行为道歉。
他说,整个社区也应该考虑考虑它的行为方式,现在的 Linux 社区是一个“航脏的泥潭”。对于 CoC 过度政治正确的争议,他持保留意见。大概意思是“先试试看,不行再说。”
随后,他宣布给自己来个“不限期休假”,社区的事暂时交给他的二把手来打理。他要去好好学习一下如何与人好好说话,或者给自己写一套专用的脏话屏蔽工具,帮助自己减少言语攻击。
有人说,Linus 是被SJW 们道德绑架才被迫道歉,并签发了CoC。也有人说Linus 受家庭尤其是几个女儿的影响,姿态开始放低。(他的女儿都是90后和00后,可能他想当学着做个慈父也说不定),但最终原因无从考究,似乎也并不重要,Linus 已经做出选择,决议改变。
4.平衡是冲突的结果
有人说,技术归技术,政治归政治,文化归文化,不应该相互掺和。
也有人说,技术的最终目标是解决人类面临的问题,让世界更美好,它从来就是文化、政治的一部分,自然不能免俗,当触及到模糊的政治文化地带时,一味地回避并不解决问题。
技术研究应不应该受政治文化的影响,我觉得永远是个问题。CoC 的争论还将继续,有人扛着“平权”的旗,有人扛着“反对政治正确影响技术”的旗。
双方都有各自的“政治正确”。
但是,世上绝大多数问题,本来就不是“黑”或“白”,“是”与“非”的问题。而是“平衡”的问题,是“度”的问题。
争论双方各自有立场,人的思想没法量化,最终只能靠双方一点点试探才能找到边界。在这个过程中,免不了踏入对方的领地,引发冲突。
真理越辩越明,希望人们在无数次试探之后,能更加走近真理。
最后鸣谢一下 Linux 中国社区(linux.cn)的创始人王老师,感谢他提供的资料参考和观点。
参考资料:
Linux 中国.资讯.《Linux 拥有了新的行为准则,但是许多人都对此表示不满》
Linux 中国.资讯.《Linus 回应 CoC 风波:我是个好人,Linux 社区变脏了》
21IDC.《口无遮拦,出口伤人无数的Linux之父终于道歉了》
java程序员联盟.《数据库术语master-slave政治不正确,Redis 作者被迫修改》
部分截图源于 linux.org 、git.kernel.org 和 Github