我一直还记得在《软件开发如同越狱》这篇文章的第一句话“如果说这世界上还有另外一种东西太多了,那就是对软件开发的类比……”,如果你记性好的话,你应该对“如果编程语言是….”这种模式的标题很眼熟,没错,那你是一定看过了《 如果编程语言是一条船…》 这篇文章。今天的这篇文章又是模仿这个套路,但相似并不是相同,正如桔子和橙子各有味道一样,主要是过年了,让大家乐一乐。
我本想在下面每个评述的后面都配一张图,但由于有些描述很抽象,不知道配什么样的图合适,如果有朋友能给出推荐,请把图片地址写在评论里,我会把合适的图片补充到下面的文章里,谢谢。
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被认为是一款很酷的车