面向对象编程从骨子里就有问题——看看名人大家是如何吐槽面向对象的

“面向对象编程是一个极其糟糕的主意,只有硅谷里的人能干出这种事情。” — Edsger Dijkstra(图灵奖获得者)

“面向对象设计是用罗马数字做计算。” Rob Pike(Go语言之父)

““面向对象”这个词包含很多意思。有一半是显而易见的,而另一半是错误的。“ — Paul Graham(美国互联网界如日中天的教父级人物)


实现上的继承就跟过度使用goto语句一样,使程序拧巴和脆弱。结果就是,面向对象系统通常遭受复杂和缺乏复用的痛苦。” — John Ousterhout( Tcl and Tk 的创始人) Scripting, IEEE Computer, March 1998

“90%的这些胡说八道都称现在它很流行,非要往我的代码里搓揉进面向对象的石粒。” — kfx


有时,优雅的实现只需要一个函数。不是一个方法。不是一个类,不是一个框架。只是一个方法。” — John Carmack(id Software的创始人、第一人称射击游戏之父)

“面向对象编程语言的问题在于,它总是附带着所有它需要的隐含环境。你想要一个香蕉,但得到的却是一个大猩猩拿着香蕉,而其还有整个丛林。” — Joe Armstrong(Erlang语言发明人)

“我一度曾经迷恋上了面向对象编程。现在我发现自己更倾向于认为面向对象是一个阴谋,企图毁掉我们的编程乐趣。” — Eric Allman(sendmail的创造者)

面向对象是90年代“结构化编程”的万金油,风靡一时,但很难说它就是那些用它开发出来的东西的“终极”编程模式。

并且,至少它的这种最流行的形式可能我带来极大的危害,极度的增加复杂性。

继承带来的危害远超过好处。这“代码复用”的令人质疑的幌子下,我们的环境中被愚蠢的增添了大量的毫无用处的复杂性,使得必须引入大量的语法上的简写来让这混乱得到最低限度的管理。

– 来自 索尼公司Tony Albrecht

[英文原文:Object Oriented Programming is Inherently Harmful ]

分享这篇文章:

14 Responses to 面向对象编程从骨子里就有问题——看看名人大家是如何吐槽面向对象的

  1. Null says:

    世界上只有两类XX:整天被人喷的,没有人用的.

  2. xudifsd says:

    我觉得题目叫“诋毁”,不好,叫吐槽更好

  3. 熊猫家族 says:

    说的很有道 把问题简单化

  4. Sweet says:

    简单设计和面向对象不冲突,我倒是比较喜欢OOP。如果你要的仅仅是个方法,那就写个方法就行了呗。如果非要去为了OO而写代码,那真是没事找事。

  5. haitao says:

    面向对象是理解事情的一种基本方法:东西归类了,的确容易管理了
    过分的继承,的确会把事情复杂化,与原目标背道而驰了:反而容易错

  6. hanf says:

    OO是一种手段,它可以解决某些复杂性,问题是在OOxx的过程中又产生别的复杂性。
    大师们一般都不喜欢OOP,我想是大师们看问题都比较通透彻底了,对复杂性的控制力
    足够强了,不需要这些技巧性的东西。

  7. peter5 says:

    外国人说话都比较夸张。而且不顾上下文,从一篇文章中截取其中一两句出来,毫无意义。

  8. bombless says:

    有时,优雅的实现只需要一个函数。不是一个方法。不是一个类,不是一个框架。只是一个方法。
    最后这里是只是一个函数吧。

  9. bombless says:

    还有就是,最后的– 来自 索尼公司Tony Albrecht贴错位置了吧。

  10. 李闯 对这篇文章的反应是俺的神呀
  11. Qin says:

    Sometimes, the elegant implementation is just a function. Not a method. Not a class. Not a framework. Just a function.

    这段翻译建议改善

发表评论

电子邮件地址不会被公开。 必填项已用*标注