如果编程语言是汽车……

标签: 技巧 | 发表时间:2011-06-19 20:51 | 作者:freetstar 康爷
出处:http://wowubuntu.com

原文: If programming languages were cars... http://www.cs.caltech.edu/~mvanier/hacking/rants/cars.html,有筛减

本文是一系列把编程语言和汽车对比的老笑话合集,添加了几种最近流行的语言。欢迎提任何建议给我!
注:似乎 Digg/Reddit/StumbleUpon 对本文进行了挖掘/阅读/踩,结果我收到了一大坨儿的新建议。这正验证了 Vanier 的定律: “任何与编程相关的文章,不管多么愚蠢,最后都会被发到 Digg/Reddit/StumbleUpon 等网站上头。” 感谢所有给我建议的人们。我仔细查看了所有建议,并且把我最喜欢的加到了这个页面上。我也擅自从 digg.com 的评论中选了一些加进来,如果你是评论作者并且不允许我发到这里,我会把你的评论删除。如果我没有评论你精彩的评论,请理解:这并不是说我不喜欢你,也许只是因为我是一个缺乏幽默感的混蛋。同时,有些人在推测我自己编程语言水平。我是一个注重实用的程序员(甚至可以说是一个smug<?>的程序员),我的编程语言大致是这样:Haskell > Ocaml > Scheme/Lisp > Erlang > Python/Ruby > C. 我也喜欢其它语言(比如 Prolog 和 Smalltalk),但是我不怎么用那些语言。我也有很讨厌的语言,不过我不在这里表达厌恶之情,免得陷入无意义的口水仗(口水仗——比如说说有的人会发送内容为“你TMD!”的邮件给我)。
不管你相信不相信,这页面已经被翻译至俄语。感谢 Nick Gorbikoff 做了翻译。这篇文章也被翻译到阿拉伯语,我不知道译者是谁,不过我也感谢他/她。

列表:

  • Ada 是一种异常神勇永远不会损坏的坦克。如果你跟别人说你驾驶 的是Ada 他们会笑疯的,但是,说真的,你愿意在战场上开跑车吗?
  • 汇编语言 仅仅是一台引擎。你需要自己搭建汽车,并且在行驶过程中手动注入燃料,不过如果你足够小心的话,它可以跑得像脱缰野马一般快。
  • Basic 这种汽车用来开到附近的商店去购物还不错.Basic曾经在学习驾驶的人中很流行。但是最近被剥得只剩皮,被一个主要生产者重新设计,新版本可以胜任长途旅行,与旧版本之间只有外表上比较像,但其余部分都已经改变了
  • C 快得难以置信但是每五十分钟坏一次的跑车。
  • Cobol 是个有名气的汽车,但是任何尊重自己的驾驶员都不承认曾经驾驶过。
  • C# 家用旅行车的有力竞争者。一旦你用这种汽车,就不能用它的竞争对手的汽车了。
  • C++ 是C跑车的加强马力版,比C多了几十个额外特性。每250英里损坏一次,问题是损坏的时候谁都找不到问题在哪。
  • Eiffel 一辆法国口音的内部包含驾驶指南的汽车。它会帮你快速找到自己的错误并且吸取教训,不过如果你胆敢和它争执,它会把你扔出车窗口。
  • Erlang 一群能够合作把你送到目的地的汽车。你需要接受训练才能学会同时驾驶这些车。当你学会如何驾驶时就很难再学会其他的驾驶方式。另外,你有好多辆车,所以一两辆坏掉是无所谓的。
  • Forth 一辆你自己用工具拼成的汽车,外观和行为都不像其它任何车。还有,Forth汽车只能倒着跑。
  • Fortran 一种相当原始的汽车。如果你只在非常非常笔直的公路上驾驶,Fortran可以跑得飞快。据信,学习驾驶 Fortran 之后你就没法学开其它汽车了。
  • Java 是一种家用旅行车。它易于驾驶,不过开不很快,你也不会出事故伤到自己。
  • Haskell 是一种设计无比精致的漂亮的汽车。据说可以在任何极端地形上行驶。当你驾驶它的时候,它并不沿着道路行驶,而是把自己和道路都复制若干份,把将来要走的路也复制出来,其实可以以更方便的方式驾驶它,但是需要极高的数学水平。
  • [Monadic版]
  • Haskell 并不是一辆汽车,它只是一个抽象的汽车,你需要把它放进另外一个真实的汽车中,然后才能驾驶。你不必知道真实的汽车是如何行驶的。你可以把若干个抽象汽车合成成一个抽象汽车,然后它就可以让真实汽车一个接一个地做好趟旅途。
  • 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,你喜欢哪辆车呢?或者觉得自己的车有更好更形象的比喻呢?

感谢:Aenon的辛勤翻译和整理                   

 

 

# 本文采用CC协议进行授权,转载本文请注明本文链接。/ 20 条留言
-
Twitter / Buzz / 微博 / 问答 / 投稿 / 加入我们 wow0slx6bcs721xo1udcc
- 高性价比 Ubuntu VPS / 本站架设于 PhotonVPS / 定制 Ubuntu T-Shirt
相关文章:
语言岛:支持 Linux 的智能记单词软件
语言岛智能记单词v0.2.3.370
Cube2: Ubuntu 上类似于 Quake 的免费开源 FPS 游戏
开源卡丁车游戏 SuperTuxKart 0.7 RC1 发布
Ubuntu 11.04 开发代号确定为 Natty Narwhal (敏捷的独角鲸)
无觅

相关 [编程语言 汽车] 推荐:

如果编程语言是汽车……

- 康爷 - Wow! Ubuntu
原文: If programming languages were cars... http://www.cs.caltech.edu/~mvanier/hacking/rants/cars.html,有筛减. 本文是一系列把编程语言和汽车对比的老笑话合集,添加了几种最近流行的语言. 注:似乎 Digg/Reddit/StumbleUpon 对本文进行了挖掘/阅读/踩,结果我收到了一大坨儿的新建议.

[转][转]Clojure 编程语言

- - heiyeluren的blog(黑夜路人的开源世界)
简介: Lisp 是一种编程语言,以表达性和功能强大著称,但人们通常认为它不太适合应用于一般情况. Clojure 是一种运行在 Java™ 平台上的 Lisp 方言,它的出现彻底改变了这一现状. 如今,在任何具备 Java 虚拟机的地方,您都可以利用 Lisp 的强大功能. 在本文中,了解如何开始使用 Clojure,学习它的一些语法,同时利用 Eclipse 的 Clojure 插件提供帮助.

如果编程语言是一条船…

- will - cnBeta.COM
Turing绝对是一个双人皮划艇.

杂谈现代高级编程语言

- 卡飞菲 - Yi Wang&#39;s Tech Notes
几个月之前,Slashdot转载了Robert Harper教授的一篇博客,说卡内基梅隆大学计算机系把”面向对象编程“从大一新生的必修课中删掉了,其原因是. 这两个原因(anti-modular和anti-parallel)都是很重的指责了;尤其是anti-modular,因为OO的基本思想通常被理解成“封装”,从而实现模块化.

你喜欢什么编程语言?

- Sean - 不周山
OpenParty回来,重看了一下自己的讲稿,觉得还是挺乱的,想传递的东西很多,仓促之间也没有把内容组织好,对周六冒着桑拿天赶到现场,还在一间没有空调的挤了一百多号人的房间里听我唠叨了近一个小时的同学们深感有愧. 这里摘要一下,也许能同时弥补一下因为我口音不纯带来的表意不清. 其实主要是两部分的内容,一是我认为R能极大提高算法与数据工作人员的快乐程度及工作效率;二是R的发展历史中呈现出来的六张面孔.

年度编程语言锁定Objective-C

- ndv - 《程序员》杂志官网
虽然2011年才刚过半,但随着iPhone和iPad平台市场领导地位的确立和Apple各系统不断推陈出新,从市场占有的趋势来看,Objective-C成为年度编程语言无疑. TIOBE编程语言排行榜每年初都将统计评出上年度的最佳编程语言大奖,获奖的编程语言被认为在该年度市场份额增长及用户认可度方面获得了最为突出的成绩.

Google将宣布新编程语言Dart

- 李龑 - Solidot
Google的两位工程师将在下个月举行的Goto软件开发会议上宣布一门全新的编程语言Dart. 这门新语言是为结构化的Web编程设计的,适用于开发基于浏览器的Web应用. Google还没有透露Dart的任何技术细节. Google在2009年曾发布了主要针对服务器端的Go语言.

编程语言之间的界限

- - ITeye资讯频道
Cory House是一个软件开发者,笃信清洁代码和务实开发. 最近他总结了不同的编程语言之间存在的界限规则,他还认为不了解编程语言之间存在的界限无异于选择错误的开发工具,要想简化、加快软件开发过程,了解语言之间的异同是必不可少的. 如今开发者有很多种途径去解决编程问题,不管是利用大量的类库还是各种各样的技术工具.

异步编程语言的常见坑

- - idea's blog
天生支持异步编程的语言如 NodeJS, Golang 等, 创建一个异步 routine 的成本非常小, 这确实是一个非常方便的功能. 比如用在网络爬虫程序的开发, 对于每一个要抓取的 URL 就启动一个 routine, 类似启动一个线程, 既能充分利用 CPU 多核, 代码也很简洁.. 正因为太方便, 所以常常被滥用, 并引发许多严重坑.

Peter Norvig:编程语言的选择并不重要

- jeff - python.cn(jobs, news)
Lisp被许多资深程序员视为编程语言中的圣杯,因为学起来很难. 著名程序员、最热门的技术问答网站StackOverflow创始人Joel Spolsky曾经在“Java语言学校的危险性”一文中说,自己当年在大. 学里学习用Lisp的导论课程也是苦不堪言,而Lisp这样的函数式语言实际开发中并不常用,但是一旦到了体现优势的时候,你如果不懂,将失之千里.