下面的戏说有助于电脑门外汉恶补一点点与软件有关的东东。
如果说编程语言是一种宗教,你的信仰是?
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 这款车它要和你掉个身份: