foo,bar?ijk?細數‘奇葩’的變數名

1013497067發表於2016-06-23
相信很多剛開始學程式設計的人一定用過i,j,k這些個簡單的變數,一開始可能還有點疑惑,為什麼直接從i開始而不從a開始呢?這種做法完全不符合人類的基本思維啊。

其實,這就和為什麼電腦是從C盤開始算而非A盤開始算是一樣的原因----一切都是歷史淵源。

臨時變數喜歡起名叫做i, j, k,這都是從Fortran傳來的。語言預設以 I, J, K, L, M, N為第一個字母的變數名是整型,其它字母開頭的變數是實型。所以呢,用個臨時變數,第一想到的就是i, j, k。就這麼簡單,寫個臨時變數誰會想那麼多?至於Fortran為什麼預設I,J,K為第一個字母的變數名為整型,也許是John Backus最愛字母i,也許是John Backus把i看成iterate,並把後面的字母一起作為變數名,未可知。

foo,bar也是如此。


“foo” 一詞最早出現在一些二戰前的漫畫和卡通作品中。在關於消防隊員的漫畫“Smokey Stover”中,作者Bill Holman大量的使用了“foo”一詞。這部漫畫連載於1930至1952年,在其中,“foo”這個詞經常出現在汽車車牌上和一些沒有意義的對話中, 例如:“He who foos last foos best”或 “Many smoke but foo men chew”等。根據作者自己介紹,“foo”是根據某種中國的小雕像底部的文字得來的。這聽起來很有道理,因為中國的雕像往往都會刻上祝福的文字,而 “foo”可能是“福”的音譯。不過英文文法能接納Holman的“foo”這個編造的單詞,也是受了猶太語中“feh”和英文中“fooey”及 “fool”的影響。Holman在漫畫中還描繪一種很有特色的二輪消防車,並取名為Foomobile。因為他的漫畫在上個世紀三十年代極為流行,以至於一度有傳言說印弟安那州已經生產出了這種可以使用的Holman式Foomobile。根據美國漫畫百科全書 (Encyclopedia of American Comics, EAC) 的講法,“Foo”一詞曾在美國掀起一陣狂熱,它被用到了很多流行歌曲中,併產生了超過五百個“Foo俱樂部”。華納公司在1938年製作的動畫片“達菲 鴨”中,也使用了“foo”這個詞。雖然“foo”廣泛的融入了流行文化中,但它的起源卻被人遺忘了。在隨後的二戰中,因為英美士兵經常 用俚語和粗話交流,“foo”一詞就被更廣泛的傳開了。人們把被雷達追蹤到的神秘飛行物稱為“foo戰機”(“foo fighter”),就是後來所謂的UFO。而當英國士兵回防時,往往也會刻下“foo到此一遊”(“Foo was here.”)的字眼。        

而關於“foobar”,也可以追溯到二戰時期軍隊中的粗話縮寫“FUBAR”。“FUBAR”的含義是用到爛再大修(Fucked Up Beyond All Repair),後來演變成了“foobar”。漸漸地,foo和bar成為了甲乙丙丁的代名詞。(如此看來,還是中文強大啊,直接造一個甲乙丙丁)

一切都是有淵源的。而這些淵源可能源於一個不經意的瞬間。

題外話,注重每一件小事,也許它將流傳千古,別搞砸了。

參考資料:[1] 
     [2] http://www.cnblogs.com/lichence/archive/2011/05/27/2059600.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18903360/viewspace-2120782/,如需轉載,請註明出處,否則將追究法律責任。

相關文章