实践研究表明,FP代码虫子少,质量高# Programming - 葵花宝典
h*i
1 楼
Communication of ACM(最权威计算机杂志)最新文章:
A Large-Scale Study of Programming Languages and Code Quality in GitHub
https://cacm.acm.org/magazines/2017/10/221326-a-large-scale-study-of-
programming-languages-and-code-quality-in-github/fulltext
结论:
1. FP语言代码质量最高,虫子最少。与虫子数量进行的回归分析中,统计结果显著的
最差和最好的语言如下:
最好:Clojure, -.30 ***
Haskell -.26 ***
Scala -.24 ***
Ruby -.13 **
最差:C++ .18 ***
Obj. C .15 **
C .11 **
PHP .10 *
Python .08 *
2. 编程语言的应用范围与虫子数量无关。
3. 虫子的类型与编程语言很相关:
a. 普通的编程错误占88%强。 这种错误与程序语言的关系类似与上面的1: FP语言虫
子显著少。
b. 内充错误占 5%。 C系列语言需要程序员自己管理内存的这种错误最多。系统管理内
存的语言里面,Java的内存错误最多(漏内存)。
c. 同步错占2%。同样,C系列语言有最多这种错误。一般而言,静态类型语言这种错误
最多(有意思,为啥啊?)。动态类型语言里面,Erlang的这种错误最多(比较吃惊啊
,可能是滥用同步了)。
d. 安全类错误占7%。Erlang, C++, Python的这类问题最多,Clojure最少。一般而言
,静态类型语言这类错误最多(为啥啊?)。
总之很有意思,从这个文章而言,Clojure简直就是最好的语言了:FP, 系统管理内存
,动态类型,语言本身有很多同步的方式,安全。
有些发现很反很多人的直觉:比如静态类型的语言其实错误更多,Erlang其实同步错误
很多。
这个研究其实与以前一个研究一致,那个研究表明只有代码长度与虫子数量显著相关。
这些语言里面,Clojure是平均代码最短的,所以结果在各方面都胜出了。哈哈。
A Large-Scale Study of Programming Languages and Code Quality in GitHub
https://cacm.acm.org/magazines/2017/10/221326-a-large-scale-study-of-
programming-languages-and-code-quality-in-github/fulltext
结论:
1. FP语言代码质量最高,虫子最少。与虫子数量进行的回归分析中,统计结果显著的
最差和最好的语言如下:
最好:Clojure, -.30 ***
Haskell -.26 ***
Scala -.24 ***
Ruby -.13 **
最差:C++ .18 ***
Obj. C .15 **
C .11 **
PHP .10 *
Python .08 *
2. 编程语言的应用范围与虫子数量无关。
3. 虫子的类型与编程语言很相关:
a. 普通的编程错误占88%强。 这种错误与程序语言的关系类似与上面的1: FP语言虫
子显著少。
b. 内充错误占 5%。 C系列语言需要程序员自己管理内存的这种错误最多。系统管理内
存的语言里面,Java的内存错误最多(漏内存)。
c. 同步错占2%。同样,C系列语言有最多这种错误。一般而言,静态类型语言这种错误
最多(有意思,为啥啊?)。动态类型语言里面,Erlang的这种错误最多(比较吃惊啊
,可能是滥用同步了)。
d. 安全类错误占7%。Erlang, C++, Python的这类问题最多,Clojure最少。一般而言
,静态类型语言这类错误最多(为啥啊?)。
总之很有意思,从这个文章而言,Clojure简直就是最好的语言了:FP, 系统管理内存
,动态类型,语言本身有很多同步的方式,安全。
有些发现很反很多人的直觉:比如静态类型的语言其实错误更多,Erlang其实同步错误
很多。
这个研究其实与以前一个研究一致,那个研究表明只有代码长度与虫子数量显著相关。
这些语言里面,Clojure是平均代码最短的,所以结果在各方面都胜出了。哈哈。