1998年,八岁的我拿起了我此生第一本计算机书,那本书讲的是JavaScript和HTML。我当时怎么也想不到,打开那本书会让我见识编程语言和它们能够创造的神奇世界,并会彻底改变我的生活。我被它深深地吸引了。如今,编程语言的某个新特性还会时不时地让我感到兴奋,因为它让我花更少的时间就能够写出更清晰、更简洁的代码。我希望本书探讨的Java 8中那些来自函数式编程的新思想,同样能够给你启迪。
那么,你可能会问,这本书是怎么来的呢?
2011年,甲骨文公司的Java语言架构师Brian Goetz分享了一些在Java中添加Lambda表达式的提议,以期获得业界的参与。这让我重新燃起了兴趣,于是我开始传播这些想法,在各种开发人员会议上组织Java 8讨论班,并为剑桥大学的学生开设讲座。
到了2013年4月,消息不胫而走,Manning出版社的编辑给我发了封邮件,问我是否有兴趣写一本书关于Java 8中Lambda的书。当时我只是个“不起眼”的二年级博士生,似乎写书并不是一个好主意,因为它会耽误我提交论文。另一方面,所谓“只争朝夕”,我想写一本小书不会有太多工作量,对吧?(后来我才意识到自己大错特错!)于是我咨询我的博士生导师Alan Mycroft教授,结果他十分支持我写书(甚至愿意为这种与博士学位无关的工作提供帮助,我永远感谢他)。几天后,我们见到了Java 8的布道者Mario Fusco,他有着非常丰富的专业经验,并且因在重大开发者会议上所做的函数式编程演讲而享有盛名。
我们很快就认识到,如果将大家的能量和背景融合起来,就不仅仅可以写出一本关于Java 8的Lambda的小书,而是可以写出(我们希望)一本五年或十年后,在Java领域仍然有人愿意阅读的书。我们有了一个非常难得的机会来深入讨论许多话题,它们不但有益于Java程序员,还打开了通往一个新世界的大门:函数式编程。
15个月后,到2014年7月,在经历无数个漫漫长夜的辛苦工作、无数次的编辑和永生难忘的体验后,我们的工作成果终于送到了你的手上。希望你会喜欢它!
Raoul-Gabriel Urma
于剑桥大学