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