| Q: |
如果你不必考虑和C兼容,那么你设计的语言会不会就是Java? |
| A: |
不,甚至不会接近Java。如果有人坚持要把C++与Java作比较,我建议他们读一下The Design and Evolution of C++(D&E),他们可以看到为什么C++会是现在这个样子,然后按照我对C++设立的设计标准来衡量两个语言。这些标准显然和Sun的Java小组设立的标准不同。尽管语法上很相象,C++和Java是截然不同的两个语言。在很多方面,Java更接近Smalltalk,而不是C++。
像大多数新语言一样,Java的很多相对简单性部分来源于错觉,部分来源于功能的不完备性。随着时间流逝,Java会明显变得更大更复杂,它的大小会增加二到三倍,和实现相关的扩展功能和库也会有很大增长。这是每一个商业上成功的语言的发展方式。不信你可以看看任何一个你认为取得广泛成功的语言。我没有看到过任何例外,这种现象自然是有原因的。[这是我 2000 年之前写的;现在请你看看 Java 1.5 预览]
Java不是平台无关的,它就是平台。就象Windows,它是一个专有的商业平台。也就是说,如果你为Windows/Intel平台或者Java/JVM平台写程序,你的程序都是为属于某个单独的公司的平台而写,从而被这个公司的利益所左右。虽然有人指出你可以用任何语言为JVM以及相关的操作系统写程序,但是JVM是强烈的偏向于Java的,它甚至还不如一般的对语言中立的VM/OS。
就个人而言,我还是坚持用具有相当可移植性的C++来完成大部分工作,而用不同的语言做其余的。 |
原文地址:http://www.research.att.com/~bs/bs_faq.html#Java
本文乃网上搜集得来,其版权归原作者和原出处所有。如有侵犯版权之处请与我联系,我将马上进行处理。