欢迎阅读本书。通过阅读本书,你将成为紧跟时代潮流的Java程序员,重燃对这一语言和平台的热情。学习过程中,你会发现Java 7的新特性,熟悉重要的现代软件技术(比如依赖注入、测试驱动开发和持续集成),并开始探索JVM上的非Java语言这个美丽新世界。
首先,我们来看看James Iry在他精彩的博文“A Brief, Incomplete,and Mostly Wrong History of Programming Languages”(简明、不完整并且漏洞百出的编程语言历史)中对Java语言的描述:
1996年,James Gosling发明了Java。Java相对繁琐、基于类,是支持垃圾收集、静态类型、单派发的面向对象语言,继承方式为实现单继承和接口多继承。Sun大肆宣扬Java的新颖性。
他对Java的描述基本上是在插科打诨,C#在文中也受到了同等待遇。但作为对一种语言的描述,这种方式也不赖。博文还有很多精彩之处,参见James的博客(http://james-iry.blogspot.com/)。没事的时候看看还是挺有收获的。
James的描述的确提出了一个很实际的问题。为什么我们还要讨论一种有将近16年历史的语言呢?它真的已经稳定,没有多少新东西或有意思的事情值得探讨了吗?
如果真是那样,本书就会很薄。事实是,我们依然在谈论Java,因为它的一大优点就是其在以下几个核心设计决策之上的构造能力,这些都已经在市场中获得了成功:
- 运行时环境的自动管理(比如垃圾收集、即时编译);
- 语法简单,核心概念相对较少;
- 保守的语言进化方式;
- 在类库中增加功能和复杂性;
- 广泛、开放的生态系统。
这些设计决策一直在推动着Java世界的创新,简单的核心使得开发门槛很低,而广阔的生态系统使得后来者很容易找到适合自己需要的现成组件。
尽管从历史趋势上来看语言的变化很缓慢,但这些特质使得Java平台和语言既强大又充满活力。Java 7仍然延续了这一趋势。语言的改变是演进式,而不是革命式的。然而,Java 7跟之前版本相比有一个主要区别:它是第一个明确着眼于下一次发布的新版本。根据Oracle有关发布的“B计划”,Java 7为Java 8的主要变化打下了基础。
近年来,JVM上非Java语言的崛起也是一个重大变化。这引发了Java和其他JVM语言之间的相互融合。现在有大量的项目完全运行在JVM之上(这个数量还在增加),而Java只是它们所用的编程语言之一。
多语言特别是涉及Groovy、Scala和Clojure语言的项目,是当前Java生态系统的一个重要因素,也是本书最后一部分的主题。