自从Java出现后,Java就面临了一个(并且显然是无法调和的)推动其传播和控制其发展的冲突。Sun还远不够开放。Sun曾经有两次似乎要让Java标准化(一次是ISO,最近的是ECMA),但是并没有。然后Sun宣布它将在10月开放StarOffice的代码。
因此当我最近发现微软正在考虑开放其新发布的C#语言和CLI(类似于Java VM.的解释器) 源代码时,可以想象到我是如何的吃惊。所有这些信息可以在两周前的ECMA的 TC39 技术委员会的一次会议上找到。 ECMA 是一个国际信息和通讯标准组织。TC39的专业是 脚本语言,它主要的成果是 ECMAscript, 以前叫做JavaScript。除了已被证明的效率以外,TC39现在将因7月13日的会议而出名。在这个会议上,微软的代表询问它是否考虑收起标准化C#和 CLI 处理。微软的代表明确地说他们希望C#和CLI在更多的平台上运行,包括Solaris,AIX以及Linux 。
C#不是Java ,但是它们是很相像的,它从C++而来的。真正的杀手是 CLI,它是语言无关的。C#只是能被编译进 CLI 的一种语言。据微软说,15种语言的CLI正在开发,包括Perl,Python和Visual Basic。如果CLI成为一个ECMA标准,这就给多平台的开发者提供了很有趣的工具集。如果C#和CLI作为一个组合取得成功,Java的未来就大为不妙。
伴随着C#和CLI的不都是光明。根据Java的经验,光有编译器和VM是不够的,CLI还需要类库,作为每种语言运行支持的标准的,因为不同的语言有不同的基本性能。
开放不足以使CLI获得成功,要让今天在 Java 上工作的开发者也转过来,它要做得更多。通过暗示要公开C#和CLI的代码,使之成为标准,微软把一块热山芋扔到了Sun的手里。走着瞧,有好戏看了。
| 本栏首页 | 更多文章 |