前言

1998年,八岁的我拿起了我此生第一本计算机书,那本书讲的是JavaScript和HTML。我当时怎么也想不到,打开那本书会让我见识到编程语言和它们能够创造的神奇世界,并彻底改变我的生活。我被它深深地吸引了。如今,编程语言的某个新特性还会时不时地让我感到兴奋,因为它让我花更少的时间就能够写出更清晰、更简洁的代码。我希望本书探讨的Java 8、9以及10中那些来自函数式编程的新思想,同样能够给你启迪。

那么,你可能会问,这本书以及它的上一版是由何而来的呢?

2011年,Oracle公司的Java语言架构师Brian Goetz分享了一些在Java中添加Lambda表达式的提议,以期获得业界的参与。这重新燃起了我的兴趣,于是我开始传播这些想法,在各种开发者会议上组织Java 8讨论班,并为剑桥大学的学生开设讲座。

到了2013年4月,消息不胫而走,Manning出版社的编辑给我发了封邮件,问我是否有兴趣写一本关于Java 8中Lambda的书。当时我只是个“不起眼”的二年级博士研究生,写书似乎并不是一个好主意,因为它会耽误我提交论文。另一方面,所谓“只争朝夕”,我想写一本小书不会有太多工作量,对吧?(后来我才意识到自己大错特错了!)于是我咨询我的博士生导师米克罗夫特教授,结果他十分支持我写书(甚至愿意为这种与博士学位无关的工作提供帮助,我永远感谢他)。几天后,我们见到了Java 8的布道者富斯科,他有着非常丰富的专业经验,并且因在重大开发者会议上所做的函数式编程演讲而享有盛名。

我们很快就认识到,如果将大家的能量和背景融合起来,就不仅仅可以写出一本关于Java 8 Lambda的小书,而是可以写出(我们希望)一本五年或十年后,在Java领域仍然有人愿意阅读的书。我们有了一个非常难得的机会来深入讨论许多话题,它们不但有益于Java程序员,还打开了通往一扇通往新世界的大门:函数式编程。

现在是2018年,截至今天,本书的上一版已在全世界售出两万本,Java 9已经发布,Java 10也即将发布。经历了无数个漫漫长夜的辛苦工作、无数次的编辑和永生难忘的体验后,我们这本全新修订的包含Java 8、9以及10的《Java实战(第2版)》终于送到了你的手上。希望你会喜欢它!

拉乌尔-加布里埃尔·乌尔玛

于剑桥大学