漫画 | Java语言是如何诞生的?

沙海
沙海
沙海
735
文章
2
评论
2021年4月4日08:36:56
评论
3 5347字阅读17分49秒
摘要

速读摘要

速读摘要

中学时期的高斯林,有一个"逃课"的习惯,这一习惯一直被高斯林从高中带到大学,高斯林在大学时期也爱逃课,只要是他觉得没有意义的不感兴趣的课他都不去上,但这也导致高斯林大学险些毕不了业。而且工作小组使用的是嵌入式平台,可用的系统资源极其有限。同年年底(1994),高斯林参加硅谷召开的"技术、教育和设计大会"。在几秒钟时间里,原本静止的网页上,一个分子图像以三维动画的方式转了起来。如果说Java语言诞生之前,互联网的网页实质上就像一张纸,不会有任何动态的内容。

原文约 4189 | 图片 24 | 建议阅读 9 分钟 | 评价反馈

漫画 | Java语言是如何诞生的?

小哈学Java

以下文章来源于画漫画的程序员,作者苏南

漫画 | Java语言是如何诞生的?

画漫画的程序员

一个用漫画演绎程序员日常轶事、分享前端前沿技术、大厂面经与干货的公众号,号主是个爱画画的前端切图崽,热爱代码的同时,也希望用漫画的形式让更多了解程序员.

漫画 | Java语言是如何诞生的?

互联网诞生,从最初的应用于军事领域为目的开创,到如今人人都触手可及,至今已有半个世纪之久。

说到互联网,自然离不开程序员和编程,而在众多编程语言中,Java语言一直是名列前茅之一,对互联网的发展更是做出了巨大的贡献,使用其作为看家本领的程序员也是千千万.

历经颇多曲折,才迎来光明的Java语言,作为一名使用者的你,是否对它的诞生/历史发展进程、背后的创造者(Java之父),有着很多的疑惑呢?到底是一个什么样的人,才能写出如果优秀的语言?

今天,本文将用漫画的形式带你倒回历史的长河,一起探索Java语言起起伏伏的诞生历程及Java之父的成长~

PS: Java之父,人物主人公名叫:James Gosling,统一以中文名:詹姆斯.高斯林称呼.

漫画 | Java语言是如何诞生的?

漫画 | Java语言是如何诞生的?

14岁的时候,中学组织到附近大学参观(这是他第一次正式接触编程),调皮的高斯林,留了个心眼记住了大学计算中心的门锁密码,从此开始偷偷地溜进计算中心,学习计算机编程。据说一年后,大学的天文系招他当了一名临时编程员(兼职),编写计算机程序来分析卫星天文数据

漫画 | Java语言是如何诞生的?

中学时期的高斯林,有一个“逃课”的习惯,这一习惯一直被高斯林从高中带到大学,高斯林在大学时期也爱逃课,只要是他觉得没有意义的不感兴趣的课他都不去上,但这也导致高斯林大学险些毕不了业。

在卡尔加里大学本科毕业后的高斯林又准备攻读研究生(大学都差点毕业,还有勇气读研,也是不得不佩服啊),幸运的是高斯林竟然被卡内基梅隆大学录取。而且卡内基梅隆大学每年只录取1名学生,对于本科都险些毕不了业的高斯林来说无疑是幸运至极。

漫画 | Java语言是如何诞生的?

时间过的很快,高斯林1983年获得了美国卡耐基-梅隆大学计算机科学博士学位,博士毕业后,詹姆斯·高斯林 正式开始自己的职业生涯…

漫画 | Java语言是如何诞生的?

漫画 | Java语言是如何诞生的?

詹姆斯·高斯林进入Sun后,前后差不多花了五年的时间来领导开发的和OS2很类似的Sun NeWs窗口系统,尽管得到技术界的好评,却未能变成流行的产品。当时他还是第一个用C实现的EMACS的所见即所得文本编辑器COSMACS..

漫画 | Java语言是如何诞生的?

这一现状一直持续到1990年,才得已改变,此时已是竞争非常激烈的软件开发时代,软件设计师一直在试图预测未来软件或者技术的发展趋势,Sun公司也不例外 ,1990年年末 Sun公司预料嵌入式系统将在未来家用电器领域大显身手。于是成立了一个软件设计团队,准备为下一代智能家电(电视机、微波炉、电话)编写一个通用控制系统

漫画 | Java语言是如何诞生的?

计划成立之后,进入开发周期,该团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家Bill Joy,发现C++和可用的API在某些方面存在很大的问题。而且工作小组使用的是嵌入式平台,可用的系统资源极其有限。并且很多成员都发现C++太复杂,以致很多开发者经常错误使用。而且C++程序过于复杂和庞大,缺少垃圾回收系统、可移植性、分布式和多线程等功能,,另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行成了当时最大的难题。

漫画 | Java语言是如何诞生的?

说干就干,优秀的人总是如此,看不惯别人,就自己动手创造,时间过的很快,转眼到了1992年的夏天,此时的Green计划已经完成了新平台的部分功能,包括Green操作系统。新语言的程序设计、类库等。

新的语言开发出来后,又迎来了一道新的难题,它叫什么呢???

在这一点上,高斯林充分发挥了自己的想象,取了一个名字叫做:C++--,意思是:这种语言在C++的基础上,增加了很多新的、好的、有用的功能(++),抛弃了C++中很多旧的、不好的、不实用的功能(--),从这里也可以看出,高斯林 对 C++ 是多么的厌恶。不过,这名字实在是让人不敢苟同,相信除了高斯林本人之外,应该是不可能有第二个人喜欢这个名字的。

果不其然,在经过了漫长激烈的争论后,高斯林最终被迫屈服,将它命名为 “Oak”(橡树),以他的办公室外的橡树命名,自此新的语言最终被敲定了叫:“Oak”.

漫画 | Java语言是如何诞生的?

也是在同年11月,Green计划被转化成“FirstPerson有限公司”,一个Sun公司的全资子公司。

然而,事情发展并不顺利,FirstPerson团队致力于创建一种高度互动的设备。当时代华纳公司发布了一个关于电视机顶盒的征求提议书时,FirstPerson团队改变了他们的目标,作为对征求提议书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多的控制权,因此FirstPerson的投标败给了SGI。同时,3DO公司另外一笔关于机顶盒的交易没有成功。此时,可怜的Green项目几乎接近夭折,甚至Green项目的一半成员也被调到了其他的项目组,“Oak”从此被搁置了下来.

漫画 | Java语言是如何诞生的?

漫画 | Java语言是如何诞生的?

圣经》中也有一句这样的话:“当上帝关了这扇门,一定会为你打开另一扇门”,是的,事情的再次转机,发生在1994年夏天,互联网和浏览器(万维网)的出现不仅给广大互联网的用户带来了福音,也给Oak语言带来了新的生机。詹姆斯·高斯林 立即意识到,这是一个机会,于是对Oak进行了小规模的改造,到了1994年秋,小组中的Naughton和Jonathan Payne完成了第一个Oak(Java)语言的网页浏览器:WebRunner.Sun公司实验室主任Bert Sutherland 和技术总监Eric Schmict 观看了该浏览器的演示,对该浏览器的效果给予了高度评价。

漫画 | Java语言是如何诞生的?

Sun公司认为这确实是个非常好的契机,准备加强完善投入市场,然而此时的Oak这个商标已经被注册,于是 Sun 只得将Oak更名,那么叫什么呢?

我所了解的资料中Java名字的由来好几个版本,每个版本的剧情都非常的精彩,据说当时因为 Oak被注册,重新想名字时,大家又吵的不可开交……

高斯林更是想圆了自己 C++--的梦……漫画 | Java语言是如何诞生的?

漫画 | Java语言是如何诞生的?

说明:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用Java来命名或宣传,以彰显其咖啡的品质。后来Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等

就这样,在一次偶然的喝咖啡的下午,一个即好听又好记、具有强大的生命力的编程语言Java诞生了、在一片混乱中诞生了.

同年年底(1994),高斯林参加硅谷召开的“技术、教育和设计大会”。他报着试一试的心情向与会者演示了Java的功能。他点击了网页上的一个静止的分子结构图标,一条命令通过互联网送到了几百英里外的网站,下载了一段Java小程序,在本地工作站上开始执行。在几秒钟时间里,原本静止的网页上,一个分子图像以三维动画的方式转了起来。

漫画 | Java语言是如何诞生的?

在看完他的演示后,“哇…!”,全会场的人都沸腾起来,他听到了全场观众的赞叹声!!

漫画 | Java语言是如何诞生的?

参会后不久,硅谷最大的报纸《圣荷西信使报》在头版刊登了一篇专文,“为什么Sun认为一杯热咖啡能让你鼓足精神”。从文章见报开始,公司市场部人员的电话响个不停。紧接着没隔几天,几乎全美的主要报刊杂志都刊登了Java的报道。

漫画 | Java语言是如何诞生的?

自此,Java算出名了,成功打响了它的第一枪!

此时Java1.0版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年3月23日SunWorld大会正式对外宣布。1995年5月23日,Java语言1.0稳定版本正式发布,口号是"一次编写,到处运行(Write once,Run anywhere)",跨平台运行,这也标志着Java语言的正式诞生,随后Sun公司直接把Java放到互联网上,免费给大家使用,甚至连源代码也不保密,也放到互联网上向所有人公开。

几个月后,更让人都吃惊的事情发生了:Java成了互联网上最热门的语言。竟然有10万多人次访问了Sun公司的网页,下载了Java语言。然后,互联网上立即就有了数不清的Java小程序项目、,演示着各种小动画、小游戏等。

漫画 | Java语言是如何诞生的?

如果说Java语言诞生之前,互联网的网页实质上就像一张纸,不会有任何动态的内容。那么有了Java语言之后,浏览器的功能被扩大了,Java程序可以直接在浏览器里运行,可以直接与远程服务器交互:用Java语言编程,可以在互联网上像传送电子邮件一样方便地传送程序文件!

至此,Java语言的诞生部分就到这里结束了。时间回到2021年的今天,java已经走过了近30年,互联网快速发展它可以说是功不可没。

以下是它的迭代史

  • 1995年5月23日,Java语言诞生

  • 1996年1月,第一个JDK-JDK1.0诞生

  • 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术

  • 1996年9月,约8.3万个网页应用了JAVA技术来制作

  • 1997年2月18日,JDK1.1发布

  • 1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录

  • 1997年9月,JavaDeveloperConnection社区成员超过十万

  • 1998年2月,JDK1.1被下载超过2,000,000

  • 1998年12月8日,JAVA2企业平台J2EE发布

  • 1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)

  • 2000年5月8日,JDK1.3发布

  • 2000年5月29日,JDK1.4发布

  • 2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机

  • 2001年9月24日,J2EE1.3发布

  • 2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升

  • 2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0

  • 2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME

  • 2006年12月,SUN公司发布JRE6.0

  • 2009年12月,SUN公司发布Java EE 6

  • 2010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出JCP[14]

  • 2011年7月28日,Oracle公司发布Java SE 7

  • 2014年3月18日,Oracle公司发表Java SE 8

  • 2017年9月21日,Oracle公司发表Java SE 9

  • 2018年3月21日,Oracle公司发表Java SE 10

  • 2018年9月25日,Java SE 11发布

  • 2019 年 3 月,Java SE 12发布

  • 2019 年 9 月,Java SE 13发布

  • 2020 年 3 月,Java SE 14发布

  • 2020 年 9 月,Java SE 15发布

  • 2021 年 3 月,Java SE 16发布

  • 2021 年 9 月,Java SE 17 (LTS)发布

Ps: 版本史摘自 维基百科

编后

漫画 | Java语言是如何诞生的?

Java 名称的真正含义是什么呢?当你看到它的 logo 时,你就会明白。他将 Java 语言比喻成:奉献给世人一杯热气腾腾、芬香四溢的咖啡。咖啡是全球最流行的饮料,James 将Java 语言比喻为一杯咖啡,可见他对 Java 语言是多么的自信。

参考资料

https://zh.wikipedia.org/wiki/Java

https://blog.csdn.net/wxb141001yxx/article/details/80786680

https://zhuanlan.zhihu.com/p/352930048

文中部分素材来源网络,如有侵权,请联系删除

本文系 “ 前端布道师 ”  原创

转载请先微信联系苏南 (su-south)授权,并标明出处!

撰稿:苏南插画 / 排版:苏南

1. 技术公司与非技术公司的区别,太真实了…2. 颠覆认知——Redis会遇到的15个「坑」,你踩过几个?3. 可能是全网最全,JAVA日志框架适配/冲突解决方案,可以早点下班了4. 13张图,深入理解Synchronized最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

继续阅读
weinxin
资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: