《计算机语言妙语录 软件就像性一样》的解读

来源:互联网 发布:mac触碰板 编辑:程序博客网 时间:2024/05/10 16:41

 

 

 

应当知道,任何一位受过职业道德训练的软件工程师都不会同意写一个摧毁巴格达 DestroyBaghdad”这样的函数。相反,基本的职业道德要求他写一个摧毁城市 DestroyCity”的函数,巴格达 Baghdad”是一个参数。(Nathaniel S Borenstein)

     解读:这段话应该没有什么歧义,使用参数化的函数灵活性更高,更便于重用。NathanielS Borenstein此人不太熟悉,网上查了一下,是IBM的一位杰出工程师,之前创办过两家公司,博士毕业于卡内基梅隆大学计算机系,和李开复是校友。

 

只有两种计算机语言:一些语言天天挨骂,另外一些没有人用。(Bjarne Stroustrup)

解读:看到此言出于C++之父,不禁莞尔一笑。这里说的天天挨骂的语言显然是暗指C++,但C++天天挨骂却用的人很多。BS在此表达一种对C++语言设计上的批评的不满,只有没人用的语言才不会挨骂。

 

数组下标应该从0开始还是从1开始?我的提议是做个折中,用0.5。我想,把它否决之前他们都没有仔细考虑考虑。(StanKelly-Bootle)

解读:显然是对这个不统一的小问题的嘲讽。


黑魔法编程:程序员们知道有些事情没有用,但是无论如何他们还是会去试一试,有时候这些事情还真管用了,比如说把所有东西重新编译一遍。(Karl Lehenbauer)

解读:是自嘲,还是对不能跨平台的编译型语言(比如c/c++的讽刺?


计算机语言就好像在公园里漫步一样,我指的是侏罗纪公园。(Larry Wall)
解读: (Larry Wall)

解读Larry WallPerl之父,他的意思似乎是说写程序应该是件非常小心翼翼的事。因为你不知道写的时候会不会冒出来一只恐龙来,就像是侏罗纪公园中一样。这只恐龙也许是内存非法访问,也许是资源丢失。


即使在餐巾上涂画也算是计算机语言,XML都不能算是其中之一。(CharlesSimonyi)
  
解读:此语出自微软ExelWord之父,同时他也是匈牙利命名法的发明者,因为他是匈牙利人。我基本同意他的观点,XML算不上是语言,它只是一种通用的数据交换格式。我不知道这代表的是查尔斯 西蒙尼个人的观点还是微软公司的,不过这么表述很是有个性,也是给那些吹捧XML的人一盆冷水。其实XML并不是必须的,现在不是也有JSON吗?

 

使用TSO就想把死鲸鱼在沙滩上踢来踢去一样。(StephenC Johnson)

面向对象的模型使得我们可以用聚少成多的方法来写程序。这通常是说,它提供了一种用结构化的方法写出烂面条般程序的方法。
  
解读面向对象的思想一直颇有争议,面向对象如果用不好,程序就会像烂面条,又臭又长。


重用别人写的程序就像从别人的故事里面挑出句子然后凑成一篇杂志上的文章。 (Bob Frankston)

解读确实,重用很多时候不过是给抄袭这种不光彩的行为起了个光彩的名字罢了。


HTML里面的BLINK 标签)是一个玩笑,好不好?要是我们知道还有人使用它,我们就不会写它了。(Mark Andreessen)

软件就像性一样。不要钱的时候更好。(Linus Torvalds)

解读:作为Linux之父,这个比喻很形象有趣。

 

我有一个可以运行的编译器,没人愿意碰它。他们告诉我电脑只能做算术。--Rear Admiral Grace Hopper
解读外行人总是这样,他们还认为程序员一定能修电脑

 

如果你思虑不周,你可能会认为编程仅仅是敲入一行行的程序语句而已 -- Ward Cunningham
解读所以,国内许多程序员自称“IT民工”,我们垒的砖头就是一行行的程序语句。但是,事实并非如此。


一种未包含所有东西的语言实际上比那些包含了的更容易使用。 -- Dennis M Ritchie

解读:对照前面C++之父的话,不禁笑出声了。C语言之父这么说,好像就是针对C++说的似的。当然,C语言和C++的设计走的不是完全不同的路线,一个小而精,一个大而全。

 

提倡自然语言编程的那些工作必然彻底失败。 -- Edsger Dijkstra

指针就像跳转一样,疯狂的从数据结构之间到处指来指去。在高级语言里面引入指针是个退步。我们可能永远无法从这一失败之中恢复过来。-- Charles Hoare

首先学习计算机科学和那些理论,然后摸索出你自己的编程风格,然后把那些都忘掉,乱来就行了。 -- George Carrette

我担心新的面向对象系统会遭到LISP相似的命运。他们可以做很多事情,但是过于复杂的类的阶层的重量会把他们压塌。 -- Bill Joy

如果我们要数代码的行数,我们不该把他们当成生产出来的行数,而是花费掉的行数。--Edsger Dijkstra
解读Dijkstra不愧是算法大师,这句话体现了他对编程的深刻理解,也是我个人认为的这些妙语中最经典的一句。

 

你可以拥有高质量的软件,也可以拥有指针运算,但两者不可兼得。-- Bertrand Meyer

语法,小伙子。它已经被重新授予共和国里最高的地位。 -- John Steinbeck
解读:似乎是对那些关于不同语言(语法的集合)的争论的反思和嘲讽。除了语法,还有函数(类)库,还有架构设计,这些恐怕比语法更重要。

 

你真的确定无误的认为,那些铃铛和汽笛,所谓的编程语言里那些美妙的特性,是解决方案的一部分而不是问题的一部分? -- Edsger Dijkstra
解读Dijkstra像个冷静的智者,他总是从反面看问题。是啊,语言中的那些美妙的特性,是将问题简化了,还是复杂化了?

 

汝切不可跟随NULL指针前行,因混沌狂乱待汝于彼端。(注:此处模仿圣经十诫语气)--Henry Spencer
解读:呵呵 ,圣经的语气。

 

我觉得传统语言是给鸟类使用的。他们仅仅是冯诺依曼计算机的延伸,他们把鼻子埋藏在字和地址的泥土之中,还做了很多同样傻的事。我们从编程之中学到了这些傻 事,又把他们放进了计算机语言,放进了Fortran,放进了PL/1,放进了几乎所有语言之中。--John Backus

在人类的阶层之中,写代码处在高于盗墓,但是低于管理的某处。(Gerald Weinberg)
解读程序员们,不要自视过高!


如果程序员模拟一个结构比编译器实现这个结构还快,那这个编译器写的可够烂的。 (Guy Steele)

阶级(class)斗争,一些阶级胜利了,一些阶级消灭了。(MaoZedong)

解读:将毛泽东的阶级斗争理论中的阶级(class)换成类,就成了对面向对象程序设计的讽刺。一般来说,面向对象中的类比面向过程中的函数寿命更短,因为随着时间的流逝,你总能发现类设计上的错误。

 

,可以分为三种:一种不工作的,一种出错的,还有一种找不到了的。(Russell Baker)
解读:和上一句一样,也是对面向对象设计的反思。


内存就像高潮,真的比虚拟的好得多。(SeymourCray)

解读当然,呵呵