代码改变世界

高阶函数、委托与匿名方法

2009-04-18 12:25 Jeffrey Zhao 阅读(...) 评论(...) 编辑 收藏

http://www.infoq.com/cn/articles/higher-order-function

这是几个月前就写的文章,只是一直忙于QCon的各项事宜,最近才发表出来。这篇是对.NET中委托,匿名方法和高阶函数使用的一个介绍,非常简单,目的是强调一下C#中对于高阶函数的使用,体现一下现在C#的高度生产力。我现在经常提起,Java是一个固步自封的语言,开发效率之低已经是难以辩驳的事实。对于Java粉丝来说,他们可以强调Java的自由文化,Java的开源之美,但是我相信没有人会继续强调Java语言的生产力如何——除非他不愿接受Ruby,Python,甚至一直被认作是“后辈”的C#也已经大大超越Java了。

语言是工具,带来的生产力很重要。最简单验证方法,便是尝试着去写一点Java程序,会发现很多时候寸步难行——如果你熟悉C# 3.0的话,这时候你就会怀念C#,Ruby,Python带来的生产力了。强调语言不代表忽视其他。语言是非常重要的,直接影响生产力,其重要性甚至超过“框架”和“类库”。因为框架类库可以由第三方补充,而语言不行。你可以说ruby某个功能1行就能做,而C#要5行,那么我可以补充一个类库,完成1行的功能。而Java就做不到。这也是为什么现在不少编程语言的书,都喜欢和Java做对比,因为Java的生产力的确是“难以提高”。如果它们拿C#出来进行比较——那么好,从CSDN的趣味题学C# 3.0,看出点什么意思了吗?