下面的戲說有助於電腦門外漢惡補一點點與軟體有關的東東。
如果說編程語言是一種宗教,你的信仰是?
C是猶太教——很古老而且戒律很多,但大多數人都熟悉並尊重其戒律。問題是很難皈依它,你要麼開始就信仰它,要麼會認為它簡直太瘋狂了。而且,一旦事情出了差錯,人們就會怪罪於它。
Java是正統基督教(基本教義派)——理論上來說它基於C,但它去掉了很多老的戒律,以至於跟原教旨已經大相徑庭。另外,它新加了一套嚴格的教義,追隨者們相信這些比原來的教義更為重要。他們認為這是世界上最好的語言,而且會將所有的異端燒死在刑柱上。
PHP是Cafeteria基督教——與Java在Web開發領域進行競爭。它引入了C和Java的一些概念,但只限於它所喜歡的。也許它不像其它語言那樣條理清楚,但至少給你了更多自由,看起來還算一個整體。而且不會有下地獄(goto hell)這樣的說法。
C++是伊斯蘭教——來源於C,不僅保持了後者的戒律,還變本加厲加入了一套新的複雜戒律。它是如此地多才多藝,可用於構建任何事物,從彌天大罪到美麗的藝術品,追隨者們相信它才是終極語言,並會被持不同意見的人激怒。更可怕的是,如果你冒犯了它或者是它的創始人,你的生命都會受到威脅。
C#是摩門教——乍看之下,它跟Java一樣,不過仔細一看就會發現它被單一組織所控制(很多Java的追隨者將其視為惡魔),而且很多概念都不相同。你在暗忖,它也許不錯吧,呃。。。希望你不會被Java的追隨者們歧視。
Lisp是佛教——沒有語法,沒有核心教義,也沒有讓人膜拜的神。就看你的造化了——需要你有足夠的悟性。有人說它壓根兒就不是一門語言,有的人卻認為它是唯一有意義的語言。
Haskell是道教——與其它語言差別太大,以至於很多人懷疑它到底能做什麼。其追隨者相信它才是通往智慧的正道,只是這些智慧為大多數世俗之人力所不及。
Erlang是印度教——又一種奇怪的語言,看起來沒什麼用處,但不像大多數其它的現代語言,它建立在「同步之神」的基礎上。
Perl是巫毒教——一套神秘的、難以理解的咒語,會讓你的靈魂永久地墮落。老闆在周五晚上九點吩咐你一項緊急任務,這時就得靠它了。(想起獸族部落的巫毒商店,而且它與薩滿教有些類似)
Lua是巫術——一種泛神論的語言,容易與不同文化和地區相融合。它的代碼非常自由,其中的一些技術在傳統語言的用戶看來是不可思議的。它與月亮有緊密的聯繫。
Ruby是新異教主義——不同語言和理念的混合體,可以被看作是一種語言。其支持者群體成長迅速,儘管很多人面帶疑色地看著他們,但基本上他們還是善良的,無意於傷害他人。
Python是人文主義——簡單、自由,它只需要你具備常識。很多追隨者聲稱,Python幫助他們卸下了其它語言帶來的擔子,從而再次找到編程的樂趣。有些人還說它就是一種偽代碼。
COBOL是古異教主義——很久以前,它曾經統治著大片地區,現在卻差不多死掉了。儘管很多人都在其神的儀式中留下了傷疤,直到今天仍然有人追隨著它。
APL是山達基教——儘管有很多人聲稱要追隨它,但你總會懷疑它是一個大大的惡作劇。
LOLCODE是阿里烏斯教——它很神秘,產生於互聯網,儘管有人在努力地開發和散布,但沒人會對它當真。
Visual Basic是撒旦教——可惜你並不是真的需要將靈魂出賣。。。
以上不代表個人觀點。
如果編程語言是汽車,那...
-
Ada 就是一輛坦克。而且是動輒就拋錨、奇醜無比的那一輛。如果你告訴別人你開著這麼一輛東東,他有可能笑岔了氣。就是嗎,你想在戰場上開著一輛跑車亂竄嗎? (Amit Dubey)
-
Assembly Language 就只是一引擎; 你還得自個兒打造自己的汽車。並且在發動的時候還得手工提供汽油,所以一不當心它就會發狂。 (或者可以說:Assembly Language: 您自己就是這兩車.)
-
Basic 就是僅供近距離開到隔壁小店的一輛簡單實用的小汽車。一度頗受初學者歡迎,但最近才被掏空只剩下一殼子,然後由一個主要廠商重建。新型號可以開更遠些,只是外觀跟原來差不多。 [from Przemyslaw Wrzos]
-
C 是一輛賽車,跑得飛快,可就是每50麥拋一次錨。
-
Cobol 曾經被認為是一種汽車,但任何有起碼自尊的人都不會承認曾經開過。
-
C# 是與家座車(family station wagons)相競爭的一種款式。一旦用上,您將不能去用其它產品了。
-
C++ 是 C跑車基礎上的加強型,增添了不少新性能。每250麥拋一次錨。可一旦拋錨,沒人能弄明白是哪裡壞了。
-
Eiffel 是這樣一款車:內置一帶有法國口音的行車指南,他很快幫你確認你出的錯並從中學習。但你別想與之爭論,不然他會辱罵你並將你扔出車去。 [From Daniel Prager with some embellishments]
-
Erlang 就是整個一車隊的車,彼此協調著帶您去你要去的地兒。但是困難在於,您要學習在每輛車中用單腳開車。好消息是,一旦你熟能生巧了,再難的地形都不在話下了。而且,因為您有一個車隊,你就不會太在乎哪一輛中途拋錨。
-
Forth 是你用一套工具自己攢的車。看起來絕不會和其他車雷同,但是卻只能倒著開。 [By "256byteram", on a comment on Digg.com (I couldn't resist):] 要是你自己喜歡就摁喇叭FORTH LOVE IF HONK THEN !
-
Fortran 是一輛頗為原始的車型。只要道路筆直,那你要開多快都行。據信,會開這款車以後,要學開別的車,可能比登天還難。
-
Java 是一款家座車 (family station wagon後車廂和車頂同高)。很容易開,也不容易太快,所以你不會傷著自己。
-
Haskell 是一款美麗的車型,設計優雅。聽說它能賓士在無論如何奇怪的地形之上。起初你試車時,不會開到路上去;相反它把自身以及道路全都做了不斷複製,每次複製后,車在路上都走更遠一些。也許可以用常規方式來駕駛它,只是你數學不是很夠,所以搞不大懂。
- [另一種說法Monadic version:]
Haskell 並不是真車,而只是一具抽象的機器,若想開車,你就憑此詳述駕駛過程。你得將抽象機器容和到真實機器裡面才能真的開車,還要向其詢問如何工作的。也可以用一種方法將眾多的抽象機器融合進一架機器裡面,這樣你就可以交給真實機器,然後就可以一次又一次地去兜風了。
-
Lisp 外觀看上去像一輛汽車,但你可以東搞搞西搞搞,就將它變成高效飛機或者潛艇。 [from Paul Tanimoto:]
-
Lisp: 乍看根本就不像一輛車,可你不時看到別人開著兜風。然後你決定再深究一下,方才認識到,這款車其實還可以「製造」更多的汽車。你對朋友口口相傳,他們卻取笑你,說那些車看上去好怪喲!儘管如此,你還是在車庫內停上一輛,並巴望著某一天他們能夠佔據整條大街。
-
Mathematica 這輛設計完好的汽車,從lisp車型那裡借來好多靈感,但本身卻並不認賬。它可以解決方程式並決定到達終點的最有效率的方法,可是它的價值不菲呀。
-
Matlab 這款車型是專門為新手上路、短途旅行用的,行進路線類似Mathematica車型。在此地形上兜風挺舒適的,但是只要開出此路況一點點,車子就太難把握住了。因此一些有勢利眼的司機竟然就會拒絕承認它是一輛車。
-
Ocaml 是一輛性感十足的歐洲車型。不像C型車那麼快,但是絕對不會拋錨。你因而可以用少量時間跑更遠。然而正因為它是法國造,所以所有的控制器都不在通常的位置。
-
Perl 按理說是一部不錯的車,但是行車指南是雲山霧罩。並且即使你能弄懂如何駕駛Perl車,可你並不能開別人的車子。
-
PHP 是一輛「熱狗」宣傳車 (the Oscar Mayer Wienermobile), 怪異難駕,可是誰還都想開著它跑。 [from "CosmicJustice" off of digg.com]
-
Prolog 這款車可是全自動:告訴它目的地是什麼樣子,它為你自動駕駛。[Addendum from Paul Graham:] 可是與其費寢乏力地告訴它目的地,還不如自己開過去省事。
[另一種說法:]
Prolog 這款車帶有一個獨特的全球定位糾錯系統。可以自動幫你尋找目的地,而且假如路到盡頭,尋的不著,它會回頭一條街一條街地找,直到目的已達。
-
Python 是初學者的汽車。你可以無照駕駛。除非你想在非常危險的地形上開快車,當然那樣一來,你可能永遠就不需要另一輛車了。
-
Ruby 這款車的問世是一次三方撞車的結果:Perl, Python and Smalltalk。 一位日本技師找到車禍現場一些碎片,勉強湊成了一輛萬國牌子的二手車。許多人竟然認為它比原來三輛車的總和或各個單項都要好很多。可是另一些人呢,則抱怨說這輛車的很多控制器都是功能雙重或三重,而且差別不大。這樣比起理想的狀態就更難駕馭。聽說正在重新設計。
-
Smalltalk 這是一輛小車,原先設計思路是為了初學者方便。可其結果是很多有經驗的司機也都很喜歡開它。開得並不快,但你可以將它任何的部分掰開揉碎,再組合成你想把它變成的那副模樣。只有一個怪哉之處,就是你並不實際上駕駛它,你只是給它發個信息叫它到某處。它要麼過去了,要麼回話說,不懂您在說什麼。
-
Visual Basic 這款車它要和你掉個身份: