为什么go和rust语言都舍弃了继承?
作者:卡卷网发布时间:2024-11-30 16:07浏览数量:136次评论数量:0次
“面向对象编程是一个极其糟糕的主意,只有加利福尼亚才产出这种东西。” — 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的创造者)
Go 和 Rust 选择避免传统的类继承,并不是说面向对象编程没有价值,而是它们试图通过不同的方式来解决软件设计中的一些问题。这些语言的设计哲学倾向于利用接口、组合和其他模式来实现灵活性和代码复用,同时避免继承可能带来的问题。在软件开发中,并没有一种“一刀切”的编程范式,选择哪种方法取决于具体项目的需求、团队的偏好和目标平台的限制。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎