这是一个应该追溯到上世纪九十年代初的故事。
彼时,同样作为世界上名列前茅的软件公司——SUN,在初步呈现万夫莫开之势的微软面前还保留着做操作系统的愿望。而 Java,正是他们的攻城兵。出乎 SUN 的意料,在 C/C++开发工具市场早已无力对抗微软的几家知名公司都自愿加入这个讨伐微软的联盟中。其中不乏 Borland、Symantec,甚至 IBM 这些在当时开发者看来仍然保留一些市场导向力的公司。
此时的微软倚着刚到手的 C/C++ 开发工具市场,也深知自己在这方面已经没有对手,从而放弃了对新兴事物的警觉,甚至只是以敌对的态度排斥接触 Java。
回到战场上,虽然 SUN 自己的 Java 编译器质量很难让人满意,但 Symantec 和 Borland 相继推出优秀的作品拿下了大块市场,双方你来我往的技术升级斗争也大有回复往日元气的势头。Java 是如此地被非微软系开发者和微软竞争对手当作一舒怨气的突破口,以至于时值壮年的浏览器绝对霸权 Netscape 也决定在产品里支持 Java,从而与微软抢占下一个时代的软件市场话语权。
到这里,微软才意识到 Java 的地位。无论在开发者眼中是多么的“慢”,它离自己理想中 "Write Once, Run Everywhere" 的距离还有多远,Java 在这么多势力的推动下都以自己易理解、高度可移植的特性不断被更多人接受。微软决定以自己的方式做出回应,反击的领导者正是因 Borland 内部管理混乱而由盖茨游说加入微软的,Turbo Pascal(Borland 白手起家的基石)发明人 Anders Hejlsberg。
Anders Hejlsberg 作为前 Borland 技术奠定人,其实力自然不在话下。他对编译器技术理解之深让微软推出的 VJ++(Java 编译器产品及 Java 语言特殊实现)在第一时间就成为市场中编译速度最快,编译所得程序运行效果最好的产品。同时微软让自己的 IE 浏览器通过 VJ++支持 Java Applet 执行,一举减掉了 Borland,Symantec,以及 Netscape 的三分锐气。
前面提到,Java 是 SUN 试图用来建立操作系统的核心,微软当然不会用如此优秀的工具为它作嫁衣。很快,SUN 和同盟们发现 VJ++带有太多非标准的 Java 用法用以将开发者留在 Windows 平台上。这些开发者包括希望尝试 Java 的原 Windows 软件开发者,也包含原 Java 开发,但觊觎微软优秀工具的新生力量。微软和 Symantec 两大主力分别在自己的编译器中夹带私货,SUN 意识到自己对于 Java 的主导权,以及 Java "Write Once, Run Everywhere" 的初衷岌岌可危,随即呼吁使用 Java 的开发人员和企业抵制 VJ++。微软也在 Windows 系统中撤下对 Java 的自带支持予以还击。
故事到这里进入尾声,Anders Hejlsberg 将运用在 VJ++的技术融入到新产品中并进一步优化,分化为.Net 和 C# 成为 Windows 系统上最为重要的技术平台和开发语言,与 Windows 相互巩固,相互助力。而 Java OS,如你我所见,再无音讯。
在 VJ++的身上,我们不难看到 WinJS 的企图和命运,而同样由 Anders Heijlsberg 创造的 JavaScript 超集 TypeScript 是不是又像极了如今的 C# 呢。在 JavaScript 和 HTML 帮助下,Chrome、Mozilla Firefox 这样往日的浏览器都在试图成就自己操作系统的梦。流行浏览器内核和通用网页标准正在云服务流行概念的驱动下削弱用户对特定操作系统和应用运行环境的依赖。在 PC 操作系统增长趋于稳定成为现金牛后,微软势必要重新审视未来的几十年。所幸,TypeScript 仍然由技术沉淀深厚的 Anders Heijlsberg 操刀,与 WinJS 一样,两者的使用都不局限于 Windows 平台。更进一步,Mary Jo Foley 在去年末为我们带来的文章中说到,微软比“云操作系统”更超前的 Midori Bridge OS 项目并入操作系统部门由新领袖 Terry Meyerson 直接领导。Midori 同样是一个运作与不同操作系统之上的沟通平台——我们由此能看到微软正在积极打破以操作系统为最基层平台的传统观念来做上层布局,这个消息确实令人振奋。