译者序
三年过去了。
Scala变了吗?在我看来,Scala还是那个让人着迷,同时又超级务实的小众语言。但这并不重要,重要的是你找到了它,而它也找到了你。
如果你刚接触Scala,请允许我投来羡慕的眼光,因为从来没有像今天这样,有这么多优质的学习资源可供选择,而Scala也一直在稳定地向业界输出成熟的解决方案和人才。
我还清晰地记得十年前刚上手Scala,以及三年前引进《Scala编程》第3版时的内心活动。我的职业生涯,从我接触Scala那一天起,就已注定不同。不怕各位看官笑话,Scala是我现在公司入职的敲门砖,让我从企业开发顺利过渡到互联网行业。Scala也伴随我和团队的成长,贡献了大量经住了互联网级别压力考验的代码,其中一些从6年前上线到现在,几乎没有做过重大修改,还是最初的设计和实现,跑赢了很多昙花一现的技术栈。
说回《Scala编程》,跟第3版相比,第4版增补了Scala 2.13的内容,Scala 2.13中最主要的改动,是为了给Scala 3打基础而几乎重写的集合框架。
这本书的分量,除Martin Odersky的亲自背书和显而易见的篇幅之外,我认为最值得一提的,是它不仅全面覆盖了Scala几乎所有的语言特性,还从语言开发者的视角,向我们介绍了这些语言特性和设计取舍背后的原因,以及要解决的问题。这是《Scala编程》跟其他林林总总的Scala图书最大的区别。从工具和工具书的角度来看,你也许会觉得:编程语言就是拿来干活儿的,一本编程语言的入门书,当然就是要把怎么用讲明白,让我高效地完成手中的工作,其他都是次要的。这里,我想给读者朋友们分享一个我自己的心得:语言除了表达(让计算机和其他人类明白),更是思维的载体。学习一门编程语言,局部功利的因素当然有,但更多的,是通过这门语言,拓宽你的知识边界。语言是手段,不是目的。所以,不论你是否从事Scala编程工作,希望这本书,都能够带给你不一样的世界和认知。
感谢Martin Odersky和他的团队,为我们带来这样一门独特而优美的编程语言;感谢电子工业出版社、张春雨编辑,在第1版和第3版之后,继续引进本书的第4版;感谢编辑团队和其他幕后工作者的辛勤付出;感谢家人无条件的支持和鼓励,我爱你们,你们是我心中的灯塔。
在本书的翻译过程中,译者虽已尽力忠实呈现原著的本意,但毕竟能力有限,问题和疏漏恐难以避免,恳请各位读者批评指正,联系地址: gaoyuxiang.scala@gmail.com 。
高宇翔
2020年于上海