如果你的编程语言是汽车……
本文是一系列把编程语言和骑车对比的老笑话合集,添加了几种最近流行的语言。欢迎提任何建议给我!
注:似乎 Digg/Reddit/StumbleUpon 对本文进行了挖掘/阅读/踩,结果我收到了一大坨儿的新建议。这正验证了 Vanier 的定律: “任何与编程相关的文章,不管多么愚蠢,最后都会被发到 Digg/Reddit/StumbleUpon 等网站上头。” 感谢所有给我建议的人们。我仔细查看了所有建议,并且把我最喜欢的加到了这个页面上。我也擅自从 digg.com 的评论中选了一些加进来,如果你是评论作者并且不允许我发到这里,我会把你的评论删除。如果我没有评论你精彩的评论,请理解:这并不是说我不喜欢你,也许 只是因为我是一个缺乏幽默感的混蛋。同时,有些人在推测我自己编程语言水平。我是一个注重实用的程序员(甚至可以说是一个smug<?>的程 序员),我的编程语言大致是这样:Haskell > Ocaml > Scheme/Lisp > Erlang > Python/Ruby > C. 我也喜欢其它语言(比如 Prolog 和 Smalltalk),但是我不怎么用那些语言。我也有很讨厌的语言,不过我不在这里表达厌恶之情,免得陷入无意义的口水仗(口水仗——比如说说有的人会 发送内容为“你TMD!”的邮件给我)。
不管你相信不相信,这页面已经被翻译至俄语。感谢 Nick Gorbikoff 做了翻译。这篇文章也被翻译到阿拉伯语,我不知道译者是谁,不过我也感谢他/她。
列表:
[[33574]]
Ada 是一种异常神勇永远不会损坏的坦克。如果你跟别人说你驾驶的是Ada 他们会笑疯的,但是,说真的,你愿意在战场上开跑车吗?
汇编语言 仅仅是一台引擎。你需要自己搭建汽车,并且在行驶过程中手动注入燃料,不过如果你足够小心的话,它可以跑得像脱缰野马一般快。
Basic 这种汽车用来开到附近的商店去购物还不错.Basic曾经在学习驾驶的人中很流行。但是最近被剥得只剩皮,被一个主要生产者重新设计,新版本可以胜任长途旅行,与旧版本之间只有外表上比较像,但其余部分都已经改变了
C 快得难以置信但是每五十分钟坏一次的跑车。
Cobol 是个有名气的汽车,但是任何尊重自己的驾驶员都不承认曾经驾驶过。
C# 家用旅行车的有力竞争者。一旦你用这种汽车,就不能用它的竞争对手的汽车了。
C++ 是C跑车的加强马力版,比C多了几十个额外特性。每250英里损坏一次,问题是损坏的时候谁都找不到问题在哪。
#p#
Eiffel 一辆法国口音的内部包含驾驶指南的汽车。它会帮你快速找到自己的错误并且吸取教训,不过如果你胆敢和它争执,它会把你扔出车窗口。Eiffel语言是继Smalltalk-80之后的另一个“纯”OOPL。这种语言是由OOP领域中著名的专家Bertrand Meyer等人20世纪80年代后期在ISE公司(Interactive Software Engineering Inc.)开发的,它的主要特点是全面的静态类型化、有大量的开发工具、支持多继承。
Erlang 一群能够合作把你送到目的地的汽车。你需要接受训练才能学会同时驾驶这些车。当你学会如何驾驶时就很难再学会其他的驾驶方式。另外,你有好多辆车,所以一两辆坏掉是无所谓的。
Forth 一辆你自己用工具拼成的汽车,外观和行为都不像其它任何车。还有,Forth汽车只能倒着跑。
Fortran 一种相当原始的汽车。如果你只在非常非常笔直的公路上驾驶,Fortran可以跑得飞快。据信,学习驾驶 Fortran 之后你就没法学开其它汽车了。
Java 是一种家用旅行车。它易于驾驶,不过开不很快,你也不会出事故伤到自己。
#p#
Haskell 是一种设计无比精致的漂亮的汽车。据说可以在任何极端地形上行驶。当你驾驶它的时候,它并不沿着道路行驶,而是把自己和道路都复制若干份,把将来要走的路也复制出来,其实可以以更方便的方式驾驶它,但是需要极高的数学水平。
[Monadic版]
[[33586]]
Haskell 并不是一辆汽车,它只是一个抽象的汽车,你需要把它放进另外一个真实的汽车中,然后才能驾驶。你不必知道真实的汽车是如何行驶的。你可以把若干个抽象汽车合成成一个抽象汽车,然后它就可以让真实汽车一个接一个地做好趟旅途。
[[33587]]
Lisp 看起来像一辆汽车,通过足够的改装你可以把它变成成一个相当高效的飞行器或者潜水艇。
[Paul Tanimoto版]
Lisp 一开始看起来根本不像汽车,不过你总是能见到几个驾驶它的人。当你决定了解它的时候,你会发现它其实是一辆可以制造更多汽车的汽车。你把它告诉你的朋友,不过他们都嘲笑你,说这些车看起来太奇怪了。你仍然在你的车库里存着一辆,希望某一天这些车可以占据所有街道。
Mathematica 一种设计良好的汽车,参考了 Lisp 的设计,却对Lisp连句谢谢都没说。它可以帮你找到到达目的地的最快路径,不过还要看你的运气如何了
Matlab 一般和 Mathematica 在相似的地形上行驶。在这种地形上驾驶 Matlab 是很舒服的,但是如果你驶离车道,哪怕只有一点点,这辆汽车就变得非常难开,这时一些势利的驾驶员甚至不把它当作一辆车。
Ocaml 一种非常性感的欧洲车。它并没有 C 那样快,但是从来不会半路抛锚,所以你最终花的时间或许更短。然而,正因为它来自法国,驾驶方法和一般汽车不一样。
Perl 是一辆漂亮的汽车,只是驾驶手册太难懂了。另外,及时你已经知道如何驾驶 Perl,你也不一定会开别人家的 Perl。
PHP 是Oscar Mayer Wienermobile。尽管它是一种奇怪、难以驾驶的汽车,但是每个人都想驾驶它。
Prolog 全自动汽车:你只要告诉它你的目的地长什么样,它会自动驾驶过去。然而,描述大部分目的地的精力耗费都与亲自开过去相当。
Python 是一种非常适合初学者驾驶的好车。你可以不要驾驶证就开它上路。一般来说你不需要其它车,除非你想要开得飞快或者经过非常危险的地带。
Ruby 是 Perl、Python 和 Smalltalk 3者的合体。一位日本工程师从碎片中拼成了 Ruby,并且很多车手认为它比另外三种语言都好。其它车手抱怨说 Ruby 的操作不稳定,有些完全一样的操作在不同环境中表现有些不一样,所以这种车不那么容易驾驶。据说 Ruby 的重新设计正在进行中。
Smalltalk 一种最初为学习驾驶的人设计的小型汽车,不过设计得非常好,所以有经验的驾驶员也喜欢开。它没法跑很快,但是你可以把它的任何一个区域取下来,换成其它部 件,以适合自己的需求。它有一点奇怪之处:你不需要手动驾驶它。你告诉它你想去哪,它要么带你去,要么告诉你它不知道你在说什么。
Visual Basic 一辆驾驶你的汽车。
各位Linuxer,你喜欢哪辆车呢?或者觉得自己的车有更好更形象的比喻呢?
原文链接:http://www.oschina.net/news/18982/if-programming-language-is-car
【编辑推荐】
- 编程语言排行榜
- 你的编程语言做不到的事情
- 草根语言PHP的进化史
- IT公司中最流行的10种编程语言
- 想成为更好的程序员吗?学习Prolog语言吧