是否有关于OOP在管理软件复杂性方面的有效性的研究?[关闭]


14

与非OOP过程编程相反,OOP通常被认为是管理软件复杂性的有效策略。

有没有研究测试这个概念?是否已证明OOP通常可以帮助管理大型项目中的复杂性?


4
尽管非常有趣,但是恕我直言,测量范例的“复杂性”和“效果”是一项困难且容易产生偏差的工作。每个程序都是唯一的,每个开发人员都是唯一的,很难比较。此外,生产力不仅取决于范式,还取决于工具,生态系统和学习材料。公正的学习应该让整个学生组使用任意一种语言编写相同的要求,并查看结果。但是,即使他们很可能具有先验知识也有偏差。我不知道有这样的研究。
dagnelies,2014年

没有研究,但有些学术咆哮:en.wikipedia.org/wiki/Object-oriented_programming#Criticism
书斋

1
这是一个棘手的问题,因为业界实践中的OOP势在必行。因此,我们已经从接触全局的过程转移到了修改对象的方法,该方法修改了其他对象,而这些对象又修改了其他对象。副作用更为明显,但远距离仍然有很多作用。另一方面,当您最小化副作用并使事情变得不可变时,有些人会认为您正在执行函数式编程。
Doval

2
没有办法真正测量它-这是一种量子效应,测量它会影响结果。
DeadMG

1
为了进行比较,必须有一种适用于非常大的编程系统的替代范式,该范式是由具有普通技能的程序员(即,不是由一组专家或最先进的学者组成)构建的。大型系统往往涉及网络,数据库,负载平衡和冗余(即不可靠的机器)等。后面的问题列表主导了关于编程语言范例的所有辩论。
rwong 2014年

Answers:


10

我不知道有任何可量化测量的研究。正如其他人在对您的问题的评论中提到的那样,实际上是不可能实现的。但是,有些哲学论文试图回答这一问题。

关于该主题的我最喜欢的论文是本·莫斯利(Ben Moseley)和彼得·马克(Peter Marks)的《不在沥青坑中》。它从各种有关复杂系统设计的可观来源中得出各种陈述,从而得出相当有趣的结果。

在Tar​​ Pit中得出的结论是,函数编程实际上是支持他们提出的解决方案的最佳范例。这是有道理的,因为根据我的经验,随着时间的推移,复杂的OOP系统变得非常接近于过程,并且过程开始看起来像OOP(它们没有语法和其他属性,但是执行流程可能变得非常相似)。真正的区别来自于不同的范例,或者与OOP相结合。目前,这种范例是函数式编程,最终由普通程序员在普通业务应用程序中使用(仍然可以到达那里)。


5

是的,已经有一些研究。这是一个:http : //www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf

基本上可以得出结论,程序代码的生产率和OO语言的生产率之间没有可测量的区别。。。。。。。。。。。。。。。。 。


长期以来,有研究表明,将台式计算机引入办公室环境并不会提高生产率。

@nocomprende您是否有理由相信这些研究得出了错误的结论?1989年普通上班族使用的1989年的PC与现代工人使用的现代计算机完全不同。同样,随着时间的推移,对象技术的应用可能会有所改善,也可能不会有所改善。
约根·

1
@JørgenFogh我想我同意以下观点,即研究并不总是表明似乎是常识。如果情况变得更糟,企业就不会开始在办公室使用计算机。如果没有帮助,人们不会花数十年的时间来开发OO方法。他们会吗?好吧,人们可能是错的,但是您如何以一种或另一种方式最终证明呢?结果是:“这对有用吗?”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.