由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 实践研究表明,FP代码虫子少,质量高
相关主题
大牛给推荐个fp语言又看了一下go
感觉Erlang不错,有必要学习一下吗?go is ugly
未来15年,服务器端语言,除了标准的java,我看好scala,go 前端有哪些公司用Lisp开发程序
functional programming 哪本书经典适合入门各种语言程序猿被鄙视级别排序 (转载)
程序员薪水板上的高人们能给科普比较functional programming language么
抛砖引玉,来谈谈functional programmingHaskell很难学。。
各个编程语言平均工资(ZT)functional programming?
大本,跟你说,你凹凸了这么多人讨论 FP, 大牛推荐门语言吧
相关话题的讨论汇总
话题: 语言话题: fp话题: 错误话题: clojure话题: 虫子
进入Programming版参与讨论
1 (共1页)
h*i
发帖数: 3446
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是平均代码最短的,所以结果在各方面都胜出了。哈哈。
g****t
发帖数: 31659
2
比较小众的编程风格,刷刷题,面试都不难。
但是如果长期用,一定会发现有很多问题需要程序员自己case by case解决,
因为不存在现成的方法。能活下来的,很可能by average个人是力量比较强的
程序员。因为他们要解决很多没有听人讲过的问题。
所以Paul Graham200x年说他开start up愿意找写python的,不找写java的。
也有一定道理。
我在微信还看过一个别人转的统计。有个公司统计过发现,用vim,emacs的人
通过他们公司面试tech review的比例很高。用eclipse,vs,sublime等的比例
差一个档次。vim不知道。Emacs能坚持下来的,往往等于几个月一个小项目,
从设计到测试到实现DIY。等于是曲不离口,拳不离手。

【在 h*i 的大作中提到】
: 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 ***

g****t
发帖数: 31659
3
为了避免误解,补充一点。bug少,不意味着代码质量高。
力量强也不意味着是个好工人。

【在 g****t 的大作中提到】
: 比较小众的编程风格,刷刷题,面试都不难。
: 但是如果长期用,一定会发现有很多问题需要程序员自己case by case解决,
: 因为不存在现成的方法。能活下来的,很可能by average个人是力量比较强的
: 程序员。因为他们要解决很多没有听人讲过的问题。
: 所以Paul Graham200x年说他开start up愿意找写python的,不找写java的。
: 也有一定道理。
: 我在微信还看过一个别人转的统计。有个公司统计过发现,用vim,emacs的人
: 通过他们公司面试tech review的比例很高。用eclipse,vs,sublime等的比例
: 差一个档次。vim不知道。Emacs能坚持下来的,往往等于几个月一个小项目,
: 从设计到测试到实现DIY。等于是曲不离口,拳不离手。

a*****g
发帖数: 19398
4
有趣。

【在 h*i 的大作中提到】
: 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 ***

d******c
发帖数: 2407
5
这里的统计偏差很大
越是入门难的语言,新手越多,基础差的人越多,错误越多
FP要么是老手,要么是很有兴趣的人,或者是新手但是一开始就有人教,有人修正坏习
惯。如果新手自学FP,能写code肯定是基础很好的人。相比之下新手自学python胡写一
气太容易了。
应该加上开发者的经验级别,IQ之类。
d******c
发帖数: 2407
6
代码长度这个观察很有意思,代码越长,越复杂,出问题可能性越大。表达力强的语言
,能在比较短的代码内解决问题,一目了然,人可以同时考虑整个系统,肯定要好一些
。还有就是代码短很大程度是用库比较多,库成熟的话也比自己写bug少。
g****t
发帖数: 31659
7
是的。我也觉得这是个主要偏差。
能用FP解决实际问题,甚至赚钱的,一定是老手。
或者超级有力量,能折腾的新手。
跟写java的不同。python我感觉做产品其实还是挺有难度的。说到底还是java,c#,c
等适合
team work


: 这里的统计偏差很大

: 越是入门难的语言,新手越多,基础差的人越多,错误越多

: FP要么是老手,要么是很有兴趣的人,或者是新手但是一开始就有人教,
有人修
正坏习

: 惯。如果新手自学FP,能写code肯定是基础很好的人。相比之下新手自学
python
胡写一

: 气太容易了。

: 应该加上开发者的经验级别,IQ之类。



【在 d******c 的大作中提到】
: 代码长度这个观察很有意思,代码越长,越复杂,出问题可能性越大。表达力强的语言
: ,能在比较短的代码内解决问题,一目了然,人可以同时考虑整个系统,肯定要好一些
: 。还有就是代码短很大程度是用库比较多,库成熟的话也比自己写bug少。

m****o
发帖数: 182
8
像Clojure,Scala和 Haskell这样的语言,对程序员的入门门槛也相对较高,客观上降
低了程序的bug数量。举个例子:如果Scala把lightbend stack再去掉统计,基本剩下
的都是用typelevel stack的。那对于程序员入门水平要求更高,bug数量还会进一步降
低。
n***p
发帖数: 110
9
The conclusion actually says static typing is better than dynamic.
Although I agree with you Clojure is the best :)

【在 h*i 的大作中提到】
: 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 ***

n*****3
发帖数: 1584
10
how can clojure be best and dynamic in the same time??
dynamic is the devil...

【在 n***p 的大作中提到】
: The conclusion actually says static typing is better than dynamic.
: Although I agree with you Clojure is the best :)

n***p
发帖数: 110
11
Then there are so many devils:
JavaScript, Python, Ruby, php, Perl, lisp, groovy, R ...

【在 n*****3 的大作中提到】
: how can clojure be best and dynamic in the same time??
: dynamic is the devil...

1 (共1页)
进入Programming版参与讨论
相关主题
这么多人讨论 FP, 大牛推荐门语言吧程序员薪水
王垠 -- 拳打南山魏老 脚踢北海好虫抛砖引玉,来谈谈functional programming
有没有喜欢haskell的同学各个编程语言平均工资(ZT)
大家选选自己最喜欢的语言大本,跟你说,你凹凸了
大牛给推荐个fp语言又看了一下go
感觉Erlang不错,有必要学习一下吗?go is ugly
未来15年,服务器端语言,除了标准的java,我看好scala,go 前端有哪些公司用Lisp开发程序
functional programming 哪本书经典适合入门各种语言程序猿被鄙视级别排序 (转载)
相关话题的讨论汇总
话题: 语言话题: fp话题: 错误话题: clojure话题: 虫子