第三版前言

正本基本是自己翻译,翻译绝对有错误,就是这么自信,看的时候,自己注意下,如果感觉有语句不通,那么可能就是我翻译的出现了问题,可以自己翻找原文对比下。

其中自己的见解,我写在脚注中。


1997 年,James Goslingjava 之父),将刚诞生的 java 描述为 蓝领语言 1 ,它是非常简单的。与此同时,C++ 之父 Bjarne Stroustrup 描述 C++ 是一门 多范式 的语言,设计的思路,故意不同于那些只支持单一方式实现程序的语言2Stroustrup 警告:

java 的相对简单性和大部分的新语言一样,它的简单性,一部分是幻觉,一部分是功能的不完善,所以看起来比较简洁、简单3。随着时间的推移,java 的规模和复杂性将显著增加。以后 java 的规模将会成倍或者三倍的增加,以及增加其依赖的实现和扩展。

现在,二十年过去了,公平的说,James GoslingBjarne Stroustrup 说的都是正确的。随着 java 添加了对许多东西的抽象表示:添加并行执行、添加迭代器、对时间和日期类的重构, java 变得又大又庞杂。

尽管随着 java 平台的发展,我的热情减退了一些,但我依然喜欢 java 。考虑到 java 日益增加的复杂性和规模,对最新的最佳实践的需求变得更加尖锐。我尽我最大的可能为大家提供了一个最佳实践 —— 《effective java》 第三版。我希望第三版继续满足需求,同时继承前两版的精神。

Small is beautiful, but simple ain’t easy 。


  1. 蓝领不是贬低的意思,主要是 java 诞生之初,James Gosling 希望树立一个 java 门槛低的形象,大家都可以学习用 。谁还不希望自己的孩子有出息嘛,但是出息之前,首先要被大众接受。 ↩︎

  2. 多范式的意思,一种编程语言支持多种写法,比如 C 是单一的支持面向过程的语言,java 则是纯粹的面向对象语言的,它们都支持单一范式,而 C++ 则支持面向过程、面向对象的编程方式,这里就是它的 多范式 的含义。 ↩︎

  3. 说的是 java 的简单是假的,是一种幻觉,它目前的简单,只是功能的不完整,以后 java 会同样变得复杂。 ↩︎

posted @ 2019-08-29 10:48  Yiaz  阅读(194)  评论(0编辑  收藏  举报