一直被唱衰的 Java,曾令比尔·盖茨“焦虑难眠”

2024-02-02 22:40

本文主要是介绍一直被唱衰的 Java,曾令比尔·盖茨“焦虑难眠”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

c77931208f2e4def6f7a35b5fd080339.gif

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

时光一晃又是一年,尽管近年来 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 一职。)

b067f204155077615b458ca509f0eb9c.jpeg

29f92e8afa3ac3a49bd0c61f7126dbcb.png

“这个问题并没有严重到令人失眠”

从邮件中可以看出,不论是之前浏览器部门主管的恳切提醒,还是当时 Java 盛行下开发者的热情,都令比尔·盖茨感到无比焦虑:

“我很担心 Java/Javabean 和其运行时到底会发展成怎样、会让多少人兴奋。我真的在这个问题上失眠了,因为随着转向更多基于服务器的应用程序,似乎会让人们易于使用我们竞争对手的操作系统。

我很想听听你对此的看法。你认为我们有什么防御措施来应对这种情况?我实在没有想出什么能解决这种情况的方法,这削弱了我的创造力。”

d613ad2acfd82f97b62a0413988a21b4.png

第二天,即 10 月 1 号,Nathan Myhrvold 就回复了一封超长邮件,开头明确表达了他的看法:“我承认这是一个进退两难的问题,但它还没有严重到会让你失眠的程度。”当时 Java 尚在起步阶段,而 Nathan Myhrvold 认为,从“商业”角度看来,人们对其有些“过度炒作”了。

诚然,Java 的出现为人们提供了许多新鲜感:可以用它做出很棒的网页、程序员有新东西可以学、推动相关书籍的售卖、给软件工具公司提供一种发布新开发工具的方式…在这之中,肯定会有人获得成功,从而吸引越来越多人加入 Java 生态,跨平台的诉求会愈发高涨,最终对微软造成极大的压力与困境——但 Nathan Myhrvold 指出:“新技术的确会杀死旧业务,可这不会发生得那么快,在此之前我们还有很多机会来挽回局面。”

因此,Nathan Myhrvold 在邮件中向比尔·盖茨宽慰道:“在这场战斗中,作为被挑战方自然会有不舒服的感觉,但我们绝不能惊慌,因为焦虑情绪对实际业务和收入问题无甚裨益,我们不能让感性问题过多地影响我们的思考。”

61f25a9e07a477e779b98c63e341ca1c.png

1996 年已预言“虚拟世界”的潜力

不过 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 技术。

53a5ab2bf87e33fc11e80a3fee6374c2.png

网友:“人们至今还在为 Java 失眠呢”

在 @TechEmails 公布以上比尔·盖茨的提问及 Nathan Myhrvold 的回复截图后,除了对当年微软应对 Java 的细节有更深刻了解外,许多网友也对 Nathan Myhrvold 极强的技术洞察力感到钦佩

“哇,所以 Nathan 在1996 年就预测了 metaverse(“虚拟世界”)和云(“存储抽象”)。”

“这是一次很棒的交流。你可以看到盖茨对获胜的‘不健康’看法,而 Nathan 则旨在将盖茨重定向到产品价值层面,同时他对技术的发展也很有洞察力。”

有人感慨非常“理解”比尔·盖茨的感受:“放心,人们至今还在为 Java 失眠呢。”

参考链接:https://twitter.com/techemails/status/1478785899009875968?s=21

29bd9da2daf3efdca385edd106046280.gif

d130a328bcac5ff18ad89f41f36e67c2.jpeg

 

b3ddb5c78f622377200e72eeac75c749.gif

 
 
☞云以致用·智效合一 | 第四届 Techo TVP 开发者峰会强势来袭!
☞七成清华毕业生进入体制内就业,华为腾讯等科企受青睐;苹果M1首席芯片设计师跳槽至英特尔|极客头条
☞被苹果“分手”后,英特尔华丽逆袭:新款酷睿 i9 碾压 M1 Max?

80f9a7c0e643fa88c2a73a17274950fc.png

这篇关于一直被唱衰的 Java,曾令比尔·盖茨“焦虑难眠”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/672196

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.