罵得越臟,代碼越強(qiáng)。
這是在計算機(jī)科學(xué)隱秘地帶的一條不成文的信條——在代碼里罵臟話,是智商和情商的雙重證明。
這個現(xiàn)象是一種跨時代、跨語言的程序員亞文化。
你管它們叫臟話
我管它們叫注釋
包含臟話的開源代碼比不包含臟話的代碼質(zhì)量更高——這已經(jīng)得到了學(xué)術(shù)的證明。
德國卡爾斯魯厄理工學(xué)院理論計算機(jī)科學(xué)研究所的一篇論文得出的結(jié)論是:
“我們發(fā)現(xiàn),在多項統(tǒng)計測試中,包含臟話的開源代碼比不包含臟話的開源代碼表現(xiàn)出明顯更好的代碼質(zhì)量。
我們假設(shè)臟話的使用構(gòu)成了程序員對代碼及其固有復(fù)雜性的深刻情感參與的指標(biāo),從而在徹底、批判和辯證的代碼分析過程中產(chǎn)生更好的代碼?!?/p>
開源代碼中臟話的使用和代碼質(zhì)量之間有關(guān)聯(lián)嗎?
翻譯成人話來說就是,在代碼中插入臟話的程序員,可能比不這么做的程序員更投入于他們的工作。
這將導(dǎo)致前者生產(chǎn)出更高質(zhì)量的產(chǎn)品。
當(dāng)你在代碼里用更有力的語言表達(dá)情感時,你會顯得無比誠實。
C語言代碼包含和不包含臟話的得分
一個在代碼里寫fuck的人更值得信任。
他至少告訴了你,他在工作中經(jīng)歷了痛苦,確認(rèn)了絕望,并且真誠地向你傳遞了絕望的質(zhì)感。
那是一種用臟話調(diào)制的JSON數(shù)據(jù)包,攜帶了人類的原始信號。
臟話是編程世界的地下紋身,是機(jī)器語言里混進(jìn)的私酒,是程序員在數(shù)字沙漠里留下的石碑。
一個沒有臟話的項目,就像一鍋沒放雞精的湯——可以喝,但沒味兒。
研究組發(fā)現(xiàn),在所有包含臟話的代碼中,“fuck”是程序調(diào)試中使用最廣泛的命令。
這得益于這種語言的主要品質(zhì):簡單的語言結(jié)構(gòu)——世界上每個七八歲的孩子都會說。
再就是該語言的可移植性。
無論你用的是JAVA、C++、Swift還是Javascript,每種編程語言都能使用它。
不需要集成開發(fā)環(huán)境,也不需要編譯器,每個程序員都能理解它的意思。
Linux內(nèi)核源代碼中單詞隨時間的變化
論文中提到的另一種可能的解釋是,在工作場所說臟話是一種緩解壓力的形式,進(jìn)而可以提高注意力,從而提高代碼質(zhì)量。
心理學(xué)也提供了大量解釋,指出了臟話可以緩解疼痛、提高身體機(jī)能的例子,并證明臟話在戰(zhàn)略性使用時,可能會提高程序員的專注度。
事實上,加州大學(xué)圣地亞哥分校的認(rèn)知心理學(xué)家本杰明·伯根,曾經(jīng)在他的著作《臟話:關(guān)于我們的語言、我們的大腦和我們自己》中提到——在他教授的每次大學(xué)講座中都會說一次臟話(以一種不太可能冒犯全班同學(xué)的方式),因為有證據(jù)表明,當(dāng)有策略地使用臟話時,可能會提高學(xué)生的參與度。
是更優(yōu)秀的程序員更愛說臟話,還是只有C語言會讓優(yōu)秀的程序員說臟話?
最近的一篇學(xué)士論文指出,對于開源C代碼來說,臟話意味著質(zhì)量。
還有一個簡單的事實,那就是你必須非常有信心,才能在工作成果中發(fā)表如此大膽的評論。
這種信心與能力相關(guān)。
更高的編程水平自然帶來更高質(zhì)量的代碼。
自信、高水平的程序員樂于在編程中用臟話來表達(dá)自我想法,是完全合理的。
在某種程度上,罵街和寫算法有異曲同工之妙——水平高的人,罵得不僅押韻,還能遞歸。
而那幫語言和編程能力強(qiáng)的程序員,制造“fuck”就像生成隨機(jī)數(shù),永遠(yuǎn)不缺新鮮感。
在文化意義上,注釋區(qū)的罵街文學(xué)和變量/函數(shù)命名的臟話彩蛋,也并不總是為了冒犯別人,而更像是一種情緒宣泄、圈內(nèi)暗號和自嘲幽默的混合物。
對程序員來說,這種臟話是反權(quán)威、反企業(yè)模板化的表達(dá),有點(diǎn)像酒吧廁所門背后寫的內(nèi)部留言,粗鄙但真實。
高手的代碼不像大學(xué)里的算法課,整齊如祈禱文;也不像甲方的需求文檔,干凈得像手術(shù)室。
他們用“shit”、“fuck”、“wtf”當(dāng)作代碼的命名,一來方便搜索和重構(gòu),二來給后來維護(hù)的人一種“這里有坑”的預(yù)警。
在提交給GitHub的開源項目里,罵一句“shit”,就是對全世界程序員的求救信號,就像漁民在桅桿頂升起的黑旗,告訴大家這片海域有風(fēng)暴。
許多人認(rèn)為說臟話是缺乏智力和教育的粗俗表現(xiàn),因為他們覺得當(dāng)你擁有豐富的詞匯量時,為什么還要使用臟字呢?
但在程序員的世界里,語言與智力的關(guān)系往往呈現(xiàn)負(fù)相關(guān)。
一個真正有天賦的程序員,從來不滿足于寫“error”,他會寫“catastrophic fucking error”。
這不僅是錯誤提示,更是一次精神上的投影,它讓冰冷的0和1帶上了人類體溫。
低水平的代碼民工寫程序,只會乖乖在注釋里說“這里有錯誤,請修復(fù)”。
而智商高的程序員,會用三行“fuck”組成一首十四行詩,讓后來的維護(hù)者一眼讀出他的悲憤、絕望和人格殘骸。
你能編出一段優(yōu)雅的算法,不代表你能發(fā)明出“shitfuckery”這種變量名;而能精準(zhǔn)創(chuàng)造這種詞匯的人,往往才是代碼江湖的老幫菜。
懂得何時罵臟話,何時把臟話藏進(jìn)括號里,這是一門需要社交智商的藝術(shù)。
比如你在代碼評審時,把“fuck”改成“fuc_k”,這就像是穿西裝配一條花丁字褲——外表上得體,里面依舊自由。
又比如開源項目里,你在公共函數(shù)上罵一句“this is bullshit”,這是向全世界發(fā)出的末日信號。
而寫“raise Exception("Error occurred")”的人,就像在泰坦尼克號撞冰山時廣播“前方稍有波動,請注意腳下”,這種虛偽簡直比Bug本身還惡劣。
2017-18年各大洲的代碼提交數(shù)量和臟話次數(shù)
臟話集中在右腦,右腦是創(chuàng)造性大腦,所以罵街是一種藝術(shù)。
“我們知道,右側(cè)中風(fēng)患者往往會變得不那么情緒化,不太能夠理解和講笑話,并且傾向于停止說臟話,即使他們很久以前曾經(jīng)喜歡說臟話?!薄妒褂肍 Word是好的》一書的作者艾瑪·伯恩說。
這解釋了為什么最有創(chuàng)意的程序員,總能發(fā)明一些沒人聽過的罵法,比如“fuckthisshitifyouwanttodie”這樣的函數(shù)名,或者“WTF_MODE_ENABLED = True”這樣的常量。
沒文化的人罵“草”,有文化的人罵“狗日的邏輯樹叉錯位”。
那些最有創(chuàng)意的程序員,往往也最會在鍵盤上放煙花。
他們的“fuck”前面加“holy”,后面加“universe”,像在寫搖滾歌詞。
寫代碼不罵街的人,只是還沒遇到過能讓靈魂崩潰的bug。
等你三天三夜沒睡,調(diào)一個內(nèi)存泄漏,最后發(fā)現(xiàn)是標(biāo)點(diǎn)符號的問題,你罵出來的臟話,能讓整個右腦開花。
代碼里的每個臟字,都是枯燥邏輯世界里唯一的詩意和嚎叫。
它是程序員在與機(jī)器冷漠對話的過程中,留給同類的情感路標(biāo)。
正如古時文人騷客在橋洞中留下的“到此一游”,現(xiàn)代程序員在函數(shù)里留下一句“fuck this”——那不是不敬,那是歷史的留聲機(jī),記錄里人類智慧與絕望福報在二進(jìn)制里的合影。
記住,罵街不一定是墮落,也可能是留給同類的坐標(biāo)系。
數(shù)十年后,別人看你的源碼,讀到“This is bullshit”,他們將不得不承認(rèn)一個事實——世界上最誠實的作品,不在圖書館里,而在那些沒人想維護(hù)的老項目里。
beebee商店
今日單品推薦
【新中式·輕滋補(bǔ)】原始拾光 即食人參
非遺困參技藝 去燥不上火
加班熬夜 精氣不足 日常滋養(yǎng)
149/盒 299/3盒
武當(dāng)·靈玉沉香手串
新疆漸變和田玉 溫潤細(xì)膩
精選沉香珠 油脂豐富
難得好料僅249元起
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.