Lambda将改变我们开发Java程序的方式

当今世界主流编程语言无不吸纳强大的闭包概念,但有个例外,它就是Java。数年来,Java语言中增加闭包特征的工作看起来毫无进展。

早在15年之前,Scala语言和TypeSafe框架的作者Martin Odersky和Phillip Wadler发布了实验性的“Pizza”项目,由此,人们开始试图将闭包纳入编程语言的基本特征之一。尽管这看起来有点过于复杂,Java社区大概在2008年就有了接纳闭包概念的想法。但由于Oracle对Sun微系统公司的匆忙收购,Java被冷落,Java语言新版本的发布不断的被推迟。

但在Java8中,事情有了很大的变化,Java语言终于为Java编程部队配备了闭包的武器。“也许这是Java编程语言有史以来最重要的一次升级,”Oracle的Java语言架构师Brian Goetz说。他指出,在Java中引入闭包概念对Java程序开发方法的影响甚至会大于Java5中引入的泛型特征对编程方式带来的影响。“就像泛型能使开发人员对数据类型进行抽象,Lambda的目的是让程序员能够对程序行为进行抽象。”

Lambda这个名称来自于把闭包绑定到Java编程语言的Lambda项目。Lambda以及闭包的引入能做些什么?你可以这样想,它能够让程序员把一段程序代码当做数据一样使用。一个方法可以像定义和使用一个变量那样的方式被定义和使用,定义出的方法可以被当作参数传递到其它方法内,就像它们是一个对象实例或一个类型数据一样。“看起来这好像也没什么,但实际上它影响巨大,”Goetz说。“这将从根本上改变我们开发java程序的方式。”

我们等待了太久,但随着Java8的发布,Lambda终于成为Java规格说明书里的正式特征之一。一种由于过于复杂而最初被传统程序员放弃的语法将最终成为一种每个现代Java应用程序里都能看到的标准技术。