C++之父评论C++与Java

C++之父评论C++与Java

  如果人们非要拿 C++ 和 Java 来作比较,我建议他们去阅读 The Design and Evolution of C++,看看 C++ 为什么是今天这个样子,用我在设计 C++ 时遵从的原则来检验这两种语言。这些原则与 SUN 的 Java 开发小组所持的理念显然是不同的。除了表面语法的相似性之外,C++ 与 Java 是截然不同的语言。在很多方面,Java 更像 Smalltalk。(Sun的培训教材清楚地写道:Java在设计上采用了与C++ 相似的语法,与 Smalltalk 相似的语义。所以可以说Java与C++是貌合神离,与Smalltalk才是心有灵犀。)Java 语言相对简单,这部分是一种错觉,部分是因为这种语言还不完整。随着时间的推移,Java在体积和复杂程度上都会大大增长。在体积上它会增长两到三倍,而且会出现一些实现相关的扩展或者库。这是一条每个成功的商业语言都必须走过的发展之路。随便分析一种你认为在很大范围内取得了成功的语言,我知道肯定是无有例外者,而且实际上这非常有道理。

  上边这段话是在 Java 1.1 推出之前写的。我确信Java需要类似模板的机制,并且需要增强对于固有类型的支持。简单地说,就是为了基本的完整性也应该做这些工作。另外还需要做很多小的改动,大部分是扩展。1998 年秋,我从 James Gosling(Java 语言的创始人)那里得到一份建议书,说是要在 Java 中增加固有类型、操作符重载以及数学计算支持。

  还有一篇论文,是数学分析领域的世界级大师,伯克利大学的 W. Kahan 教授所写的 How Java's Floating-Point Hurts Everyone Everywhere(且看 Java 的浮点运算如何危害了普天下的芸芸众生),揭露了Java的一些秘密。我发现在电视和出版物中关于 Java 的鼓吹是不准确的,而且气势汹汹,让人讨厌。大肆叫嚣凡是非 Java 的代码都是垃圾,这是对程序员的侮辱;建议把所有的保留代码都用Java重写,这是丧心病狂,既不现实也不负责任。Sun和他的追随者似乎觉得为了对付微软罪恶的“帝国时代”,就必须如此自吹自擂。但是侮辱和欺诈只会把那些喜欢使用不同编程语言的程序员逼到微软阵营里去。

  Java 并非平台无关,它本身就是平台。跟 Windows 一样,它也是一个专有的商业平台。也就是说,你可以为 Windows/Intel 编写代码,也可以为 Java/JVM 编写代码,在任何一种情况下,你都是在为一个属于某个公司的平台写代码,这些代码都是与该公司的商业利益扯在一起的。当然你可以使用任何一种语言,结合操作系统的机制来编写可供 JVM 执行的程序,但是 JVM 之类的东西是强烈地偏向于 Java 语言的。它一点也不像是通用的、公平的、语言中立的 VM/OS。私下里,我会坚持使用可移植的 C++ 作大部分工作,用不同的语言作余下的工作。

  “Java is not platform-independent, it is the platform”,B. S的这句评语对于 C++ 用户有着很大的影响,有些 C++ 高手甚至把这句话作为自己的签名档,以表明对 Java 的态度和誓死捍卫 C++ 的决心。 


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值