如果你的編程語言是汽車……
本文是一系列把編程語言和騎車對比的老笑話合集,添加了幾種最近流行的語言。歡迎提任何建議給我!
注:似乎 Digg/Reddit/StumbleUpon 對本文進行了挖掘/閱讀/踩,結果我收到了一大坨兒的新建議。這正驗證了 Vanier 的定律: “任何與編程相關的文章,不管多么愚蠢,最后都會被發(fā)到 Digg/Reddit/StumbleUpon 等網(wǎng)站上頭?!?感謝所有給我建議的人們。我仔細查看了所有建議,并且把我最喜歡的加到了這個頁面上。我也擅自從 digg.com 的評論中選了一些加進來,如果你是評論作者并且不允許我發(fā)到這里,我會把你的評論刪除。如果我沒有評論你精彩的評論,請理解:這并不是說我不喜歡你,也許 只是因為我是一個缺乏幽默感的混蛋。同時,有些人在推測我自己編程語言水平。我是一個注重實用的程序員(甚至可以說是一個smug<?>的程 序員),我的編程語言大致是這樣:Haskell > Ocaml > Scheme/Lisp > Erlang > Python/Ruby > C. 我也喜歡其它語言(比如 Prolog 和 Smalltalk),但是我不怎么用那些語言。我也有很討厭的語言,不過我不在這里表達厭惡之情,免得陷入無意義的口水仗(口水仗——比如說說有的人會 發(fā)送內容為“你TMD!”的郵件給我)。
不管你相信不相信,這頁面已經(jīng)被翻譯至俄語。感謝 Nick Gorbikoff 做了翻譯。這篇文章也被翻譯到阿拉伯語,我不知道譯者是誰,不過我也感謝他/她。
列表:
Ada 是一種異常神勇永遠不會損壞的坦克。如果你跟別人說你駕駛的是Ada 他們會笑瘋的,但是,說真的,你愿意在戰(zhàn)場上開跑車嗎?
匯編語言 僅僅是一臺引擎。你需要自己搭建汽車,并且在行駛過程中手動注入燃料,不過如果你足夠小心的話,它可以跑得像脫韁野馬一般快。
Basic 這種汽車用來開到附近的商店去購物還不錯.Basic曾經(jīng)在學習駕駛的人中很流行。但是最近被剝得只剩皮,被一個主要生產者重新設計,新版本可以勝任長途旅行,與舊版本之間只有外表上比較像,但其余部分都已經(jīng)改變了
C 快得難以置信但是每五十分鐘壞一次的跑車。
Cobol 是個有名氣的汽車,但是任何尊重自己的駕駛員都不承認曾經(jīng)駕駛過。
C# 家用旅行車的有力競爭者。一旦你用這種汽車,就不能用它的競爭對手的汽車了。
C++ 是C跑車的加強馬力版,比C多了幾十個額外特性。每250英里損壞一次,問題是損壞的時候誰都找不到問題在哪。
#p#
Eiffel 一輛法國口音的內部包含駕駛指南的汽車。它會幫你快速找到自己的錯誤并且吸取教訓,不過如果你膽敢和它爭執(zhí),它會把你扔出車窗口。Eiffel語言是繼Smalltalk-80之后的另一個“純”O(jiān)OPL。這種語言是由OOP領域中著名的專家Bertrand Meyer等人20世紀80年代后期在ISE公司(Interactive Software Engineering Inc.)開發(fā)的,它的主要特點是全面的靜態(tài)類型化、有大量的開發(fā)工具、支持多繼承。
Erlang 一群能夠合作把你送到目的地的汽車。你需要接受訓練才能學會同時駕駛這些車。當你學會如何駕駛時就很難再學會其他的駕駛方式。另外,你有好多輛車,所以一兩輛壞掉是無所謂的。
Forth 一輛你自己用工具拼成的汽車,外觀和行為都不像其它任何車。還有,F(xiàn)orth汽車只能倒著跑。
Fortran 一種相當原始的汽車。如果你只在非常非常筆直的公路上駕駛,F(xiàn)ortran可以跑得飛快。據(jù)信,學習駕駛 Fortran 之后你就沒法學開其它汽車了。
Java 是一種家用旅行車。它易于駕駛,不過開不很快,你也不會出事故傷到自己。
#p#
Haskell 是一種設計無比精致的漂亮的汽車。據(jù)說可以在任何極端地形上行駛。當你駕駛它的時候,它并不沿著道路行駛,而是把自己和道路都復制若干份,把將來要走的路也復制出來,其實可以以更方便的方式駕駛它,但是需要極高的數(shù)學水平。
[Monadic版]
Haskell 并不是一輛汽車,它只是一個抽象的汽車,你需要把它放進另外一個真實的汽車中,然后才能駕駛。你不必知道真實的汽車是如何行駛的。你可以把若干個抽象汽車合成成一個抽象汽車,然后它就可以讓真實汽車一個接一個地做好趟旅途。
Lisp 看起來像一輛汽車,通過足夠的改裝你可以把它變成成一個相當高效的飛行器或者潛水艇。
[Paul Tanimoto版]
Lisp 一開始看起來根本不像汽車,不過你總是能見到幾個駕駛它的人。當你決定了解它的時候,你會發(fā)現(xiàn)它其實是一輛可以制造更多汽車的汽車。你把它告訴你的朋友,不過他們都嘲笑你,說這些車看起來太奇怪了。你仍然在你的車庫里存著一輛,希望某一天這些車可以占據(jù)所有街道。
Mathematica 一種設計良好的汽車,參考了 Lisp 的設計,卻對Lisp連句謝謝都沒說。它可以幫你找到到達目的地的最快路徑,不過還要看你的運氣如何了
Matlab 一般和 Mathematica 在相似的地形上行駛。在這種地形上駕駛 Matlab 是很舒服的,但是如果你駛離車道,哪怕只有一點點,這輛汽車就變得非常難開,這時一些勢利的駕駛員甚至不把它當作一輛車。
Ocaml 一種非常性感的歐洲車。它并沒有 C 那樣快,但是從來不會半路拋錨,所以你最終花的時間或許更短。然而,正因為它來自法國,駕駛方法和一般汽車不一樣。
Perl 是一輛漂亮的汽車,只是駕駛手冊太難懂了。另外,及時你已經(jīng)知道如何駕駛 Perl,你也不一定會開別人家的 Perl。
PHP 是Oscar Mayer Wienermobile。盡管它是一種奇怪、難以駕駛的汽車,但是每個人都想駕駛它。
Prolog 全自動汽車:你只要告訴它你的目的地長什么樣,它會自動駕駛過去。然而,描述大部分目的地的精力耗費都與親自開過去相當。
Python 是一種非常適合初學者駕駛的好車。你可以不要駕駛證就開它上路。一般來說你不需要其它車,除非你想要開得飛快或者經(jīng)過非常危險的地帶。
Ruby 是 Perl、Python 和 Smalltalk 3者的合體。一位日本工程師從碎片中拼成了 Ruby,并且很多車手認為它比另外三種語言都好。其它車手抱怨說 Ruby 的操作不穩(wěn)定,有些完全一樣的操作在不同環(huán)境中表現(xiàn)有些不一樣,所以這種車不那么容易駕駛。據(jù)說 Ruby 的重新設計正在進行中。
Smalltalk 一種最初為學習駕駛的人設計的小型汽車,不過設計得非常好,所以有經(jīng)驗的駕駛員也喜歡開。它沒法跑很快,但是你可以把它的任何一個區(qū)域取下來,換成其它部 件,以適合自己的需求。它有一點奇怪之處:你不需要手動駕駛它。你告訴它你想去哪,它要么帶你去,要么告訴你它不知道你在說什么。
Visual Basic 一輛駕駛你的汽車。
各位Linuxer,你喜歡哪輛車呢?或者覺得自己的車有更好更形象的比喻呢?
原文鏈接:http://www.oschina.net/news/18982/if-programming-language-is-car
【編輯推薦】