Java时间简史

前言

从学习 Java 到J ava 编程,从来没有仔细去梳理或者翻阅一下 Java 的过往历史。从最开始 Sun 的“绿色项目”,已经过去了 21 年了;从 Java 第一次发布,已经近 16 年了。 回头整理、梳理一下 Java 的历史,让自己 对Java有个重新的了解和认识。

Java 语言

起源于 Sun 公司 (Sun Microsystems Inc.) 在 1990 年 12 月针对公司公司内部的“绿色项目” (Green Project) 而设计的一门程序语言。项目组使用的运行平台是嵌入式平台,最开始 Patrick Naughton 尝试使用 c 、 c++ 作为编程语言,但复杂度太高,随着 James Gosling 、 Mike Sheridan 、 Sun 首席科学家 Bill Joy 等的加入,于是希望在 C++ 基础上,开发一种面向对象的环境,目标设置为应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信方向的程序语言 . ,具备垃圾回收系统、可移植的安全性、分布程序设计、多运行续功能;随后发展为一种易于移植到各种设备上的平台;伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

创建目标 :

  1. 应当简单、面向对象( It should be “simple, object-oriented and familiar” )

  2. 应当健壮、安全( It should be “robust and secure” )

  3. 应当跨平台、可移植( It should be “architecture-neutral and portable” )

  4. 应当高性能( It should execute with “high performance” )

  5. 应当解释型的、线程模型的、动态的 (It should be “interpreted, threaded, and dynamic”)

(http://java.sun.com/docs/white/langenv/Intro.doc2.html)

Java 语言定义 :

1.The Java programming language is a general-purpose, concurrent, class-based, object-oriented language.

2.The Java Programming Language is a general-purpose, concurrent, strongly typed, class-based object-oriented language.

3.Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

  1. 一次编译、到处执行。 (write once, run anywhere.)

( http://java.sun.com/docs/books/jls/third_edition/html/intro.html)

( http://download.oracle.com/javase/6/docs/technotes/guides/language/index.html)

Java 语言特点 :

  1. 简洁 (Simple and familiar)

  2. 面对对象 (Object-oriented)

  3. 跨平台 (Architecture neutral, portable and robust)

  4. 解释型、动态 (Interpreted and dynamic)

  5. 安全 (Security)

  6. 多线程 (Multithreading)

  7. 高性能 (High performance)

  8. 平台和应用程序库 (Java base system and libraries)

(http://java.sun.com/docs/white/langenv/index.html)

(http://java.sun.com/docs/overviews/java/java-overview-1.html)

Java 平台

1.Java Card :主要是提供高安全性的运行在智能卡或者类智能卡的 Java Applet ,广泛应用在 SIM 卡、提款机上等。

2.Java ME(Micro Edition) : Java 平台微型版,主要是为机顶盒、移动电话、 PDA 等嵌入式电子设备提供的 Java 语言平台,包括虚拟机和 API 。

3.Java SE(Standard Edition) : Java 平台标准版,包括 Java2 的开发环境、编译工具、程序库、运行环境。

4.Java EE(Enterprise Edition) : Java 平台企业版,为开发企业级应用提供的具备软件架构、设计思想、技术标准的通用平台。

Java 技术概念地图

(http://java.sun.com/new2java/javamap/intro.html) :

时间简史 :

1990 年 12 月开始研究的一个内部项目,“ Stealth 计划”,重要成员 Patrick Naughton 加入,尝试用 C 、 C++ 语言,被 C 、 C++ 编译器搞的焦头烂额。

随后,项目,“ Stealth 计划”后来改名为“ Green 计划”,重要成员 James Gosling 、 Mike Sheridan 、 Sun 首席科学家 Bill Joy 等相继加入。 Bill Joy 最早决定开发一种集 C 语言和 Mesa 语言大成的语言,提议在 C++ 基础上,开发一种面向对象的环境,并把它取名为“未来”。

James Gosling 尝试在修改和扩展 C++ 的功能,并称之为 C++ ++ — ,随后不得不放弃;转而决定要创造一门全新的编程语言,并以办公司外边的橡树 (Oak) 命名。

1992 年的夏天, Green 项目组对平台进行了演示,包括 Green 操作系统, Oak 的程序设计语言,类库及其硬件。

1992 年 11 月,项目演变成 Sun 公司的全资子公司“ FirstPerson ”有限公司,研发团队在美国加州 Palo Alto 。

1992 年 12 月 3 日,对面向一种类 PDA 设备 Star7 运行该平台进行演示,这种设备有鲜艳的图形界面和被称为“ Duke ”的智能代理来帮助用户。

随后,作为机顶盒平台在竞标时代华纳 (Time Warner) 电视机顶盒项目败给 SGI 公司;作为机顶盒平台和 3DO 公司的商业交易也失败,因此被 Sun 公司回购。

1994 年 6 月, Bill Joy 启动了一个构建 “big small operating” 系统的项目“ Liveoak ”。之后, John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing 和 Eric Schmidt 经过三天的头脑风暴,决定改变平台的目标定位,将平台应用在万维网领域 (World Wide Web) 。

1994 年 7 月, Patrick Naughton 产生了将 Liveoak 作为互联网平台的想法,并利用一个长周末完成了一个 Web 浏览器。

1994 年 9 月, Patrick Naughton 和 Sun 的另外一名工程师 Jonathan Payne 开始合作开发基于 Java 的 Web 浏览器 WebRunner ,随后改名为“ HotJava ”。

在发现 Oak 已被一家显卡制造商注册之后, Oak 被改名为“ Java ”。

1994 年 10 月, HotJava 和 Java 一道在 Sun 公司高层中进行了演示。随机, Java 被发现和认识到其具备的平台无关性、安全、可依赖等特性在互联网领域有良好的匹配和发展。

1994 年, Java 1.0a 版本开始提供下载。

1995 年 3 月 23 日 SunWorld 大会上 Java 和 HotJava 浏览器的第一次公开发布。同时网景公司的执行副总裁马克•安德森,宣布网景将在其浏览器中包含对 Java 的支持。

1996 年 1 月,升阳公司成立了 Java 业务集团,专门开发 Java 技术。第一个 JDK-JDK1.0 诞生。

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

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

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

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

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

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

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 年 4 月 20 日, Sun 公司宣布以每股 9.50 美元, 74 亿美金的总额被 Oracle 公司收购。

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

2010 年 1 月 21 日,欧盟无条件通过了 Oracle 收购 Sun 的交易。 Java 之父 James Gosling 在其博客 (http://blogs.oracle.com/jag/entry/so_long_old_friend) 中发表博客“ So long, old friend ” 悼念 Sun 。

2011 年 7 月 28 日, Oracle 公司发布 J2SE 7.0 。

核心成员 :

Bill Joy :

密歇根大学获得电气工程学士学位。

1979 年在加州大学伯克利分校获得电气工程与计算机科学硕士学位。      

1982 年,作为 Sun 的联合创始人、首席科学家,参与了 Sun 公司的成立。

1986 年,因其在伯克利 UNIX 操作系统中所做的工作获得了 Grace Murray Hopper 奖。

20039 月, Bill Joy 离开 Sun 。据说, Sun 公司的股票应声下跌了 3.2% 。

贡献:

       学生期间,他开发了 BSD 操作系统。其他人以 BSD 为基础发展出了很多现代版本的 BSD ,最著名的有 FreeBSD 、 OpenBSD 和 NetBSD ,苹果电脑的 Mac OS X 操作系统也在很大程度上基于 BSD 。其对 TCP/IP 、 vi 、 NFS 和 C shell 均有重大贡献。

       在 Sun 公司支持设计了 Sparc 微处理器,并将之前自己领导开发的 BSD 继续发展成为 Solaris 操作系统。 Java 和 Jini 的主要作者之一。

John Gage :

加州大学伯克利分校的数学教师,和 Bill Joy 是同事。

Sun 的第 21 名雇员。

创造了 Sun 的口号“ the network is the computer ”。

1999 年发起 JavaOne 。

20087 月离开 Sun ,加盟了硅谷老牌风投机构 KPCB ,成为该公司的合伙人。

James Gosling :

1977 年获得了加拿大卡尔加里大学计算机科学学士学位。

1981 年开发 Unix 上运行的类 Emacs 编辑器 Gosling Emacs 。

1983 年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是: "The Algebraic Manipulation of Constraints" 。

毕业后到 IBM 工作,设计 IBM 第一代工作站 NeWS 系统,后转至 Sun 公司。

1990 年,与 Patrick Naughton 和 Mike Sheridan 等人合作“绿色计划”。

1994 年底, James Gosling 在硅谷召开的“技术、教育和设计大会”上展示 Java 。

2007 年,被授予二级 加拿大勋章。

2010 年 4 月宣布从 Oracle 公司离职。

2011 年 3 月 29 日,在个人博客上宣布将加入 Google 。

2011 年 8 月 30 日,仅仅加入 Google 数月之后的高斯林就在个人博客上宣布离开 Google ,加盟一家从事海洋机器人研究的创业公司 Liquid Robotics ,担任首席软件架构师。

主要贡献:

       Java 共同创始人之一,公认的 Java 之父。

Mike Sheridan

在 Claremont College 学习经济学和俄罗斯历史,后在 American University 学习电影。

1990 年加入 Sun 公司的“ Green Project ”项目,协作开发 Java 语言。随后和 Sun 的 CTO Eric Schmidt 一起主导 Java 的战略发展和商业开发。

1998 年,加入 Novell 公司,领导的新产品计划和商业机会的发展,基于业界领先的 Novell 目录服务( NDS )和 Novell 公司的智能缓存系统。直接向 Novell 总裁和 CEO Eric Schmidt 汇报。

Patrick Naughton :

1980 年, Naughton 用打零工挣的钱买了他的第一台微机 Atari400 。

1985 年从 Clarkson 大学毕业。

19888 月,加入 Sun 公司。

1990125 日, Patrick Naughton 开始了绿色项目( Green Project ),并邀请了 Gosling 和 Mike Sheridan 来帮忙启动这个项目。

19914 月,绿色项目组( Naughton , Gosling 和 Sheridan )开始以“智能家电”( smart consumer electronics )为目标市场。而 Gosling 开始为 Oak 编程语言而努力工作。 Gosling 用 C 写了最早的编译器,而 Naughton , Gosling 和 Sheridan 完成的运行时解释程序也是用 C 完成的。 19918 月, Oak 的第一个程序诞生了。

1994 年 Patrick Naughton 写了一个叫 WebRunner 的浏览器雏形。经过 Naughton 和 Jonathan Payne 增补,这个浏览器成为 Hot Java 。

1994 年离开 Sun 公司,加入 Starwave ,开发服务器端 Java 应用。

1995 年,著书《 The Java Handbook 》。

1996 年,和 Herbert Schildt 著书《 Java: The Complete Reference 》。

1998 年, Walt Disney Internet Group 收购 Starwave ,并使之与 Infoseek 合并, Patrick Naughton 担任 Infoseek 公司 Executive Vice President 。 ( 注:百度创始人李彦宏曾经是 Infoseek 的核心工程师之一。 )

1999 年,在圣莫尼卡码头被_捕, 后 被判有罪 。 ( 注: Infoseek 的首席执行官 Motro 在得知 Naughton 被_捕 _ 后 _ 即 _ 与 _ 他 _ 取 _ 得 _ 了 _ 联 _ 系,并出了 10 _ 万 _ 美 _ 元的保_释_金。 )

此后,被 Infoseek 公司开除。

2004 年,加入 Azaleos 公司。

2009 年,离开 Azaleos 公司,加入 L1 Partners ,担任 CTO 。

2010 年,重新回到 Azaleos 公司,担任 Vice President of Engineering 。

Wayne Rosing :

1970 年代后期,在 Digital Equipment and Data General 公司担任工程经理 (Engineering Manager) 。

1980 年代,加入苹果公司,担任工程总监 (Director of Engineering) ,主要负责 Apple 计算机公司 LISA 和 Apple II 。

后加入 Sun 公司,担任 Sun 公司全资子公司 FirstPerson, Inc. 的总裁,主要是领导研发 Java ,建立 Sun 实验室。

后加入 Caere Corporation 公司担任首席技术官兼工程副总裁,负责管理 Caere 的光学字符识别 (OCR) 生产线的所有工程项目,并曾大力推动收购 Omniform 应用程序,后来该程序成为 Caere 的主要产品之一。

20011 月到 20055 月期间,在 Google 担任工程副总裁 (Vice President of Engineering) 。

此后,作为 Google 的 Advisor ,在加州大学研究 mathematical and physical sciences 。

另,自己动手设计并制作了遥控天文望远镜,和潜入南太平洋深海拍摄海底生物。

Eric Schmidt :

1955427 日在美国华盛顿特区出生,毕业于维吉尼亚州阿灵顿郡约克敦高中。

1976 年,施密特在普林斯顿大学取得电气工程( BSEE )的学士及硕士学位;

1979 年,施密特于柏克莱加州大学因为设计一电脑网络而得到理学硕士学位;

1982 年,以探讨分布式的管理软件问题为主要论文课题,取得了电子工程暨计算机科

学 (EECS) 哲学博士学位。

曾加入了程式编译器 lex 的编辑工程,且于史丹福商学院兼职教授。

在贝尔实验室、 Zilog 和当时全录辖下的帕罗奥多研究中心担任研究员。

1983 年,施密特以软件经理的身分加入 Sun 公司,并主导了 Java 平台技术的发展、升阳电脑独立平台的程式技术,并且确立了公司的网络策略。之后,他成为了 Sun 公司的首席技术官 (CTO) 及企业总裁。

1997 年,施密特担任了 Novell 公司的总裁,之后 Novell 收购了 Cambridge Technology Partners 。

在风险投资家 John Doerr 和 Michael Moritz 的建议下, Google 创始人拉里•佩奇和谢尔盖•布林于 2001 年招募 Eric Schmidt 来运作 Google 公司。

在 2001 年 3 月以董事会成员的身分担任 Google 的董事长,并在同年 8 月兼任总裁一职。

2006 年 8 月 28 日,施密特当选成为苹果公司董事会成员;但在 2009 年 8 月 3 日,因为 Google 与苹果公司日益激烈的利益冲突和竞争,施密特宣布退出董事会。

2008 年 10 月 19 日,施密特担任了奥巴马于竞选期间的非正式顾问,并开始竞选活动。在奥巴马胜选后,施密特为其咨询委员会的其中一员,并建议要解决美国内部问题最简单的方法为奖励可再生能源的开发,以取代化石燃料的使用。

2011 年三月,埃里克•施密特获得美国商务部长的提名。

一点想法

Java 从最开始的一个项目,多次演进和变化,经历了 21 年,成为了现在第一大的编程平台,改变了编程世界,改变着着整个 IT 世界,在移动互联网领域正继续着它的神话。

在 Java 每一个阶段,都是有着清晰的定位和目标的;不论他的失败或者成功。

Java ,似乎从来都没有为了匹配一个商业模式而生,伴随着开放,伴随着社区,传说着它的神奇。

Java 发展过程中先后加入的核心成员,每一位都是 IT 大牛;也许印证了, Java 的成功,绝非偶然。

参考资源

The Java Language Overview: http://java.sun.com/docs/overviews/java/java-overview-1.html

Java SE Platform: http://www.oracle.com/technetwork/java/javase/tech/index.html

Java SE HotSpot: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html

Java Technology Concept Map: http://java.sun.com/new2java/javamap/intro.html

History Of Java: http://ei.cs.vt.edu/~wwwbtb/book/chap1/java_hist.html