Java之父:詹姆斯·高斯林 (James Gosling)

Java自1995诞生,至今已经20多年的历史。

Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。
据James Gosling回忆,最初这个为TV机顶盒所设计的语言在Sun内部一直称为Green项目。我们的新语言需要一个名字。Gosling注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。
在命名征集会上,大家提出了很多名字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。排在第一位的是Silk。尽管大家都喜欢这个名字,但遭到James Gosling的坚决反对。排在第二和第三的都没有通过律师这一关。只有排在第四位的名字、得到了所有人的认可和律师的通过,这个名字就是Java。
20多年来,Java就像爪哇咖啡一样誉满全球,成为实至名归的企业级应用平台的霸主。而Java语言也如同咖啡一般醇香动人。

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等。Sun内部人员把这个项目称为Green(SUN公司的一个叫做Patrick Naughton的工程师被自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。Patrick Naughton决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。
“Stealth 计划”后来改名为“Green计划”, James Gosling和Mike Sheridan也加入了Patrick Naughton的工作小组)。该小组的领导人是James Gosling,41岁。于1984年加盟Sun Microsystem公司,以前在一家IBM研究机构工作。他是Sun NeWs窗口系统的总设计师,虽然当时NeWs在技术上非常成功,但在商业上却完全失败,没有了Java那么好的运气。Gosling是一位非常杰出的程序员,GOSMACS也是Gosling写的,它是第一个用C实现的EMACS的文本编辑器。在研究开发过程中,Gosling 深刻体会到消费类电子产品和工作站产品的开发哲学之间差异:消费类电子产品要求高可靠、费用低、标准化、使用简单,而工作站用户要求强大的计算能力,而不在此乎价格以及操作的复杂性。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。从C开始为了使整个系统与平台无关,Gosling首先从改写C 编译器着手。工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C 太复杂以至很多开发者经常错误使用。他们发现C 缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
根据可用的资金,比尔·乔伊决定开发一种集C语言和Mesa语言搭成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议SUN公司的工程师应该在C 的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C 的功能,他自己称这种新语言为C --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的树而命名。这就是Java语言的前身。(后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java)。Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行软硬件环境,他要建立一个系统,这个系统运行于一个巨大的、分布的、异质的网络环境中,完成各电子设备之间的通讯与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式。即Java语言编译后产生的是虚机器码,虚机器码运行在一个解释器上,每一个操作系统均有一个解释器,这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道,在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器, 
这样便保证了用户界面的良好的可移植性。 
当Patrick Naughton加入该小组后,整个工作进展神速。Naughton也是Sun公司的技术骨干,曾经是Open Windows的项目的负责人。经过17个月的奋战(就像很多开发新技术的秘密的工程一样,工作小组没日没夜地工作到了1992年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言,类库,和其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。1992年12月3日,这台设备进行了展示。),整个系统胜利完成。它是由一个操作系统,一种语言(Java),一个用户界面,一个新的硬件平台,三块专用芯片的构成。而通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做一次展示和鉴定,观众的反应是: 在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的二位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜,初战告败。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个SUN公司的全资子公司,团队也被重新安排到了Artaud。FirstPerson团队对建造一种高度互动的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Request for proposal),FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多地控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司再并回SUN公司。FirstPerson一直到1994年初仍在坚持开发专用的顶置盒式操作系统,但实践证明,这个市场尚未成熟。例如:好几家交互式有线电视网的实验都以失败告终。Naughton立即认识到研究方向应该转移。在Naughton的努力下,研究开始向在线服务,CD-ROM和基于网络的台式机方向转移。最后FirstPerson解散,一部分人去了Sun Interactive开发数字视频数据服务器,而另一部分开始把Java用于基于网络的台式机系统。 
Java语言的转折点到了1994年(  JAVA应用1994年6、7月间,在经历了一场历时三天的头脑风暴的讨论之后,John Gaigi、James Gosling、Bill Joy、Patrick Naughton、Wayne Ross for和Eric Skumi,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,Patrick Naughton写了一个小型万维网浏览器,WebRunner,后来改名为HotJava。同年,Oak改名为Java。),WWW已如火如荼的发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台。它应是一种实时性较高,可靠安全,有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。 
2 Java语言的历史 
这项工作由Naughton和Jonathan Payne负责,到1994年秋天(1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年5月23日SunWorld大会上进行的。SUN公司的科学指导John Gaigi宣告Java技术。这个发布是与网景公司的执行副总裁Marc Andreessen的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。),完成了WebRunner的开发工作。WebRunner是HotJava的前身,这个原型系统展示了Java 可能带来的广阔市场前景,给SunLab两位领导: Bert SutherLand和Eric Schmidt留下深刻印象,这一点非常重要,因为这两个人是Sun的首席技术官员。特别是Sun的总裁McNealy对Java抱有坚定的信念,为Java进入WWW立下了汗马功劳。正如McNealy所料,WebRunner改名为HotJava,并于1995年5月23日发表后,引起了产业界巨大的轰动,Java的地位也随之而得到肯定。McNealy卓越的洞察力和果断的决策,挽救了这项差点锁进文件柜的技术。又经过一年的试用和改进,Java 1.0版终于在1996年年初正式发表。Java已进入了主流计算模式:目前全球有67%的大型企业在采用Java开发自己的信息系统;200多家公司从Sun公司获得了Java技术许可证;400余个应用取得100%纯Java证书;Java开发者阵营拥有250万多位会员.... Java从1995年的一个小小的编程开发工具,发展到了今天可驾御从智能卡,小型消费类器件到大型数据中心的Java平台,其发展速度是惊人的,让我们回顾一下它的发展历程: 
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日,Java 2企业平台J2EE发布 (J2EE1.2);

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日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0

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

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

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

2010年11月,由于甲骨文对Java社区的不友善,因此Apache扬言将退出JCP;

2011年7月,甲骨文发布Java SE 7

2014年3月,甲骨文发表Java SE 8

Java SE 9 Oracle宣布 2016年9月发布

Java的历史及发展的更多相关文章

  1. Java的历史和大事记

    Java的历史 在上世纪90 年代初,sun 公司有一个叫做Green 的项目,目的是为家用消费电子产品开发一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流.詹姆斯·高斯林(Jam ...

  2. java各历史版本官网下载

    java各历史版本官网下载: http://www.oracle.com/technetwork/java/javase/archive-139210.html

  3. OpenGL的版本号历史和发展

    来源请注明.本文永久地址为http://www.cnblogs.com/vertexshader/articles/2917540.html OpenGL®作为业界最为广泛使用的2D和3D图形接口标准 ...

  4. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

    本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...

  5. Java的起源和发展

    程序设计语言的发展             第一代语言:机器语言   0011 1100 ……             第二代语言:汇编语言   ADD 12,0x13              第三 ...

  6. Spark的历史与发展(目录)

    对于一个具有相当技术门槛与复杂度的平台,Spark从诞生到正式版本的成熟,经历的时间如此之短,让人感到惊诧.2009年,Spark诞生于伯克利大学AMPLab,最开初属于伯克利大学的研究性项目.它于2 ...

  7. Java版本更新历史(ing)

    历史版本特性 JDK Version 1.0 开发代号为Oak(橡树),于1996-01-23发行. JDK Version 1.1 于1997-02-19发行. 引入的新特性包括: 引入JDBC(J ...

  8. AJPFX简述java语言现状和发展

    作为一种最流行的网络编程语言之一,java语言在当今信息化社会中发挥了 重要的作用.Java语言具有面向对象.跨平台.安全性.多线程等特点,这使得java成为许多应用系统的理想开发语言.java应用在 ...

  9. Java的历史

    1991 绿色计划 (Green Project) 1991 年 1 月 一个名为"Green Project"的项目启动.该项旨在为家用电器提供支持,使这些电器智能化并且能够彼此 ...

随机推荐

  1. datetime 模块详解 -- 基本的日期和时间类型

    转自:https://www.cnblogs.com/fclbky/articles/4098204.html datetime 模块提供了各种类用于操作日期和时间,该模块侧重于高效率的格式化输出 在 ...

  2. H5 localStorage入门

    定义 只读的 localStorage 允许你访问一个 Document 的远端(origin)对象 Storage:数据存储为跨浏览器会话.localStorage 类似于 sessionStora ...

  3. 【转】UML中类与类之间的5种关系表示

    一.继承关系      继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一 ...

  4. 【react npm】解决用npmstart启动别人的react项目的问题1:sha1-xxx checksum failed wanted sha1-xxx but got sha512-xxx. (10700 bytes)

    1.npm是nodejs的包管理器,相当于php的composer,python的pip,用于安装各种包. 2.一般来说,别人拷给你的react项目不会带依赖包的,因为太大了,需要用npm命令自己安装 ...

  5. python序列化和json

    python 的序列化和反序列化用于内存之间的共享,包括服务器和客户端的共享,两个Python程序之间的共享,以及以字符串的形式存储到硬盘中. pyhton 的pickle 可以对Python的各种数 ...

  6. Python并行编程(三):线程同步之Lock

    1.基础概念 当两个或以上对共享内存操作的并发线程中,如果有一个改变数据,又没有同步机制的条件下,就会产生竞争条件,可能会导致执行无效代码.bug等异常行为. 竞争条件最简单的解决方法是使用锁.锁的操 ...

  7. Python(线程进程3)

    四 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切 ...

  8. mysql调优小记

    对于INNODB,主键就是聚集索引,如果没有主键定义,则第一个唯一非空索引被作为聚集索引.如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键类似一个 ...

  9. 【android】开发笔记系列UI篇

    弹出View添加阴影效果 系统自带就有,在android studio上直接写入背景颜色 android:background="@android:drawable/dialog_holo_ ...

  10. Eclipse jvm启动参数在哪设置

    学习并转载自https://jingyan.baidu.com/article/624e7459653ca534e8ba5a26.html Java是一门非常受欢迎的编程语言,Java的开发人员多数使 ...