两封微软内部邮件公开,比尔盖茨被 Java 折磨到失眠
作者 | 云昭
1996年,Sun、Netscape与微软开战。在9月的一个周一的夜晚,盖茨把他对Java的恐惧敲成了电子邮件,发给了他的老伙计,彼时的首席技术官Nathan,征求建议,后者凌晨给出了非常有建设性的回复。
这位兼具商业和开发头脑的天才,彼时是如何迎接Java与Web时代的呢?在新时代出现苗头之前,嗅觉灵敏的商业天才和CTO又是如何思考的?
技术更迭,对于IT行业而言,从来都是不新鲜事。本文希望通过两位技术天才的邮件,能给大家带来一些有益的帮助。
01
比尔盖茨:Java运行时成为了
操作系统,我很担心
From: Bill Gates
Sent: Monday, September 30, 1996 9:36 PM
To: Nathan Myhrvold(时任微软 CTO)
Cc: Aaron Contorer(曾任微软 C++ 总经理)
Subject: Java runtime becomes the operating system(Java 运行时成为操作系统)
我非常担心,Java/Javabeans的所有运行时工作太优秀了,这将会给业界带来太大的兴奋。我真的在这个问题上睡不着觉,因为随着越来越多的基于服务器的应用程序的发展,人们似乎可以很容易地使用具有竞争力的操作系统。
我很想了解你对此的想法。在进一步的工作之前,你会建议我们对此采取什么样的防御措施?当然,我还没有想出足够的办法来让自己放松,这件事在削弱我的创造力。
02
Nathan的回信
不必失眠,办法还是有的
From: Nathan Myhrvold
Sent: Tuesday, October 01, 1996 12:05 PM
To: Bill Gates
Cc: Aaron Contorer
Subject: RE: Java runtime becomes the operating system
我同意这是一个两难的问题,虽然十分棘手,但程度不至于令你为此失眠。这里有一些关于这件事的快速思考——我也会花更多的时间。
首先,这次Java带来的兴奋过度了——至少从“商业”的角度来看。目前,Java正在向真空扩张。它可以让你制作很酷的网页,这对人们来说是一件很有吸引力的事情。它为程序员提供了学习新知识的机会,为人们提供了销售书籍的新途径,为软件工具公司提供了发布新开发工具的途径等。
正如你所看见的,这种广泛的兴趣可能会演变成一种自我价值实现的浪潮,因为正是程序员的专注创造了程序。而其中一些程序将会成功,这恰恰会促使更多人加入到这一浪潮。然而,与此同时,你必须保持平衡的观点。
我认为Sun真正从我们手中夺走OS特许经营权的风险,要远低于他们贬低整个业务的风险。他们非常想抛弃现在的一套,而且有太多跨平台的狂热者,他们很难将这种热情用于单一平台。在极限情况下,他们可以使网络完全不受操作系统的影响,但仍有其他因素会激励一个平台对另一个平台。
从长远来看,它们可能会让我们越来越难以跟上潮流。即使世界是跨平台的,我们也有更多的负担,更糟糕的实施,无法跟上。然而,这不会很快发生——我们会跟他们再进行几轮战斗。
新的Java应用程序不会很快对传统PC软件构成可信的威胁。认为他们是疯子。新事物从来不会像人们所说的那样对旧世界构成威胁。看看大型机与PC的对比。我们花了二十年的时间,尽管如此,IBM仍然拥有数十亿的大型机收入。酷炫的新技术总是迅速扩展到新的领域(真空区域)。专家们总是说,这会扼杀老企业——虽然最终会是这样,但不会像他们所说的那样快。
在一场战斗中,成为现任者而不是挑战者是一种新的、不舒服的感觉。然而,我们不能恐慌。当前的感知战离实际的业务和收入问题还有很长一段距离,我们不能让感知问题过多地影响我们的思维判断。
这并不是说Java不重要。它非常重要(只是不要失眠!)我认为你关注的是错误的威胁。我们有可能失去一个新的市场,这个市场的增长速度确实非常快。这对我们来说,是一种交易,但它不同于对我们核心资产的直接假设,我们的反应也必须有所区别。
显然,要做的事情有如下几件:
提供我们自己的方法来显著改进网页
-
继续“拥抱和扩展”——无论是在新的Java工具(如J++)层面,还是在我们更广泛的浏览器策略层面。
-
创建一些激进的新方法来改进网页或构建Web应用程序。我认为把我们所有的鸡蛋都放在“拥抱和扩展”的篮子里是一个很大的错误。这种想法将引导我们放弃我们可能拥有的任何真正有吸引力的优势。过度依赖“拥抱和扩展”,会导致这样一种局面:我有时称之为“无情地争取第二”,这对赢者通吃的世界没有太大帮助。
这里,我所说的“激进”,更多的是概念上的,而不是技术上的——即,不是言语或其他真正困难的东西。Java是一种可悲的技术。我们这里不需要高科技——我们需要一些技术,但主要是我们看待它的方式。
开拓其他方式参与新市场
只有一种资产很重要,这是非常罕见的。见鬼,看看Netscape和Sun,它们都具备一个有吸引力的资产,这仍然是Web的早期阶段。还有其他技术也非常重要,我们应该尝试拥有其中一项,即使它的方向完全不同。
关键是要想出一些能被互联网浪潮所鼓舞的东西。再次强调,这不一定是一个非常困难的技术问题,它更重要的是要有创造力并找到机会。这里有一些例子(没有完美的)。
-
虚拟世界,可能就是这样一件事。
-
做服务器应用程序或做网络交易(非常狠辣)的新方法,可能就是这样一件事。
我这里没有我想要的那么多例子,但我非常确信,如果我们真的专注于这个领域,我们可以想出一些东西。
继续投资我们的核心业务资产——在本例中是Windows运行时
全球99%的软件收入仍然基于Windows应用程序,利润超过100%。如果我们让Windows的非网络属性下降,那么我们将真的陷入困境。我担心Web上的狂热程度,以及对我们的核心业务只是间接受到攻击的误解。我们目前的路线和速度忽视了我们的最佳途径。
我们需要Windows成为用户可选择的最具吸引力的平台。理想情况下,这意味着我们在每个类别中都会获胜。您担心我们只会在Java类别中并列,因为Javabean和其他运行时将使跨平台真正运作良好。我认为,我们应该尝试在Java世界中与拥抱和扩展相结合(或获胜)。然而,在这样做的同时,我们绝不能让Windows在其他非Web维度上输掉,这些维度对用户选择系统很重要!用户的系统选择不仅仅局限于Web,还在于那些我们拥有巨大优势的领域。
换言之,假设Java是完全成功的,并且是完全跨平台的,那么人们为什么要选择一个系统而不是另一个系统呢?这一切都取决于其他领域。
以下是一些值得尝试的做法:
-
我们需要成为多媒体领域的领导者——这意味着要制作非常酷的音频和视频。我们希望以DVD为主导,并使其易于使用。我们必须成为最好的游戏平台(比Ultra64或Playstation更好)。我们希望成为图形/视频/音频创作的最佳平台(优于SGI或Mac)。
-
防止在便捷使用时出现障碍。个人电脑必须是即时启动的,它们必须超越即插即用,更加“自配置”,必须“自诊断”。没有技术上的理由证明PC不应该是最好的用户体验——它比那些假想的网络终端更好。然而,这需要努力才能实现。这也需要那些网络终端的人做一些工作,但就我们现在的情况而言,有不小的负担,这会给我们带来额外的工作,但也会带来额外的奖励。我们必须这样做。
-
利用web为旧应用程序提供引人注目的新功能。这里的关键示例是“我的工作区”概念,即完全抽象网络上的存储。这对用户来说将是一个巨大的变化——存储抽象是当前PC中最难使用的东西之一,我们可以让这一切消失。如果我们基于STORAGE(即文件系统API)来实现这一点,那么从长远来看,它可能会缩短基于其他API或协议的分发–存储将会带来最大的好处。
坦率地说,我担心我们在这方面做得不够,因为我们过度关注Web。我们需要以最终用户为中心的人,来真正让我们的系统变得很棒。我们还需要进行实施技术的转变(到NT)和文化/人员转变(到Allchin的团队,该团队历来更关注底层技术,而不是最终用户的东西),这一事实阻碍了我们的发展。
要实现这些转变,同时保持平台的活力,这会是一个巨大的挑战。苹果公司就是一个令人堪忧的例子。他们在非Mac产品(Kaleida、Sweet Pea/Pippin、Taligent、Newton…)上浪费了他们的创造力,他们将Mac团队与技术转移(到Power PC)联系起来。但苹果跟我们不太一样,因为西弗伯格和路德维希所做的Web工作比苹果所做的要重要得多。然而,我仍然担心我们对核心资产的投资不足。好消息是,我们确实有很多人可以关注这些问题,如果我们这样做,我们可以创造一些其他人难以企及的最终用户价值。
我不确定我的这些想法,是让你的担心减轻了还是加重了。这是一个严重的问题,但我认为我们有更多的选择——尤其是上面的2和3。
注:本文档来自Comes v.Microsoft(2007)
03
背景
1995年,Java诞生。彼时,Sun、Netscape等新兴公司迎来了高光时刻。“Web”时代的苗头正在出现,JavaScript的诞生就是一个例子:
NetScape于1995年首次公开募股,在“浏览器大战”中与微软开战,他们认为在浏览器之外还需要更多的东西。1995年4月,Netscape和Sun宣布了一项包括Java在内的技术合作协议。10月,Netscape发布了他们的2.0测试版,其中包括Java支持和对他们内部开发的脚本语言(Mocha,后来的LiveScript)的支持,他们将其重新命名为JavaScript。
一年后,Sun首席执行官McNealy将Java和JavaScript在web浏览器中的结合视为直接访问桌面的一种方式。他认为Sun将成为后端硬件的来源,而Netscape将提供客户端应用程序。就在那时,他从“Java之父”高斯林手中接管了Java,并组建了[JavaSoft]在Sun的分部。
McNealy与比尔盖茨之间的战争拉开帷幕。
这时候,微软办公室里的天才们,看见了无数狂热的Java爱好者,都大为震惊,尤其是比尔盖茨。他甚至为此彻夜未眠。
04
后记
Nathan Myhrvold邮件中所说的这种“拥抱和扩展”的心态,最终导致了1997年Sun和微软之间的一场非常大的诉讼,直到2002年才得到解决。而从微软来看,最终C#成为了解决Java威胁真正的“答案”。
本文文字及图片出自 程序员的那些事
你也许感兴趣的:
- 【外评】不要把 Rust 写成 Java
- “甲骨文牌”Java正在死亡
- 您现在可以像运行 Python 一样运行 Java
- 从 Java 8 迁移到 Java 17 (二):Java 中值得注意的 API 变化
- 从 Java 8 迁移到 Java 17:新功能大汇总
- Oracle 再夺 Java 命?大公司用 Java 要小心了!
- 【程序员搞笑图片】java haters
- Java 22 新功能特性及示例
- Java 22 中最令人兴奋的 3 个功能
- 【译文】Java 21 – Kotlin 是否正在消亡?
你对本文的反应是: