Java差点退出历史舞台,当时Sun几乎要放弃 原创
头像 马上去coding 2026-07-20 11:08:31    发布
484 浏览 8 点赞 4 收藏

如果说周五在YouTube首映的《Java故事》纪录片有一条贯穿始终的主题,那就是:即使是最重要、最流行的技术,也往往出身卑微。这里说的是一门最初为争夺机顶盒市场而失败的语言,在大型大会首秀前几天还经历了一次大规模重写。

如今,Java常年位居TIOBE编程语言流行指数前列,在大规模企业应用中仍被广泛使用。

但在1994年的某个时刻,Sun Microsystems几乎要放弃这个项目。Tim Lindholm被雇来完善后来成为Java的虚拟机运行时,他回忆道:"我是整个项目散架前最后被招进来的人之一。"

但这不会是Java最后一次比质疑者活得更久。

Java编年史

如果你觉得关于编程语言的专业纪录片听起来很耳熟,那你可能看过关于C++、Python或React的那些。这些纪录片是科技招聘网站Honeypot.io为积累用户而资助制作的。

2019年,Honeypot被XING(后更名为New Work SE)收购。然而,创始人Emma Tracey对纪录片方向更感兴趣,她从New Work手中买回了制作团队,重组原班人马,将品牌更名为Cult.Repo(Culture Repository的缩写)。《Java故事》是这家新独立媒体公司的首个作品。

纪录片汇集了Java的许多核心人物,包括创建者James Gosling以及Oracle高级Java架构师Mark Reinhold和Brian Goetz。

如果说为Python缓慢的进展构建一段英雄之旅需要好莱坞式的叙事功力,那么Java简直就是一出真人秀级别的戏剧,其中一些情节正是这部纪录片所捕捉到的。

差点不存在的项目

Lindholm进入计算领域纯属偶然——明尼苏达的严冬逼使他离开帐篷,寻找更温暖的地方。他在伊利诺伊州阿贡国家实验室获得了一份实习机会,在那里因实验室使用Prolog而积累了虚拟机的早期经验。

他的目标不是做程序员,而是做数学家。"计算机科学是给那些做不了真正数学家的人准备的,"他说。

但他学会了实现Prolog的技艺。

"我学会了编写高质量的虚拟机,掌握垃圾回收和可嵌入性等技术,"他说。这些虚拟机经验让他先后进入施乐PARC,最终来到Sun。

1994年Lindholm加入时,他在一个名为FirstPerson的实验性"内部孵化"子公司工作。当时Sun靠向工程师销售高端工作站赚得盆满钵满,但公司希望为工作站和PC以外的设备开发软件。

FirstPerson的主要目标是时代华纳的一份合同——为电视机顶盒提供交互式视频点播软件。Gosling为该项目编写了一种语言和运行时,命名为Oak。

合同最终被迟到者Silicon Graphics(即SGI,Sun的竞争对手)拿下。时代华纳的项目后来挣扎了几年,于1997年被终止,对本已困境重重的SGI来说更是雪上加霜。

但当时,Sun对这次失败打击沉重,裁掉了FirstPerson的大部分员工。Lindholm才来一个月,对机顶盒项目并没有太多感情投入。"接下来做什么我就做什么,"他回忆道。

Sun只保留了12名工程师继续开发Oak,包括Gosling和项目经理Kim Polese。但对Lindholm来说,前景并不光明。

"我们就像被困在被炸毁的掩体里的难民,"他说。被裁掉的人把办公设备扔到走廊里。Lindholm在Sun办公室觉得自己就是"死肉",等着被裁。

转向Web

项目转向当时刚刚兴起的Web纯属偶然。团队中一位幸存的工程师一直在把玩新发布的Mosaic浏览器,他建议万维网应该成为Oak的下一个目标。这发生在Windows 95将互联网和网页浏览带给大众的前一年。

团队用Oak构建了一个名为WebRunner的Mosaic克隆版,可以运行动画。这就是后来Java Applet的前身。

此后事态发展迅速。Oak于1995年初更名为Java——据说是在致敬工程团队对咖啡的消费量。"它像火箭一样起飞了。简直疯狂。我们所有人都压力山大,"Lindholm说。

早期一波Web开发者正迅速发现用HTML创建网页的局限性——毕竟HTML只是一种标记语言。

Gosling和团队搭建了一个粗糙的原型,但让这个东西真正能用,落在了Lindholm和新雇来的Lisp专家Frank Yellin身上。两人负责商业级实现,确保Gosling构想的高级概念——如线程和垃圾回收——在真实世界中正常运行。Lindholm和Yellin后来共同撰写了最初的JVM规范。

当时的线程技术还很新。没有现成的库可以用来实现这一概念,Lindholm对此也知之甚少。

公司计划在1995年SunWorld大会上发布Java,这是JavaOne的前身。但运行时频繁崩溃。经过大量排查,Lindholm发现Java的线程模型"从根本上就是坏的。完全搞砸了"。

问题在于,SPARC处理器在执行指令时会收到系统中断。这导致了灾难性后果,因为系统无法恢复已从内存中刷新的状态,因此会"惨烈地死去"。

Lindholm意识到只能让中断在特定时间点发生。于是,在大会前三天,他重写了整个线程包。大会上,当Sun时任CEO Scott McNealy展示Java时,Lindholm坐在观众席上提心吊胆。幸运的是,重写成功了。

开源之前

Lindholm还负责了该语言的首次开源尝试——这比Eric Raymond让"开源"一词广为人知要早好几年。公司将Java运行时二进制文件作为免费下载提供,同时还把"源代码"免费发给任何提出请求的人。成千上万的人提出了请求。

纪录片讲述了一个故事:Java域名获得的流量如此之大——甚至超过了Sun.com本身——以至于Java团队私接了一条T3专线到办公室。这就是云时代之前的日子。

当时,Lindholm把开源代码视为一个不错的职业保险。万一被裁,也许别的公司会接手代码继续发展。他们还发现外部人员可以修复bug,甚至将软件扩展到其他平台。

不过,这个"源代码"计划并未正式化。Sun确实邀请过Richard Stallman来做演讲,但Lindholm回忆说,Stallman对Sun高管来说显得"太激进了"。Sun直到十年后才正式决定将Java作为开源发布。

颇具讽刺意味的是,Java Applet在Web上的采用并不算广泛,因为ColdFusion和Netscape的JavaScript项目最终承担了Web编程的重任。但Applet是通往真正舞台的门户——那就是后端服务器。

帝国来袭

随后,Microsoft开始关注。它将这个运行时视为对Windows本身的潜在威胁,尤其是对正在向企业市场渗透的初生Windows NT。

对今天的年轻一代IT人来说,很难夸大当时的Microsoft有多具攻击性和多强悍。1996年,Microsoft获得了Java在Windows上的授权,但随后增加了一些额外的API,同时拒绝支持另外一些API(还记得Microsoft的J++吗?)。Sun指控Microsoft的修改意在破坏Java的跨平台兼容性,引导开发者转向Microsoft的Windows特定实现。

长达数年的诉讼消耗了开发团队的精力,将资源从Java本身 diverted 开来。

"我花了数天在证词中宣誓作证谈论这件事,"Lindholm回忆道。争端最终以Microsoft通过一系列和解向Sun支付近20亿美元告终。"这对我们来说是个人恩怨,"他说。

一段疯狂旅程

纪录片继续讲述了这门语言随后几十年的发展历程,包括过度工程化的J2EE和Java EE 5时代、Spring框架带来的希望曙光、Sun的崩溃及被Oracle收购,以及OpenJDK发布后JVM语言的繁荣。

即便Sun销售基于SPARC的互联网服务器的核心业务因低成本Linux x86服务器的涌入而逐渐萎缩,Java对Sun来说仍是一项成功。Lindholm提到,Java团队规模增长如此之大,以至于接管了Sun的总部,最终不得不搬进了Apple的旧总部大楼。

但到2000年代初,Lindholm对Java的热情已被日益企业化的环境消磨殆尽,他跳槽到Google,在那里度过了接下来20年,直到今年早些时候退休。

回顾早期参与的经历,Lindholm坦言:"这其实有点随机。你永远无法预料生活中哪些部分会因为某种原因变得真正重要。"

其他人也认为Java是一段疯狂的旅程。

正如Java创建者James Gosling在纪录片中所说:"最让我对未来兴奋的是未知。很多事情会发生,而最有趣的往往是你永远无法预测的那些。"

©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
业界新闻
头像

马上去coding

我还没有写个人简介......

76

帖子

11

提问

237

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255