Lindholm:Java技术成功的原因之一,就是很清楚哪些不该做。我们得多问几个为什么:这项特性是不是必不可少?增加它会带来哪些开销?运算符重载是C++中一项极其强大的特性,但是它也大大增加了C++语言的复杂度,很多人都难以招架。Java在各种可能的权衡之中,做出了明智的抉择,找到了能力与需求之间的完美平衡点。 当然,Java也会发展,而且最重要的是,现在是开发者们在推动发展。Java增加泛型能力这件事,很好地展示了Java是如何通过整个开发者社群的参与,在权衡中决定正确的平衡点。关于增加泛型类型(generic types)的“Java规格申请”(Java Specification Request, JSR)已经进入JCP(Java Community Process)程序,而且已经开发了很长一段时间(参见 http://java.sun.com/aboutJava/communityprocess/之JSR-014)。现在,在JCP中,有超过80个JSRs正在讨论中,这充分体现了整个体系对开发者的积极反馈和高度合作,这正是驱动Java平台不断进化的动力。
发展 vs. 革新(Evolution vs. Revolution) C++是一种发展型的语言,Java和C#似乎更像是革新型语言(它们是从头设计的)?什么时候,革新型的语言才是必需的呢? Lindholm: Java技术并非凭空出世,反而更像是发展型的。Java所有的特性,在Java平台推出之前,都至少已经存在于另一种环境之中。Java的贡献在于,在众多的特性和权衡中,做出了合理的选择,使得产品既实用,又优雅。Java技术对于程序员的态度是:抚养,但不溺爱。
关于作者 Bjarne Stroustrup是C++的设计者和最早的实现者,The C++ Programming Language, The Design and Evolution of C++等书籍的作者。先后毕业于丹麦Aarhus大学和英国剑桥大学。Stroustrup博士是AT&T实验室大规模程序设计研究部门负责人,AT&T成员,AT&T贝尔实验室成员,ACM成员。
Tim Lindholm是Sun公司杰出的工程师。他是Java平台开发组最早的成员之一,负责Java中的线程、同步、垃圾收集和内存管理部分。他与人合著了The Java Virtual Machine Specification一书,目前致力于Java技术平台体系研究。