Java 的诞生过程

今天,Java 是世界上主流的编程语言之一,广泛应用于各个领域和行业。Java 历史悠久(近 30 年),说不定比许多 Java 程序员的岁数还大,所以不少开发者可能并不了解 Java 的诞生过程。
本文就带领大家回到上世纪 90 年代,看看 James Gosling 创造 Java 的历程。

 

Java 之父 James Gosling

即使 James Gosling 是公认的 Java 之父,但 Java 的成功显然不能全归功于他一人。萝莉控 Patrick Naughton、曾带领 Sun 成为微软头号对手的 Scott McNealy、Sun 首席科学家 John Gage 等人都是不可或缺的人物。可人们更倾向于历史故事中要有一位英雄式的人物,所以本文还是把主角光环戴在 James Gosling 头上。

 

Sun 的新机遇——机顶盒

早在 1991 年,Sun 就颇具前瞻性,提出要做电视机顶盒。让电视观众可以挑选、点播感兴趣的节目,使电视不再是只能“看广播的收音机”。

Sun 为机顶盒项目的研发团队提供了一个小型办公室,位于风景如画、绿树环绕的 Sand Hill Road 。而团队中的一名灵魂人物就是日后的 Java 之父——James Gosling。

 

Sand Hill Road,位于加利福尼亚州的门洛帕克

所谓的机顶盒其实就是一台小型的计算机,这个放在电视上的小盒子要足够小巧,这就意味着散热条件有限,因此要选用发热量小且只需较少外围元件(为了减小主板尺寸)的低端 CPU。也就是要采用单片机(微控制器)技术来实现机顶盒。

但每一种单片机的体系结构和指令集都不相同,为这个单片机写的软件在另一个单片机上一定是运行不了的。而且更大的风险是单片机本身更新换代非常快,1991 年又正值单片机蓬勃发展之际,因此很可能会陷入一种进退两难的局面——选定了某款单片机,经过两三年的研发,在即将量产前这款单片机却停产了。那怎么办呢?再换一款单片机在此之上重新设计,再经过两三年的研发,这款单片机又可能会停产。

Gosling 的团队首先要解决的问题就是,怎么防止这样的情况发生,怎么保证科研投入最后不会付诸东流。

Gosling 灵光一现

面对这个棘手的问题,Gosling 突发奇想,想到了用一门带虚拟机的新语言来抹平不同单片机硬件上的差异。

虚拟机相当于这门新语言的解释器,只需要针对每款单片机,都实现一个与之对应的解释器,就可以保证用这种新语言写的软件能够运行在不同的单片机上。

虚拟机还能带来另一个好处,就是项目初期甚至无须过多考虑硬件的规格,就可以开展软件的工作。研发团队可以在熟悉的 Sun Solaris 工作站上实现机顶盒的软件,前提是只需要为 Solaris 工作站实现这种新语言的解释器。等软件调试完毕,再在最后定型的那款单片机上实现一个解释器,就可以把软件无缝移植过去了。

Gosling 带领团队找到了正确的方向。Gosling 为这门新语言起名叫做 Oak,即橡树。为什么叫橡树呢,因为 Gosling 透过办公室的窗户就能看到一棵橡树,就是如此草率。

 

Oak 的语言规范

生不逢时的机顶盒

经过 3 年的不懈努力,基于 Oak 语言的机顶盒终于在 1994 年年初做出来了。但事与愿违,机顶盒竟然没有得到市场的青睐。

当时,即使是美国的有线电视公司的老板也接受不了“用户点播”,即 VOD 的想法。老板们固执地认为,电视是广播,我说什么用户听什么、我放什么用户看什么,哪能用户想看什么就看什么?

然而讽刺的是,仅仅1年后即 1995 年的上半年,VOD 就如火如荼地开展起来。

Sun 的机顶盒早问世了 1 年的时间,项目失败了。

绝处逢生,Oak 遇到 Web

虽然机顶盒项目没有为 Sun 带来收益,但 Gosling 团队很快走出了沮丧,抓到了新机遇。

1994 年 Web 已经渐渐流行起来了。Gosling 意识到他的 Oak 语言+虚拟机和 Web 浏览器有几分相似。

Web 浏览器能够下载并解析 HTML 文件,然后将网页呈现给用户。Windows、Unix、Mac OS 等不同平台上都有 Web 浏览器,因此相同的 HTML 页面即使在不同的平台上,也会呈现出(几乎)相同的视觉效果。

Oak 语言不也是如此吗?相同的 Oak 语言的代码可以运行在不同的 CPU/平台 上,且运行结果相同。既然 HTML 已经做到统一视觉效果这一步了,那能不能把 Oak 语言的程序加入其中,使得网页不仅仅是一个静态(内容不会随用户的行为发生变化)的页面,还能够在其中运行软件。

于是,Gosling 的团队重整旗鼓,制定了个两步走的计划。第一步,用 Oak 语言编写一个 Web 浏览器;第二步,在 HTML 里面加入 Oak,让程序可以在网页(浏览器)中运行。

说干就干,1995 年 Gosling 团队做出来了一款类似 NCSA Mosaic(当年普遍使用的 Web 浏览器之一)的浏览器,叫做 WebRunner[致敬电影《银翼杀手》(Blade Runner),之后改名为 HotJava]。WebRunner 不但可以解析 HTML 页面,还可以运行用 Oak 语言写的程序。

 

WebRunner(Hot Java)的界面

Oak 语言有了新的用武之地。

 

Oak 从此以后叫 Java

1995年,就在 Gosling 的团队即将发布 Oak 语言和 WebRunner 浏览器这一成果之前,又出了个小插曲——Oak 竟然是一个注册商标。

Oak Technology(OAKT)是一家美国半导体芯片制造商,Oak 是其注册商标。因此,Gosling 团队的 Oak 语言不能再叫 Oak 了,那叫什么好呢?

Gosling 开始东张西望到处找灵感。结果看见了同事桌上有一瓶咖啡,包装上写着 Java。Gosling 微微一笑,就你了。

自此以后,Oak 就改名为 Java 了,WebRunner 也顺带更名为 HotJava。

 

Java 咖啡

 

初次亮相

发布会上,Gosling 向台下的观众们展示了他们的 HotJava 浏览器,早已熟悉 Mosaic、Netscape 等浏览器的观众们自然觉得平平无奇。接下来,Gosling 说请看这幅图,图上面有个小球。观众们依然不为所动,不就一副图吗,其他浏览器里也可以显示图片啊。

就在此时,Gosling 开始用鼠标拖动小球,小球竟然跟随鼠标指针动了起来。鼠标指针到哪,小球就移动到哪。观众们瞬间被打动了,脑袋都跟着那个小球转动起来,小球到哪,脑袋就转到哪。

以今天的 Web 技术来看,一个随鼠标指针移动的小球实在是雕虫小技。但要知道,当时 JavaScript 还没有诞生(诞生于 1995 年 12 月),Flash 的出现则要更晚(1996 年)。据说当时还有一位记者捕捉到这一奇妙的互动,发表了一篇题为”It moved, They are moved”(小球一动,他们被打动了)的文章。

Java 的初次亮相大获成功,引起了业界对 Java 的广泛关注。

当时占市场份额最大的浏览器 Netscape 更是主动上门谈合作,希望在 Netscape 中也能执行 Java 程序。就在 Sun 的首席科学家 John Gage 在 SunWorld 会议上宣布,Java 的第一个公开版本(带有 HotJava 浏览器的 Java 1.0a2)于 1995 年 5 月 23 日发布的同时,Netscape 的执行副总裁 Marc Andreessen 随即宣布 Netscape 浏览器将包含对 Java 的支持。


1995 年 5 月 23 日,Gosling 团队兴奋地围坐在一台 FTP 服务器的屏幕前,像看股票行情一样看着不断出现的来自世界各地的下载者。

“快看,来了个巴西的”,一阵欢呼。

“嘿,又来了个墨西哥的”,又是一阵欢呼……

没过几天,FTP 服务器的线路爆满了。

Java 成功了。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90170.html

Like (0)
guozi的头像guozi
Previous 2024年6月5日 下午12:01
Next 2024年6月5日 下午1:34

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注