专栏首页编程心路技术趣味史-Java语言的身世

技术趣味史-Java语言的身世

Java

时间回到 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。

Duke

但是由于当时还是 网景公司(Netscape,主要贡献有 JavaScript 语言,一些 Web 技术(如 Cookie),浏览器引擎 Gecko)和 微软公司(M$ 公司(这里字母没打错),这个就不多介绍了) 的浏览器使用人数最多,所以大佬们就推出了能够支持其他浏览器的 Java 插件,这样其他浏览器也可以愉快的跑 Java 写的程序啦!(当时浏览器也就能显示 HTML,而 Java 程序能够运行在浏览器中做出一些动画着实让当时的人惊讶),这些Java程序被叫做 Applet。

直到 1995 年 5 月 23 日,Java 语言才算是正式诞生。为了满足你们喜欢看人家爆照的心理,我这里就给你们发一张 Java 之父 詹姆斯·高斯林的照片,这下你们该满足了吧,嘿嘿~。

(图为 2005 年夏天高斯林在 JavaOne 大会,老爷子现在还健在呢)

Java 之父-詹姆斯·高斯林

在这之后,由于 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 相关的趣味史哦。

偷偷说一下:如果觉得写的还不错,你的赞一点,小编就更开心了啦。

——本文转自我的微信公众号《编程心路》。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 技术趣味史-Java 各个版本的特性

    从 1995 年开始算起,Java 已经走过了20多个年头,也发布了十余个大版本,了解一下 Java 的不同版本的特性,以便在日常的开发中更好的使用。

    Wizey
  • 如何高效学习编程技术?

    通过这段时间的看书学习和对编程的思考,结合自己的亲身的学习经历,今天想和大家聊一聊如何高效学习编程技术。

    Wizey
  • 自己动手实现Java中的StringBuffer类

    在网上复习 Java 的基础知识,看到 String 和 StringBuffer 这里,简单的实现了下 StringBuffer 这个类,并对 String,...

    Wizey
  • 新痛点:APT组织PawnStorm 0Day如何绕过Java点击播放保护

    几个月以前,趋势科技发现了APT组织Pawn Storm利用之前未经披露的Java漏洞(CVE-2015-2590)进行攻击。在那之后,我们注意到一个被用于染过...

    FB客服
  • Eclipse正式代替Oracle接管Java EE

    Eclipse Foundation将接替Oracle成为Java EE的新东家,Oracle不再管理Java EE。 作为采用的一部分,Java EE可能会更...

    Java技术栈
  • 《干货系列》如何修炼成为一名高级程序猿?

    每个人都有大梦想,作为程序员当然是想做一个程序大牛,毕竟不想当将军的厨子不是好裁缝!那么要想成为好裁缝,不好程序员,应该需要哪些知识呢?小编搜罗了一下,还真不少...

    用户1257215
  • 高级Java程序员要具备哪些知识

    每个人都有大梦想,作为程序员当然是想做一个程序大牛,毕竟 不想当将军的厨子不是好裁缝!那么要想成为好裁缝,不好程序员,应该需要哪些知识呢?搜罗了一下,还真不少呢...

    Java团长
  • Java史上最全知识点整理

    偶然从一个网友群中发现了整理的这份资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

    王知无
  • 用 Python 实现朋友圈中的九宫格图片

    大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。

    Python小二
  • 基于.NET的Java虚拟机IKVM介绍

    ??? ?IKVM的定位是基于.NET CLR的Java虚拟机。 ?这是一个开源的项目,主页地址:IKVM

    田春峰-JCJC错别字检测

扫码关注云+社区

领取腾讯云代金券