Rosetta Code中编程语言的比较研究
软件工程
2015-06-04 v4
摘要
有时关于编程语言的争论比科学更具宗教性。关于哪种语言更简洁或更高效,或是否使开发人员更具生产力的问题被热烈讨论,其答案往往基于轶事和不实证的信念。在本研究中,我们使用Rosetta Code这一潜在未被充分利用的研究资源——该资源包含了各种语言中解决常见编程任务的解决方案数据集——进行公正且基于事实的比较。Rosetta Code提供了大量数据集用于分析。本研究基于7087个对应745个任务的7087个解决方案程序,这些程序在8种广泛使用的语言中实现,代表主要编程范例(程序式:C和Go;面向对象:C#和Java;函数式:F#和Haskell;脚本式:Python和Ruby)。我们的统计分析最显著的结果表明:函数式和脚本语言比程序式和面向对象语言更简洁;C在大输入上的原始速度方面难以打败,但在中等规模输入上的性能差异较小,甚至可以被解释型语言竞争;编译型强类型语言,其中可以在编译时捕获更多缺陷,比解释型或弱类型语言更不易发生运行时故障。我们讨论了这些结果对开发人员、语言设计师和教育者的影响。
关键词
引用
@article{arxiv.1409.0252,
title = {A Comparative Study of Programming Languages in Rosetta Code},
author = {Sebastian Nanz and Carlo A. Furia},
journal= {arXiv preprint arXiv:1409.0252},
year = {2015}
}