如果当时 Sun 没有起诉微软,而微软继续保持对 Java 的热情的话,Java 的现状会是怎样?

软件工程师、主攻高级编程语言虚拟机的设计与实现

93 👍 / 4 💬

问题描述

在Effective Java里看到了这个问题,很想听听大家对这个问题的看法,大牛们都出来说说看?

我觉得这很难回答,因为这个假设很难成立。

首先Sun不可能不起诉微软:当时的Sun不但对微软态度很恶劣,对其它partner的态度其实也很恶劣。简单说就是“Java is the one true platform”,然后“Java belongs to Sun”,“every feature you added to Java belongs to us”。楼主如果有机会看到当时的伙伴协议的话大概就不会下这个假设了⋯

其次微软也不可能不做小动作:Java只是很新很潮,但并不够“好”。放在Windows上用假如不能跟COM交互的话就像残废的一般。添加Raw Native Interface(RNI)、delegate类型都是不可避免的。最后还是得走到我们知道的历史的那一步⋯

题主可能会想问的另一个问题是:为啥IBM也做小动作但是没事?

大部分Java partner都是基于Sun的JDK来定制开发。Sun给什么JVM,大家就在它的基础上把自己平台特定的部分实现出来。但是IBM版的JVM很快就变得跟Sun的非常不一样了,而且还到处说他们的JVM如何比Sun的好;后来干脆整个JVM换了用自己从头实现的。为啥他们没事?

一方面他们表面上的态度比微软好,另一方面IBM在Java partners里也是比较特别的,对Java平台的影响力从一开始就很大,贡献了某些部分的原始设计(例如Java的包命名规范、Java核心库的i18n部分,来自IBM收购的Taligent公司),所以Sun一直也就不对IBM的小动作说啥。