某李探花

对函数式语言的重新思考 Sep 08, 2013

前天重新翻看了一些之前在Pocket里面保存的文章,其中有一篇关于使用不同语言的程序员之间平均每天的代码行数的讨论引起了我的注意,然后就重新翻看了一下。

之前当然也看过这篇文章,但是可能当时没有像现在这样一直带着haskell等函数式语言在工业界是否适用的疑问来看,所以也就没太过在意。

文章中提到适用不同语言的程序员每天产生的代码行数是差不多的,当然是在排除了经验丰富的程序员写同样多的代码更高效、能干更多的事的情况。文中还特别提到人们容易误以为使用汇编语言的程序员的代码产量会比普通高级语言程序员的产量高很多,而实际上却没高多少。看到这句我就觉得这问题值得好好思考一下了。

在一定时间段内人的思考量是有限的,也就是说人与人之间人差别不大。所以在同一个问题的不同抽象层次上的思考所花的时间差别就大了。由此可以看出,使用抽象层次高的语言的生产效率就高,当然这里也有代码运行效率的矛盾。而haskell一类的FP语言则是在数学层次上的抽象(没记错的话是这样),并且在多核时代,FP语言有着相当明显的优势,所有我认为,函数式语言的前景还是非常可观的。

再来个题外话,最近一直在找个答案,就是用于研究的haskell是否适用于工程领域,这问题困扰了我很多天了,直到后来在看豆瓣网页是突然想到之前一句调侃的话:世界上有两种语言,一种是被人吐槽的,一种是没人用的。虽然haskell还是有不少缺陷,但是应用于一般的工程领域还是能很好地胜任的,某些特定情况注意一下就好了。

另外,从这些天的了解来看,haskell在很多人心中的地位还是蛮高的。

haskell 函数式语言


comments powered by Disqus