哲学家Ludwig Wittgenstein(1889—1951)曾说过,“我的语言之局限,即我的世界之局限”。基本意思是,你的语言限制了你思考问题的方式,学习编程语言也是同样的道理。
比如,你在C++中,需要非常麻烦地向正在运行的系统动态添加新类型,但如果决定迁移到Java上却显得自然而然,Java在C++基础上扩展了我们的编程思维。再比如,在Java中不了解upcasting就无法真正了解继承和多态,如果一旦开始使用Python就会发觉,Java语言再次使你的思维受限。
所谓的“思维受限”,实际是对“语言设计缺陷”层面缺乏认识。很难有技术书能够从语言设计层面既教你如何用,同时也告诉你为什么,首版发布于1996年的Thinking in Java开源书却同时兼顾了这两点,并因此多次荣获 Jolt 最佳图书奖(被誉为“软件业界的奥斯卡”)。
得益作者开放深度研讨的方式,该书也受到了全世界读者的追捧,被译为了十几种语言。但遗憾的是,在经历了4个版本的更新后,其最后一版Thinking in Java 4th发布于2007年,之后再无更新。
直至Java 8发布,原书作者Bruce Eckel才愿意重回Java,重新动笔完成了新书ON JAVA 8,一经发布就得到了读者的高度关注。
用Bruce话来讲,Thinking in Java是以纯面向对象思想教授编程,ON JAVA 8更像是对Java语言自身的重塑,借由函数式编程的视角来讲解。
1
基于Java 8、11、17
Java 8 虽说是变化比较大的版本,吸收了函数式编程的一些优点,但作为长期支持版的 Java 17 都将发布了,这本书能给我们带来多大的帮助呢?关于本书版本的问题,图灵和几位译者、作者进行了深入的探讨,并最终决定根据Java11、17等版本的新特性做了关键更新。
2
一线技术大咖专业解读
为了降低新手读者降低阅读难度,我们邀请到了从业Java开发十年以上,拥有一线Java开发经验的专家老师(DDD 专家张逸、服务端专家梁桂钊、软件系统架构专家王前明、译者陈德伟)为本书重点章节(高度贴合实际业务且易犯错的内容)录制精讲视频,帮你有效总结Java开发精要。
(上图为ON JAVA导读指南节选内容)
3
流畅阅读,精准还原原作神韵
引进外版技术书经常被诟病的一点就是翻译质量,相信这也是很多读者最关心点,这同样也是我们最为重视的问题。
4位译者通过公开竞稿,从200多篇试译稿件中脱颖而出,均具备15年以上Java从业经验,有长期阅读英文著作的习惯,中文功底扎实,语言表达流畅。
为了进一步保证翻译质量,我们邀请了来自行业内的20位一线Java开发者参与本书的审校工作。并提前半年向部分读者开放出版,结合第一批读者的阅读反馈进一步进行修订。
借用图灵译者王明发老师的话来说,“没有趋近完美的译文,如果没有期限,可以改到天荒地老。” 诚然,译文质量的好坏见仁见智。如果之后您在阅读中遇到译错之处,也请大家在图灵社区多多提交勘误。
4
业内专家高度赞誉
On Java 8 的中译版措辞精准,如实还原原作神韵。Bruce Eckel深入浅出地讲解了Java语言的设计原理,值得所有Java开发者一读,尤其推荐给刚入行不久的Java开发者,因为本书能够清晰地解答他们在业务开发过程中遇到的诸多疑问。
——周经森(Kingsum Chow),阿里CTO线研究员,JCP执行委员会委员
时至今日,Java这门企业级应用语言已走过26个年头,2014年发布的Java 8无疑是Java技术演进历史上的里程碑事件。《On Java 中文版》是Bruce Eckel时隔15年,继Thinking in Java之后的又一力作,基于Java 8,同时增加了Java 11 、17的相关内容,结合大量的源码实例,讲解了各种设计原理与实现权衡,使读者知其然而后知其所以然,很适合各个层次的Java开发者阅读。
——李三红,Java Champion,阿里云程序语言与编译器技术总监
市面上讲Java编程的书有很多,《On Java 中文版》是其中较为独特的一本“入门”书。初读可能会被它的篇幅和稍显晦涩的内容中途劝退,但如果有勇气重读,一定会从中受益。本书全面系统地介绍了Java核心知识,更重要的是,从编程语言设计的独特视角,以产业实践的得失为鉴,让读者不仅掌握体系化的知识点,而且能够切身体会软件设计的哲学与方法。透过现象看本质的能力一定程度上决定了职场高度,相信本书同样可成为Java开发者职场进阶的有效助力,值得不同阶段的开发者反复翻阅。
除以上,针对书中作者的某一观点,我持保留态度。今天的互联网大厂无一例外,所构建的Java应用规模都是超出想象的,绝不能用“普遍”“简单”来解释,其中的生产力和扩展性等核心能力是不可替代的。
—— 杨晓峰,Tencent JDK负责人
相信很多Java开发者都是通过阅读Bruce Eckel的经典书Thinking in Java,学会并爱上Java语言的。《On Java 中文版》这本书全面讲解了Java语言的精要所在,很高兴看到Bruce向书中补充了从 Java 9 到 Java 17 的新语言特性,完整呈现了Java语言的相关重点内容。这本书既涉及函数化编程、模块化技术、变量类型推断,也涉及record记录、sealed密封类和接口等新内容。边阅读、边调试代码、边思考设计原理和实现方式,Java这杯咖啡让人陶醉。
——张建锋,永源中间件总经理
十年前,当我还是实习生的时候有幸拜读了本书作者写的Thinking in Java。由于书很厚,我和一位同事还将书撕成三份,一份放在公司看,一份放在家里看,还有一份随身带着看,反复详读不下三遍。万丈高楼平地起,我一直认为夯实基础是刚入行几年的开发者最重要的事情!十年之后,Java经历了JDK6、7、8和9等多个版本的演进,本书与时俱进地增加了函数式编程、流和反射等JDK新特性。
——方腾飞,蚂蚁集团高级技术专家,《Java并发编程的艺术》作者
新书首发,我们为图灵老粉申请了10元购书补贴金,欢迎享用,祝早安~~
往期回复:
60岁代码匠的几篇小作文,解决了大多数程序的迷茫(上)
60岁代码匠的几篇小作文,解决了大多数程序的迷茫(下)
科幻电影里的超能力?那不就是并发嘛
是不是“异常”让我的脑子糊涂了?