感谢西的投递
我一直还记得在《软件开发如同越狱》这篇文章的第一句话“如果说这世界上还有另外一种东西太多了,那就是对软件开发的类比……”,如果你记性好的话,你应该对“如果编程语言是….”这种模式的标题很眼熟,没错,那你是一定看过了《 如果编程语言是一条船…》 这篇文章。今天的这篇文章又是模仿这个套路,但相似并不是相同,正如桔子和橙子各有味道一样,主要是过年了,让大家乐一乐。

我本想在下面每个评述的后面都 配一张图,但由于有些描述很抽象,不知道配什么样的图合适,如果有朋友能给出推荐,请把图片地址写在评论里,我会把合适的图片补充到下面的文章里,谢谢。

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,这种车不是你开它,而是它开你。