本文作者SulfuriumUranide,有機化學博士,畢業於美國達特茅斯學院,現任國際頂級化學期刊《應用化學(Angewandte Chemie)》執行編輯,曾在美國能源部國家能源技術實驗室從事博士後研究,並先後擔任《先進材料(Advanced Materials)》和《自然·化學(Nature Chemistry)》等知名期刊學術編輯。
SulfuriumUranide曾為我們帶來一些有趣的跨界科普:《為了講故事,人類到底虛構了多少化學元素?》《兩枚塑膠蛋蛋,正在維護美國憲法第一修正案》,這次則講述的是嚴肅科學界中經久不衰的……爛梗討論。
1968年,荷蘭計算機科學家Edsger Dijkstra在《計算機協會通訊CACM》期刊上發表了一篇文章,開頭就對程式語言中常見的goto語句大加撻伐:“多年來我一直注意到一個規律:程式設計師的水平跟他們程式碼裡用goto語句的密度成反比……我深信,所有‘高階’程式語言都必須廢除goto語句”。
那麼,什麼是goto語句?它的名字來源於英文單詞go和to,顧名思義就是“跳轉”。簡單來說,這是一種直接從程式程式碼的某一部分跳到另一部分的指令,就像一個不打招呼的“傳送門”。
初看起來它似乎很方便,但風險在於會打亂程式的邏輯結構,讓程式碼變得像程式設計師自己都可能迷失其中的一團亂麻。
從外行角度打個不恰當的比方,假如你正在玩《黑神話:悟空》,突然跳出了一個傳送門,把你帶回了86版《西遊記》的某個片段,那種“錯位感”和混亂就是goto濫用帶來的潛在後果。
Dijkstra投稿時的標題原本平平無奇——《一個反對goto語句的理由》(A Case Against the Goto Statement)。
但時任《計算機協會通訊CACM》 編輯 Niklaus Wirth 大概嫌這標題“沒有傳播力”,大筆一揮改成了“中二感爆棚”的《goto語句有害》(Go To StatementConsidered Harmful)。
這就好比今天某條微博突然爆出驚悚標題“某程式設計語法有毒!”,任誰看了都得點進去一探究竟,直接把話題熱度拉滿。連大神高德納Donald Knuth讀到後都不禁玩了個諧音梗,打趣道:“後藤博士(Dr.Goto,指日本計算機科學家後藤英一EiichiGoto)臉上笑嘻嘻地抱怨說自己總是被‘消滅’掉。”
瑞士計算機科學家Wirth(左)是包括Pascal在內的多種程式語言的主設計師,因此獲1984年圖靈獎,曾在1995年提出吐槽軟體愈發臃腫的Wirth定律,即軟體變慢的速度永遠超過硬體變快的速度。
高德納(右)的鴻篇鉅製《計算機程式設計藝術》向來被認為程式設計界的“聖經”,他也是1974年的圖靈獎得主
令所有人都始料不及的是,Wirth靈機一動的神來之筆就好像執行了一條後果不明的goto語句,一下子帶火了X cosidered harmful這個大眾媒體中“吸睛”效果滿滿卻早已不新鮮的爛梗,帶癲了計算機學術界。
隨後各種“有害論”的文章雨後春筍般湧現,如今在谷歌學術上以considered harmful為關鍵詞的搜尋結果有六萬多條。
其中就有一些放在今天看來讓人莞爾的觀點。比如“人工智慧之父”、1971 年圖靈獎得主 John McCarthy 發表過一篇文章,標題是《網路對電子郵件有害》。
這篇文章的觀點,聽起來像今天有人說“手機對簡訊有害”,但別忘了,這可是網際網路還沒普及年代的嚴肅發言!
真正把X considered harmful梗推向高潮的,是圍繞 Dijkstra 原文的一場“程式設計界內卷”——以“結構化程式設計”之爭為主題的多輪論戰。
時間一晃過了小二十年,1987年3月Frank Rubin發表了篇怒斥《goto有害論》的反擊文章,標題叫《“goto有害論”才有害》。一石激起千層浪,倆月之後CACM集中刊發了一系列題為 《‘“goto有害論”才有害’到底害不害?》的討論,彙集了正反雙方多家觀點。
可見擅長多層巢狀的程式設計大神們玩起套娃梗樂此不疲,絲毫不輸任何一場熱門彈幕大戰。
不過作者本就是這樣的,編輯只需要考慮吸引眼球就可以了,可是作者要考慮的事情就很多了。
這下論戰的大男主Dijkstra坐不住了,非常不爽地以題為《記一次令人失望的筆談》的戰鬥檄文直接開噴。開篇就大加抱怨“以為你們多少有些長進能替我分憂,沒想到我還是獨孤求敗”,到了結尾仍舊怒氣未消“都過了二十年你們還是幼兒園撒尿和泥的拉胯水平,擱那玩呢?!”
這場論戰影響深遠,ACM從此禁止了主觀意味如此濃厚的討論,但也進一步把X considered harmful推向了潮流前沿。以至於又過了十幾年有人忍無可忍呼籲《‘有害論’文章實在有害》,連自相矛盾都顧不上了
Dijkstra的風格一貫犀利,而他1972年圖靈獎演講的題目卻是《謙遜的程式設計師》(The Humble Programmer),強調要充分認識到程式設計的巨大難度,以非常謙卑的態度去完成任務,才能大幅提升自己的姿勢水平。令Dijkstra始料不及的是,“有害論”的迴旋鏢隨即射向自己,同年年底就有人發表了題為《傲慢的程式設計師:Dijkstra與Wegner之流貽害無窮》的文章,把Dijkstra等的學術觀點批判一番。
個性鮮明的Dijkstra極其討厭使用電腦,卻偏愛萬寶龍“大師傑作”系列鋼筆用於寫作,曾宣稱:我不能因為自己是個計算機科學家就要在電腦上浪費時間,就好比醫學專家不能以身試病
類似X cosidered harmful這種萬能短語模板,其實早就活躍在人類語言中。但直到 2004 年,語言學家 Geoffrey K. Pullum 才正式給它取了個名字——雪克隆(snowclone)。這個名字靈感中還隱藏了一個刨冰筒(snow cone)的雙關諧音梗:冰是一樣的冰,靠不同口味糖漿才分得清,和這些“萬精油句式”可以隨意替換關鍵詞的特性有著異曲同工之妙。
雪克隆一詞來源於一個流傳甚廣的雪克隆本身——如果愛斯基摩人有N個關於雪的單詞,那麼X有Y個關於Z的單詞
在傳統紙媒年代就不罕見的雪克隆,隨著電視、網路等新媒體的發展迅速得到了普及,很多則歷久彌新。來源於五十年前水門事件(Watergate Scandal)的雪克隆XX門,至今連中文媒體都還常常用來報道帶有負面甚至醜聞色彩的新聞。
出處已不可考的粉色是新黑色Pinkis the new black也被Netflix雪克隆成自家劇名《女子監獄》(Orangeis the new black)
透過衛星直播的“沙漠風暴行動”不僅讓世人見識了現代戰爭的威力,更是在西方世界帶火了XX之母(The mother of all X)這個來自阿拉伯語的雪克隆,甚至被美國方言學會選定為1991年的年度熱詞。一切只因“帶火主播”薩達姆在警告多國部隊時誇下的海口:“讓所有人都明白,這場戰鬥將成為所有戰鬥之母”。
多年後美國空軍開發了GBU-43/B大型空爆炸彈MassiveOrdnanceAirBlast bomb還不忘惡趣味地callback一下薩達姆,取了個縮寫相同的綽號炸彈之母MotherOfAllBombs。
而軍備競賽中從不甘落後的戰鬥民族開發出威力更大的空投高功率真空炸彈時,針鋒相對地命名為炸彈之父Father of All Bombs,彷彿在洋洋得意地炫耀:“這是我的反制措施CounterNeutralizationMeasures”
當大眾造梗變成了群眾喜聞樂見的活動之後,科學家們也不甘寂寞。這就不得不提到一條歷史悠久、老少咸宜的雪克隆:生存還是毀滅,這是一個值得考慮的問題(To be or not to be, that is the question),因17世紀莎士比亞作品《哈姆雷特》而聞名,但有研究表明To X or not to X早在這部劇作問世前就出現了,原來濃眉大眼的莎翁也是玩梗高手啊!
某學術期刊目錄導語就曾尤其鍾愛這條雪克隆。比如討論電子到底是不是在硼原子上,那問一下to B or not to B(硼元素符號是B)沒毛病吧?
而當四面體的白磷分子P4能被拆開穩定存在時,總得好奇是不是兩個磷原子Two P or not two P?
後者還隱藏了個諧音梗,磷元素符號P和單詞pee(撒尿)同音,磷元素恰好最早就是從尿液中提取的。但這個問題可沒法思考太久,不然容易憋壞了
雪克隆和梗(meme)以及套話(cliché)密切相關,《洛杉磯時報》記者David Sarno認為雪克隆就是被“梗化”的套話(memeché),把關鍵詞挖掉,人們就像玩填詞遊戲一樣拼出各自的版本,自帶一種“全民創作”的遊戲精神。這就成了預製菜一樣的“預製語言”,如果說“二創”短影片是快餐式二創,那麼雪克隆就是瓜子、零食式二創了,張口就來,歡快地活躍在彈幕、評論區之中。
當然了,經常創作雪克隆的朋友都知道,玩梗容易熱評難。這條雪克隆的原句是經常殺人的朋友都知道,殺人容易拋屍難,最早可能來自《中國刑偵大案》這部紀錄片
電影《我的1919》中陳道明飾演的外交家顧維鈞在巴黎和會上慷慨陳詞中國不能失去山東,就像西方不能失去耶路撒冷,也成了爆款雪克隆,網友們紛紛把自己竭力維護、自認意義重大的事物透過“耶路撒冷”具象化了。
其中耳熟能詳的一定少不了:3D區不能沒有蒂法,就像西方不能失去耶路撒冷!
在調侃“散裝江蘇”和“徽京”熱潮中,“耶路撒冷”雪克隆在形式和意義上又得到了昇華:南京是江蘇的薩拉熱窩,安徽的柯尼斯堡,臺灣的耶路撒冷,板鴨的……
至於本文作者的幾次投稿,多少都是帶些“跨界”屬性,因此每篇評論區中都不乏在油鹽社,你甚至可以看到/研究oo這樣的感嘆,相信這篇文章也不例外吧。
在xx吧,你甚至可以討論oo的風靡,和“帝吧”等熱門貼吧的崛起密不可分