Lambda将从根本上改变我们开发Java程序的方式

Java8-Logo

当今世界主流编程语言无不吸纳强大的闭包概念,但有个例外,它就是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应用程序里都能看到的标准技术。

[英文原文:Lambda in Java 8: A fundamental change in how Java programs are developed ]

分享这篇文章:

9 Responses to Lambda将从根本上改变我们开发Java程序的方式

  1. Beatless says:

    我们等到黄花菜都腐烂了

  2. lite3 says:

    哈哈,看过C++里的lambda语法,实在太高级了,希望java里的也能像C++里的那样强大.哈哈

  3. kk says:

    泛型,lambda。。到头来java还是跟在c++后面走

  4. haitao says:

    lambda会不会导致代码或运行混乱?不好理解?
    尤其是变量作用域的影响机制会不会复杂很多?

  5. 刘栋 says:

    这种函数其实就是javascript中的first-class级别的function,可以作为变量进行传参,也可以作为返回值,很强大~

  6. yy says:

    这东西flash程序员估记都用烂了

  7. Flash 還沒誕生的時候 Lisp 程序員已經用得腐爛了。

  8. auqavert says:

    说实话,我对编程了解较少,开发这么多年我只觉得 lambda 会让程序变得更难读,我觉得这个东西真心扯淡。

  9. 何华 says:

    我觉的 很好@!用最少的语言做最多的事。把要做的事情的方法 封装起来,我只得到结果。不用在方法和方法内部绕来绕去 是多么 云开的 日子啊!~ 程序就是要直接,给什么数据 获得什么,不要太多的迂回我觉的才是简捷的

发表评论

电子邮件地址不会被公开。 必填项已用*标注