时光一晃又是一年,尽管近年来 Java 一直被唱衰,但这丝毫也不妨碍它成为 2021 年十大技术热词之一。Java 诞生至今已经 26 年了,相较于部分起步较慢的编程语言,Java 自问世起,其“一次编写,随处运行”的特点便很快受到了 IBM、苹果、甲骨文等科技巨头的欢迎。
在 Java 被“炒作”的巅峰期,它甚至被誉为“一项会极大影响微软未来的技术”——利用 Java,可创建能在所有操作系统上运行的桌面应用程序,即开发人员不必再为了生存只能专注编写 Windows 程序。
在此形势下,1996 年 9 月的某一天,微软浏览器部门主管向时任微软 CEO 的比尔·盖茨详细解释了 Java 给微软带来的威胁,并恳切提醒道:“Java 绝不仅仅是一种语言,它是 COM 的替代者(COM 即 Componet Object Model,在 Windows 中大量使用的编程模型)!”
从此前公布的资料来看,比尔·盖茨虽然第二天就看似冷静地回复称应先了解 Java 对微软操作系统的影响何在,但本周四 @TechEmails 在推特上公布了当时的更多细节:1996 年 9 月 30 日晚上 9:36,比尔·盖茨给当时身为微软 CTO 的 Nathan Myhrvold 发了一个邮件,主题为“Java 运行时成为操作系统”,并表示“我真的为此失眠了”。(注:Nathan Myhrvold 曾在微软工作 14 年,于 2000 年辞职,后与 Edward Jung 共同创办了美国知识风险公司 Intellectual Ventures,担任 CEO 一职。)
从邮件中可以看出,不论是之前浏览器部门主管的恳切提醒,还是当时 Java 盛行下开发者的热情,都令比尔·盖茨感到无比焦虑:
“我很担心 Java/Javabean 和其运行时到底会发展成怎样、会让多少人兴奋。我真的在这个问题上失眠了,因为随着转向更多基于服务器的应用程序,似乎会让人们易于使用我们竞争对手的操作系统。
我很想听听你对此的看法。你认为我们有什么防御措施来应对这种情况?我实在没有想出什么能解决这种情况的方法,这削弱了我的创造力。”
第二天,即 10 月 1 号,Nathan Myhrvold 就回复了一封超长邮件,开头明确表达了他的看法:“我承认这是一个进退两难的问题,但它还没有严重到会让你失眠的程度。”当时 Java 尚在起步阶段,而 Nathan Myhrvold 认为,从“商业”角度看来,人们对其有些“过度炒作”了。
诚然,Java 的出现为人们提供了许多新鲜感:可以用它做出很棒的网页、程序员有新东西可以学、推动相关书籍的售卖、给软件工具公司提供一种发布新开发工具的方式…在这之中,肯定会有人获得成功,从而吸引越来越多人加入 Java 生态,跨平台的诉求会愈发高涨,最终对微软造成极大的压力与困境——但 Nathan Myhrvold 指出:“新技术的确会杀死旧业务,可这不会发生得那么快,在此之前我们还有很多机会来挽回局面。”
因此,Nathan Myhrvold 在邮件中向比尔·盖茨宽慰道:“在这场战斗中,作为被挑战方自然会有不舒服的感觉,但我们绝不能惊慌,因为焦虑情绪对实际业务和收入问题无甚裨益,我们不能让感性问题过多地影响我们的思考。”
不过 Nathan Myhrvold 补充道:“这并不是说 Java 不重要,相反 Java 是非常重要的,只是我认为你把重点错放在了还未成型的威胁上。我们正面临失去一个新市场的危险,而这个市场将快速增长。”所以与其将时间浪费在无谓的情绪上,立刻做出改变并行动起来是最好的解决方法。
结合当时局势及微软自身情况,Nathan Myhrvold 列出了以下三点必做事项。
1、用微软自己的方式来显著改善网页,包括继续“拥抱和扩展”以及创造一些激进的新方法来改进网页或构建 Web 应用程序。
其中,“拥抱和扩展”指的是新 Java 工具(如 J++,微软实现 Java 的开发套件和运行时环境的统称)层面,但 Nathan Myhrvold 认为将鸡蛋完全放在这个“篮子”里也并非明智之举,这可能会引导微软放弃其真正的优势,因此在这过程中,微软需想出其他新方法来提升自我。
2、开拓其他途径来参与新市场,想出一些能振兴互联网的创意。
这个“创意”并不一定需要什么复杂技术,更多是依靠创造力寻求新机遇的一种方式。在邮件中,Nathan Myhrvold 举了两个例子,分别是“虚拟世界”和“做服务器应用或网络事务的新方法”——在此不得不感慨 Nathan Myhrvold 极具前瞻性的眼光:1996 年认为会振兴互联网的“虚拟世界”正预言了当前“元宇宙”、“AR/VR”爆火的趋势。
3、继续投资微软的核心业务资产,尤其是 Windows 运行时(WinRT)。
Nathan Myhrvold 对这一点的解释为:假设 Java 真的成功且完全跨平台,那人们为什么要选择 Windows 而不是其他系统呢?这必将取决于系统的其他方面,即非 Web 维度对用户选择系统也十分重要,这也是微软的优势所在,需加大投入保持领先地位,不要因为 Java 可能带来的冲击就自乱阵脚。
在这点上,Nathan Myhrvold 同样给出了一些具体措施:
必须成为多媒体领域的领导者。如比 SGI 和 Mac 更好的图形/视频/音频最佳创作平台、比 Ultra64 和 Playstation 更好的最佳游戏平台等。
进一步保证产品易用性。例如须确保 PC 即时启动、具有自我配置、自我诊断等功能。这注定会带来许多额外的工作,但同时也会收获意外的奖励。
利用 Web 给旧应用提供新功能。如“我的工作空间”这一概念,可以完全抽象网络上的存储,这对用户来说将是一个巨大的转变——因为存储抽象是当时 PC 中最难实现的东西之一。Nathan Myhrvold 指出:“如果我们基于 STORAGE(即文件系统 API)执行此操作,则可以缩短向基于其他 API 或协议分发的长期迁移过程。”
在邮件最后,提出以上长篇建议的 Nathan Myhrvold 调侃道:“我也不知道这样是让你少担心了还是更担心了。”但他始终认为,即使 Java 盛行可能会给微软带来严重影响,但“我们远比想象中有更多的选择,且有实力创造一些任何人都难以匹敌的终端用户价值”。
此后,微软与 Java 开发方 Sun 公司可谓是“纠缠多年”:一会 Sun 公司以“歧视使用 Java 软件”为由起诉微软,一会微软又在 Windows XP 中故意不安装 Java 软件。但到最后,微软还是逃不过“真香定理”:2018 年微软旗下 IDE Visual Studio 开始支持 Java 开发;2019 年微软宣布加入 OpenJDK,拥抱 Java 技术。
在 @TechEmails 公布以上比尔·盖茨的提问及 Nathan Myhrvold 的回复截图后,除了对当年微软应对 Java 的细节有更深刻了解外,许多网友也对 Nathan Myhrvold 极强的技术洞察力感到钦佩:
“哇,所以 Nathan 在1996 年就预测了 metaverse(“虚拟世界”)和云(“存储抽象”)。”
“这是一次很棒的交流。你可以看到盖茨对获胜的‘不健康’看法,而 Nathan 则旨在将盖茨重定向到产品价值层面,同时他对技术的发展也很有洞察力。”
也有人感慨非常“理解”比尔·盖茨的感受:“放心,人们至今还在为 Java 失眠呢。”
参考链接:https://twitter.com/techemails/status/1478785899009875968?s=21