支持功能性编程语言的人断言,功能性编程使代码推理变得更容易。那些支持静态类型语言的人说,他们的编译器捕获了足够的错误以弥补类型系统的额外复杂性。但是,我在这些主题上阅读的所有内容均基于理性的论据,而不是基于经验数据。
是否有任何关于不同种类的编程语言对缺陷率或其他质量指标产生什么影响的经验研究?
(对这个问题的回答似乎表明,没有这样的研究,至少对于动态与静态的辩论没有。)
支持功能性编程语言的人断言,功能性编程使代码推理变得更容易。那些支持静态类型语言的人说,他们的编译器捕获了足够的错误以弥补类型系统的额外复杂性。但是,我在这些主题上阅读的所有内容均基于理性的论据,而不是基于经验数据。
是否有任何关于不同种类的编程语言对缺陷率或其他质量指标产生什么影响的经验研究?
(对这个问题的回答似乎表明,没有这样的研究,至少对于动态与静态的辩论没有。)
Answers:
Lutz Prechelt是一项著名的研究。七种编程语言的经验比较。IEEE Computer [33(10):23-29],2000年10月
Prechelt讨论了程序的可靠性,并检查了执行时间和内存消耗。
尽管它与代码质量无关,但本研究着眼于新手如何使用不同的语言来学习。特别是,他们比较了初学者在学习Perl vs Quorum(作者希望比较的一种教学语言)时的表现。本文的真正酷点在于,他们实际上提出了一种控制语言,该语言随机生成语法,作为一种“安慰剂”语言。如果将这种方法应用于语言和代码质量,并且在控制语言时帮助控制一些棘手的混杂因素,则可能会非常有趣。