是否有关于不同语言对软件质量影响的经验研究?


19

支持功能性编程语言的人断言,功能性编程使代码推理变得更容易。那些支持静态类型语言的人说,他们的编译器捕获了足够的错误以弥补类型系统的额外复杂性。但是,我在这些主题上阅读的所有内容均基于理性的论据,而不是基于经验数据。

是否有任何关于不同种类的编程语言对缺陷率或其他质量指标产生什么影响的经验研究?

(对这个问题的回答似乎表明,没有这样的研究,至少对于动态与静态的辩论没有。)


6
您可能会想到,其中涉及许多令人困惑的混杂因素。那里有“实证研究”,但它们不过是有据可查的轶事而已,应该给予应有的重视。
CA McCann


@Steven:这个问题似乎涉及范围更广(也许范围太广)。
罗伯特·哈维

如果您找到这样的研究,您将如何处理?
JeffO 2011年

@Robert沿着这些思路进行了COCOMO研究,但它们毫无意义-除非您已经研究了自己的团队,否则几乎不可能客观地做到这一点
Steven A. Lowe

Answers:


3

学术界对此有一些研究。这是我所知道的一些示例,尽管您应谨慎对待结论:

  • 关于静态和动态类型系统的实验:怀疑静态类型系统对开发时间的积极影响,Stefan Hanenberg。在Proc OOPSLA中,2010年 。ACM链接

  • Ruby中静态类型的实证研究,M。Daly,V。Sazawal,J。Foster。载于Proc PLATEAU,2010年。PDF

  • 评估过程参数类型检查好处的对照实验,Lutz Prechelt和Walter F. Tichy。IEEE TSE,1998年。IEEE链接

我确定还有其他论文。但是,总的来说,由于明显的原因,该领域极具争议--很难进行客观评估!



0

尽管它与代码质量无关,但本研究着眼于新手如何使用不同的语言来学习。特别是,他们比较了初学者在学习Perl vs Quorum(作者希望比较的一种教学语言)时的表现。本文的真正酷点在于,他们实际上提出了一种控制语言,该语言随机生成语法,作为一种“安慰剂”语言。如果将这种方法应用于语言和代码质量,并且在控制语言时帮助控制一些棘手的混杂因素,则可能会非常有趣。

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.