1996年,Sun、Netscape与微软开战。在9月的一个周一的夜晚,盖茨把他对Java的恐惧敲成了电子邮件,发给了他的老伙计,彼时的首席技术官Nathan,征求建议,后者凌晨给出了非常有建设性的回复。这位兼具商业和开发头脑的天才,彼时是如何迎接Java与Web时代的呢?在新时代出现苗头之前,嗅觉灵敏的商业天才和CTO又是如何思考的?技术更迭,对于IT行业而言,从来都是不新鲜事。本文希望通过两位技术天才的邮件,能给大家带来一些有益的帮助。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的所有运行时工作太优秀了,这将会给业界带来太大的兴奋。我真的在这个问题上睡不着觉,因为随着越来越多的基于服务器的应用程序的发展,人们似乎可以很容易地使用具有竞争力的操作系统。我很想了解你对此的想法。在进一步的工作之前,你会建议我们对此采取什么样的防御措施?当然,我还没有想出足够的办法来让自己放松,这件事在削弱我的创造力。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是一种可悲的技术。我们这里不需要高科技——我们需要一些技术,但主要是我们看待它的方式。只有一种资产很重要,这是非常罕见的。见鬼,看看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)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的分部。这时候,微软办公室里的天才们,看见了无数狂热的Java爱好者,都大为震惊,尤其是比尔盖茨。他甚至为此彻夜未眠。Nathan Myhrvold邮件中所说的这种“拥抱和扩展”的心态,最终导致了1997年Sun和微软之间的一场非常大的诉讼,直到2002年才得到解决。而从微软来看,最终C#成为了解决Java威胁真正的“答案”。参考链接:
https://www.tech-insider.org/java/research/1995/0411.html
https://www.tech-insider.org/java/research/1996/0109.html
- EOF -
关注「程序员的那些事」加星标,不错过圈内事
点赞和在看就是最大的支持❤️