編程中的foo

不管是java,C++,還是PHP,每次都能看到 foo = bar 的例子,這兩個單詞很噁心,foo查不到字典,bar的解釋又讓人跟編程聯繫不上,更弄不清楚這個神祕的foo是個什麼關係。

語意不清,學起來心裏老是有疙疙瘩瘩的感覺,於是查吧,終於揭開了這兩個東西的不正常關係,講個各個處在鬧心中的初學者們聽吧。

參考了衆多的網絡資料,最後,明確的告訴大家,foo和bar就是外國人的張三、李四、王二麻子,只是一種隨便的命名方式。跟c語言裏面的i,j,k同出一轍。

就是說foo = bar 跟 變量張三 = 李四的侄子 一個意圖,所以童鞋們就不要再找foo到底是個啥了。

問foo是啥就跟問張三是誰一樣,我想外國人一定也很想知道,張三到底是誰,這個人怎麼這麼有名,總能看到這個名字,但是歷史上記載卻又找不到他。

爲了這個可惡的foo,居然還動用RFC給foo下了一個明確的詞源追蹤,無聊的童鞋可以看RFC3092解解悶。

中文RFC3092地址http://www.computersci.net/articles/rfc/RFC3092.txt

----------------------------------------------------------------------------------------------

下面是網上搜刮來的各種解釋:

Foo:本意指程序員用來代表數據、功能或命令的變量。O'Reilly媒體認爲FOO是Friends of O'Reilly的縮寫,並把他們在2003年舉辦的年會命名爲“2003 FOO”。現在則更多地指聲勢浩大的某行業大會。

foo = fuck oriented object

foo是"你要讓它是什麼就是什麼"。FOO可以具有用戶賦於的任何意義。

foo-------------潦草的意思!表示很隨便的定義!

foo沒有意義

foo的意思是:Factory Of Objects

foo:一塌糊塗 或者 bar:一團糟

foo

不同的字典對其解釋相去甚遠,一說來自中國“福”字的發音,又有解釋爲二戰時期的一種武器。然而若把衆多的解釋放在編程領域,關於 foobar的說法是我認爲最爲貼切的解釋。foobar又爲foo-bar,其中bar是beyond all recognition的縮寫,通俗點就是無法識別,一塌糊塗的意思。而foo是fu的變體,fu是英語習語fuck-up的縮寫,同樣是一團糟的意思。 於是,若你有些編程經驗,我想你應該已經明白了爲何如今許多編程實例所涉及的事物均被冠名爲foo.

1. 介紹

至今約有212 個RFC, 或者約7%的RFC, 從[RFC269]開始,包括了術語'foo','bar' 或'foobar'作爲僞變量而沒有任何適當的解釋或定義。這可能被認爲是微不足道的,但一些新來者,特別是那些非英語國家的人,在理解這些術語時會遇到 困難。本文糾正這一問題。

2. 定義和語源

bar /bar/ n. [JARGON]

1. 第二個僞變量,在foo 之後而在baz 之前。

"Suppose we have two functions: FOO and BAR. FOO calls BAR...."

2. 經常加在foo 後面構成foobar。

foo /foo/

1. interj. 令人反感的術語。

2. 用於任何東西的一般的名稱,特別是程序和文件(特別是草稿文件)。

3. 用於語法例釋的標準僞變量表中的第一個(bar, baz, qux, quux, corge,grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGON]

當連接'bar' 時通常可以追溯到二戰時軍中的俚語FUBAR (`[censored] Up Beyond All Repair'),最後演變成了foobar。早期版本的Jargon File [JARGON]稱這一變化是戰後的修正,但現在看來更像是FUBAR 本身是'foo'的衍生詞。可能是受到了德語'furchtbar'(可怕的) 的影響 -- 也許最初形式是'foobar'。

似乎'foo' 這個詞在戰前的漫畫和卡通中可以找到歷史。在1938年華納兄弟卡通公司Robert Clampett 指導的"The Daffy Doc",Daffy Duck 的早期版本,有一句口號"SILENCE IS FOO!"。'FOO'和'BAR' 也在Walt Kelly的連環漫畫"Pogo"中出現。最早有文獻記載的使用是在Bill Holman 的一個消防隊員的超現實主義連環漫畫"Smokey Stover" 中。在1930到1952年間該連環漫畫出現在許多美國漫畫中,包括"Everybody's"。它經常在汽車的車牌中包含單詞"FOO", 在背景畫面中無意義的話中,如"He who foos last foos best"或"Many smoke but foo men chew",Smokey 說"Where there's foo, there's fire"。Bill Holman,該漫畫的作者,在其中充滿了奇妙的笑話和個人發明,包括其它無意義的短語如"Notary Sojac"和"1506 nix nix"。依照華納兄弟卡通公司[WBCC]的說法,Holman 是在一箇中國小雕像的底部發現"foo" 這個詞的。這是個似是而非的說法;中國的小雕像經常有避邪用的題字,這可能是中文'fu'(有時候音譯爲'foo'),當發音正確時意爲“幸福”(立在許 多中餐館側面的獅子--狗型 守護神正確的稱呼是"fu dogs")[PERS]。說英語的人認爲Holman的'foo' 這個無意義的詞毫無疑問的受到Yiddish 語的'feh' 和英語的'fooey' 以及'fool'的影響。[JARGON, FOLDOC]

Holman的漫畫描寫了一臺兩輪消防車名叫Foomobile。 該系列漫畫在1930 年代後流行極了,傳說Indiana 的一個製造商甚至造出了一臺可操作的 Foomobile。 按照美國漫畫百科全書[EAC] 的說法,'Foo' 熱橫掃美國,在流行歌曲和超過500個‘Foo 俱樂部‘ 中可以找到證據。作爲流行的遺蹟 'foo' 嵌入了流行文化(包括華納兄弟卡通公司1938-39的the couple of appearances)但它的起源被迅速遺忘了。[JARGON]

二戰後該術語在美國軍隊仍存留下來。在1944-45 年,術語'foo fighters'[FF] 被雷達操作員用來描述一種神祕的或僞造的軌跡。那後來被稱爲UFO( 在1995年通過一個叫Better grunge-rock bands[BFF] 的詞老的術語又重新露面)。據信它和漫畫Smokey Stover 有關[PERS]。

戰爭中美國和英國軍隊經常交換俚語。Period sources報告說二戰中'FOO' 變成了半傳奇式的主題,英國軍隊的塗鴉或多或少等於美國的Kilroy [WORDS]。 英國軍隊走到哪裏,都會塗上"FOO was here"或者類似的話。幾本俚語字典斷言FOO 來自前線巡查官,但這(像同時代的"FUBAR")也許 是backronym[JARGON]。 40年後,Paul Dickson的優秀著作"Words"[WORDS]追蹤"Foo"到了一個不明的英國海軍雜誌,引用如下:

"Mr. Foo is a mysterious Second World War product, gifted with bitter omniscience and sarcasm."

更早版本的Jargon File 暗示其用法的可能來自"FOO, Lampoons and Parody",1958 年發行的一本漫畫的標題,Charles 和Robert Crumb合作的一個項目。

儘管Robert Crumb(在他後來十幾年)後來成了最重要最有影響力的地下 漫畫作家,這次成功相當艱難;實際上,因爲厭惡,兄弟倆後來燒掉了大部分的拷貝。標題FOO 用大號字印在封面上。然而,非常少的拷貝確實流

傳了下來,Crumb ‘全集’的學生確定它參考的是較早的Smokey Stover 漫 畫。Crumb的作品可能也受到1951-52年出版的的短命加拿大滑稽雜誌"Foo"的影響[JARGON]。

一個old-time成員報告說在1959年TMRC(MIT 的技術模型鐵路俱樂部)編譯的“TMRC語言字典” 中有Foo 的詞條。當前在線版本中的"Foo" 是唯一標記爲紅色的詞,有如下內容[TMRC]:

Foo: The sacred syllable (FOO MANI PADME HUM); to be spoken only when under obligation to commune with the Deity. Our first obligation is to keep the Foo Counters turning.

這個定義用了Bill Holman 的無意義的詞,流行之後20年且確實存在流行文化和俚語中,使一個"ha ha only serious"象西藏佛教一樣深奧。今天的人會發現很難抵擋這樣精心製作的笑話,而不象1959年代的人那樣不易受感染。[JARGON]

4. [EF]王子Foo 是Pheebor 最後的統治者,和Phee Helm 的所有者,在rgign of Entharion之前約400 年。當Foo 被來自Borphee 的叫作"eastern fop" 的什麼人砍頭時,Pheebor 的顯赫時代結束了,而Borphee越升到它現在的位置。

5. [OED] 一個13-16 世紀用法,指惡魔或任何敵人。最早的引用是在1366 年,Chaucer A B C (84): "Lat not our alder foo [devil] make hisbobance [boast]"。Chaucer的"Foo"可能是現代英語的"foe"

6. 稀有種類的狗

波美拉尼亞絲毛狗被認爲滅

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章