时间回到 1990 年 12 月,一个叫做 帕特里克·诺顿 的大佬被他公司 Sun 开发的 C++ 和 C语言编译器搞得头大,主要是因为当时 C语言 对一些硬件和系统的支持性并不好,导致一些 API (函数) 特别难用。在这之后,他又和公司另外几位大佬开展一个名为 Green 的计划(之前被称为 Stealth 计划),其中一位大佬就是被称为 “Java 之父” 的 詹姆斯·高斯林。几个大佬高瞻远瞩,觉得未来是智能电器时代,所以决定开展用于电器领域的技术研究。
经过一番研究,大佬们发现 C++ 太复杂也不利于在不同的硬件上移植,并且由于 C++ 缺少垃圾回收,就是大佬他们用 C++ 写程序都容易出错(小编似乎找到了学不好 C++ 的理由了~),这样下去可不行。最初他们是想在 C++ 基础上开发一种新的面向对象的环境,**高斯林 **尝试修改和扩展 C++ 的功能,如能不能去掉难懂的指针,但是后来还是放弃了。不破不立,**高斯林 **决定创造一门全新的语言,并以办公室外的橡树(英文是 “Oak”)命名(小编不得不感叹大佬造轮子的能力~)。
经过大佬们 3 年(此时是 1993 年)没日没夜的开发,搞出来了 Green 操作系统、Oak 语言、相关的类库和硬件(这下软硬件都齐活了)。但遗憾的是,由于他们在和其他公司竞争电视行业的产品时都失败了,Sun 公司叫停了 Green 计划(好绿的计划)。
但大佬们肯定是对失败不甘心的(此时是1994 年),他们决定为 Oak 语言寻找新的出路,所以在几位大佬几天的激励讨(che)论(dan)之后(历史上很多协议和方案其实都是大佬们扯淡之后制定出来的,而我们普通人扯淡啥都出不来,可能这就是大佬吧,嗯~),最后试着让 Oak 语言搭上万维网的快车,将技术应用到浏览器中,为此 诺顿 大佬就撸了个浏览器(羡慕大佬真是想撸啥就撸啥,不像小编我,只会撸**)。后来他们准备在自己公司召开的 SunWorld 大会(此时是 1995 年)上向大家公布 Oak 语言和配套的浏览器,但是却发现 Oak 这个名字早就被一家显卡公司注册了,所以为了避免法律纠纷,就将语言改名为了 Java。
至于为啥改名为 Java,也存在争议,一种说法是大佬们编程时爱喝咖啡(也就喝咖啡这点我和大佬们一个水平,txtx),而 Java(爪哇) 岛上产的咖啡豆磨成咖啡特别好喝,所以 Java 语言的图标也是一杯热腾腾的咖啡。还有一种说法是 Java 源文件在编译后生成的 class(字节码)文件,前四个字节用十六进制表示是 “CA FE BA BE”,拼成单词就是咖啡宝贝的意思(看来这门语言和咖啡还真有缘),并用几位大佬名字的首字母缩写命名这门语言,最终得出了 **Java **这个名字(詹姆斯·高斯林,名字首字母是 J,在这门语言的诞生中起到了关键作用,被我们叫做 Java 之父)。下图为 Java 语言的吉祥物 Duke。
但是由于当时还是 网景公司(Netscape,主要贡献有 JavaScript 语言,一些 Web 技术(如 Cookie),浏览器引擎 Gecko)和 微软公司(M$ 公司(这里字母没打错),这个就不多介绍了) 的浏览器使用人数最多,所以大佬们就推出了能够支持其他浏览器的 Java 插件,这样其他浏览器也可以愉快的跑 Java 写的程序啦!(当时浏览器也就能显示 HTML,而 Java 程序能够运行在浏览器中做出一些动画着实让当时的人惊讶),这些Java程序被叫做 Applet。
直到 1995 年 5 月 23 日,Java 语言才算是正式诞生。为了满足你们喜欢看人家爆照的心理,我这里就给你们发一张 Java 之父 詹姆斯·高斯林的照片,这下你们该满足了吧,嘿嘿~。
(图为 2005 年夏天高斯林在 JavaOne 大会,老爷子现在还健在呢)
在这之后,由于 Java 语言的跨平台性和垃圾回收等优点,Java 很快便流行了起来。但将 Java 用在浏览器上做些小程序,这可满足不了 Java 大佬们的野心。所以在 1999 年,经过大佬们的一波讨论和开发,Sun 公司发布了三个版本的 Java,JavaSE 版本进军桌面软件领域,JavaEE 版本进军服务器开发领域,JavaME 版本进军微型设备开发领域(如手机)。当时 Java 在服务器端和手持设备上混的风生水起,很多网站使用 JSP 和其他 Java 技术开发。同时期也正是互联网发展的第一波,Java 自然也得到了广泛的传播。
之后 Sun 公司又不断发布了新版本的 Java(直到 Java6)。2009 年 Sun 公司被 Oracle 收购,在这十几年间,由于 Java 的开源和社区,Java 被很多公司使用,如微软、Oracle、IBM等。但微软偷偷修改 Java 代码,想在自己系统中捆绑 Java 平台赚钱,不过这样会使得 Java 变得不可移植。微软的行为自然是众多 Java 开发者不能容忍的,后来微软退出了 Java 领域,开发了自家的 C# 语言(一些说法是 C# 是在 Java 语言的基础上设计出来的)来替代 Java。IBM 开发了 Java 的 IDE Eclipse,因为软件开源免费,很快就俘获一批 Java 开发者的心,直到现在也被广泛用在 Java 开发中。Eclipse 翻译过来有 **日食,吞噬太阳(sun) **的意思,但其实 IBM 当时想吞噬的公司并不是 Sun,而是微软。但 Eclipse 这个命名被 Sun 公司认为是 IBM 蓄谋已久,想要消灭他们。当年想收购 Sun 公司的不止 Oracle 一家,这个命名的小插曲也导致最后 Sun 不接受 IBM 的收购,而给了 Oracle 公司(小编不禁感叹,要想过得好,还是要名字起得好啊!)。如果当时 Google 收购了 Sun,估计今天的 Google 更牛逼,也不用和 Oracle 公司因为 Android 撕逼了。
至于 Java 后面的历史就更精彩了,但由于篇幅,今天就不再继续介绍了。如果你对 Java 历史感兴趣的话,可以继续关注《技术趣味史》版块,我将在下周五继续为你带来 Java 相关的趣味史哦。