面向对象编程“危险”吗?
今天早上我偶然看到一篇题为《为什么这么多开发者讨厌面向对象编程?》的文章,作者是David Cassel,我觉得它很适合作为讨论话题。“嗯,面向对象编程确实有一些缺点,但我很难想象有人会讨厌它,甚至完全避开它。”我心想。读完这篇文章后,我有一些自己的看法,不过我先把这些留到最后再说。
资深全栈工程师伊利亚·苏兹达尔尼茨基 (Ilya Suzdalnitski) 认为,面向对象编程是一场“价值万亿美元的灾难”,它“最终会变成一个巨大的全局状态集合,任何人都可以不受限制地对其进行修改”。苏兹达尔尼茨基的文章发表在 Medium 上,有兴趣的朋友可以阅读。
卡塞尔的文章详细介绍了他与苏兹达尔尼茨基的电子邮件访谈内容,从而更深入地解释了苏兹达尔尼茨基为何采取这种颇具争议的立场。他解释说,当他意识到自己在面向对象编程(OOP)实践中投入的时间和学习回报很低时,他就放弃了OOP;如今他使用F#、JavaScript和C#(采用函数式编程风格)进行编程,“再也找不到任何(OOP的用例)了”。
Suzdalnitski文章中最具争议的观点是“面向对象编程很危险”。他声称面向对象编程是为廉价、缺乏经验的开发者准备的,“函数式程序员通常更聪明,也更贵”。Suzdalnitski的观点遭到了开发者社区的强烈反对,甚至有人撰写了同样具有争议性的文章,例如Gary Willoughby的《讨厌面向对象编程的开发者根本不会使用它》。
那么我对这些文章有什么看法呢?首先,我想说卡塞尔以非常中立的方式探讨了一个热门话题。我很欣赏他这种客观中立的写作风格,让我能够毫无预设地阅读他的文章,而无需了解他在这场辩论中的立场。至于苏兹达尔尼茨基的文章,我认为这是一篇非常精彩的评论文章,而且争论本身也很有趣——但我并不认同任何一种语言、编程风格或框架能够解决所有问题的万能灵药。我完全同意面向对象编程(OOP)无法满足所有需求,但我同样不认同函数式编程能够满足所有需求。
我也不认为面向对象编程是低端开发人员的专属。很多才华横溢的软件工程师都在使用面向对象编程,而要精通它需要投入大量的时间和精力。话虽如此,我从未尝试过函数式编程,所以无法评价它们在使用和学习曲线上的差异。
您对这篇文章有什么看法?您同意苏兹达尔尼茨基的观点吗?还是不同意?我很想听听您的想法!
如果你想在社交媒体上关注我,欢迎来Twitter或LinkedIn上找到我,跟我打个招呼!
文章来源:https://dev.to/rachelsoderberg/is-object-driven-programming-dangerous-2f32