感謝西的投遞
我一直還記得在《軟件開發(fā)如同越獄》這篇文章的第一句話“如果說這世界上還有另外一種東西太多了,那就是對(duì)軟件開發(fā)的類比……”,如果你記性好的話,你應(yīng)該對(duì)“如果編程語言是….”這種模式的標(biāo)題很眼熟,沒錯(cuò),那你是一定看過了《 如果編程語言是一條船…》 這篇文章。今天的這篇文章又是模仿這個(gè)套路,但相似并不是相同,正如桔子和橙子各有味道一樣,主要是過年了,讓大家樂一樂。
我本想在下面每個(gè)評(píng)述的后面都 配一張圖,但由于有些描述很抽象,不知道配什么樣的圖合適,如果有朋友能給出推薦,請(qǐng)把圖片地址寫在評(píng)論里,我會(huì)把合適的圖片補(bǔ)充到下面的文章里,謝謝。
Ada語言是輛坦克。一輛笨重丑陋但絕不會(huì)在路上拋錨的坦克。如果你告訴別人你開的是坦克,人們可能會(huì)笑彎腰,但事實(shí)上,如果上戰(zhàn)場(chǎng),你愿意開一輛跑車在陣地上跑嗎?
匯編語言只是一臺(tái)發(fā)動(dòng)機(jī);你需要自己用它造出這部車,而且在跑起來時(shí)你還需要手工給它供給汽油,但是,如果你能足夠用心,它能跑的像一個(gè)飛向天際的火箭。
Basic是一輛簡(jiǎn)單的車,你可以把它當(dāng)成短距離的交通工具,比如去附近的超市購物。它曾經(jīng)在駕車新手中風(fēng)靡一時(shí),但最近被一個(gè)大制造商給拆解的剩下一個(gè)殼,重新改造成了新的樣式,新款的車能跑更遠(yuǎn)的路,與最初的款型相比只是在外觀上看起來相似罷了。
C語言是一部跑的極快的賽車,但每50公里都要修理一次。
C++是C型賽車的加強(qiáng)版,增添了很多額外的功能,現(xiàn)在只是每250公里才熄火一次,但問題是,一旦熄火了,沒有人知道是什么原因。
Cobol語言號(hào)稱是一輛車,但沒看到過有自尊的人承認(rèn)駕駛過它。
C#是一款很有競(jìng)爭(zhēng)力的商務(wù)旅行車。一旦用上這種車,你就再也沒有機(jī)會(huì)去用其它廠家的同類車。
Eiffel是一款預(yù)先配備了陪駕的轎車,但這個(gè)陪駕有明顯的法國口音。他能幫助你快速的發(fā)現(xiàn)駕駛中犯的錯(cuò)誤,并從中吸取教訓(xùn),但千萬不要和他爭(zhēng)執(zhí),否則他會(huì)對(duì)你動(dòng)粗,把你拋出車外。
Erlang是一個(gè)車隊(duì),它們齊心合力把你送到你想去的地方。你需要經(jīng)驗(yàn)來掌控這么多車下的每個(gè)輪子,但一旦你學(xué)會(huì)了,它能讓你跑在其它方法無法到達(dá)的地形上。除此之外,因?yàn)槟闶窃隈{駛一大群車,所以,即使有一些車途中拋錨熄火了也不要緊。
Forth是一輛你自己用小器械組裝的車。你的車子在外觀上或在開動(dòng)方式上的確沒有必要和別人的車保持一致。然而,F(xiàn)orth是一輛只能倒著跑的車。
Fortran是一輛非常簡(jiǎn)單的車,它能跑的很快,但條件是你必須沿著一條非常直的路開。很多人都相信,一旦學(xué)會(huì)了開Fortran車,你就不可能再學(xué)會(huì)開其它類型的車。
Java是一款商務(wù)旅行車。它很容易駕駛,跑的不是很快,也不會(huì)讓你傷著自己。
Haskell是 款設(shè)計(jì)的非常優(yōu)雅、外觀驚艷的車,傳言她能在地形極其特殊的地方行駛。你第一次試圖駕駛它,它可能不會(huì)沿著路走,事 實(shí)上,它是一步步的復(fù)制自己腳下的路而后在上面復(fù)制自己,這樣復(fù)制路——復(fù)制自己,自己也就前進(jìn)一段。理論上你是可以按常規(guī)的方式來駕駛它前進(jìn)的,只是你 沒有足夠的數(shù)學(xué)知識(shí)來做到這些。
Lisp 看起來像是部車,但如果能搗鼓,有足夠的耐心,你能把它編程一架有相當(dāng)戰(zhàn)斗力的飛機(jī)或潛艇。[來自 Paul Tanimoto:]Lisp: 起初看起來它完全不像一部車,但時(shí)不時(shí)你會(huì)在街上看到有人駕駛這樣的車。于是你決定學(xué)一下如何駕駛它,你發(fā)現(xiàn)它確實(shí)是輛車,而且它能變出很多車。你把這事 告訴你的朋友,但他們都笑你,說這車的樣子也太古怪了。你仍然在車庫里放著這樣一部車,期望有朝一日大街小巷跑的都是這樣的車。
Mathematica是一輛精心設(shè)計(jì)的車,借鑒了很多Lisp車上的思想,但沒有向Lisp表示過基本的感謝。它能通過方程式來判斷走哪條路上捷徑,但這是有成本的。
Matlab是一款為初學(xué)者設(shè)計(jì)的車,它能跑不是很長(zhǎng)的路程,跑在類似Mathematica車能跑到那種地形上。在這種地形上它駕駛起來很舒適,但絕對(duì)不能跑偏,否則你很難控制。正因?yàn)槿绱耍瑒?shì)利小人甚至拒絕承認(rèn)它是一部車。
Ocaml是一部非常性感的歐版車。它沒有C車那樣快,但它從來不出故障,所以,最終還是它用了最短的時(shí)間到達(dá)目的地。然而,因?yàn)樗欠ㄊ降模瑳]有一個(gè)控制桿/按鈕是安放在通常的位置上的。
Perl被認(rèn)為是一款很酷的車,但駕駛手冊(cè)不完備。還有,即使你能知道如何駕駛這輛Perl車,你未必就知道如何駕駛其它的Perl車。
PHP是那種美國Oscar Mayer公司的熱狗車(Wienermobile),它樣子古怪,不好開,但每個(gè)人仍然都想駕駛它。
Prolog是一款配備有獨(dú)特的反復(fù)試驗(yàn)式的GPS系統(tǒng)的車。它能邊跑邊尋找你的目的地,如果在路的盡頭沒有找到目的地,它會(huì)返回來嘗試另外一條路,直到把你送到要去的地方。
Python是一款絕佳的新手來開的車,開它你可以不要駕駛證。除非你想跑的特別快或想跑在未知的險(xiǎn)惡地形上,你基本上不需要其它的車。
Smalltalk是 一部很小的車,最初是為一些想學(xué)開車的人設(shè)計(jì)的,但因?yàn)樗O(shè)計(jì)的很出色,即使有經(jīng)驗(yàn)的駕駛員也喜歡它。它跑的不 是很快,但你可以把它上面的任何一個(gè)部件換下來,改成你想要的。更奇怪的是,你事實(shí)上不是在駕駛它,你向它發(fā)送一個(gè)消息,告訴它去什么地方,它要么照做, 要么告訴你不理解你在說什么。
Ruby車 誕生于Perl車、Python車和Smalltalk車在一個(gè)三岔路口相撞的事故中。一個(gè)日本機(jī)械師發(fā)現(xiàn)了相撞后的碎 片,把它們拼裝成了一部車,很多司機(jī)認(rèn)為這一個(gè)比之前的三個(gè)的總和都好。而另外一些人卻抱怨說,Ruby車?yán)锏暮芏嗫刂撇考际枪δ苤貜?fù)的,而且這些看似 功能相同的部件在某些特殊環(huán)境下又會(huì)稍微有些不同,這使得本該很好用的車變得很難駕駛。傳說重新設(shè)計(jì)的一版正在開發(fā)中。
Visual Basic,這種車不是你開它,而是它開你。