前言
从学习 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++ 基础上,开发一种面向对象的环境,目标设置为应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信方向的程序语言 . ,具备垃圾回收系统、可移植的安全性、分布程序设计、多运行续功能;随后发展为一种易于移植到各种设备上的平台;伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
创建目标 :
应当简单、面向对象( It should be “simple, object-oriented and familiar” )
应当健壮、安全( It should be “robust and secure” )
应当跨平台、可移植( It should be “architecture-neutral and portable” )
应当高性能( It should execute with “high performance” )
应当解释型的、线程模型的、动态的 (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 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
- 一次编译、到处执行。 (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 语言特点 :
简洁 (Simple and familiar)
面对对象 (Object-oriented)
跨平台 (Architecture neutral, portable and robust)
解释型、动态 (Interpreted and dynamic)
安全 (Security)
多线程 (Multithreading)
高性能 (High performance)
平台和应用程序库 (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 奖。
2003 年 9 月, 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 。
2008 年 7 月离开 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 大学毕业。
1988 年 8 月,加入 Sun 公司。
1990 年 12 月 5 日, Patrick Naughton 开始了绿色项目( Green Project ),并邀请了 Gosling 和 Mike Sheridan 来帮忙启动这个项目。
1991 年 4 月,绿色项目组( Naughton , Gosling 和 Sheridan )开始以“智能家电”( smart consumer electronics )为目标市场。而 Gosling 开始为 Oak 编程语言而努力工作。 Gosling 用 C 写了最早的编译器,而 Naughton , Gosling 和 Sheridan 完成的运行时解释程序也是用 C 完成的。 1991 年 8 月, 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 的主要产品之一。
2001 年 1 月到 2005 年 5 月期间,在 Google 担任工程副总裁 (Vice President of Engineering) 。
此后,作为 Google 的 Advisor ,在加州大学研究 mathematical and physical sciences 。
另,自己动手设计并制作了遥控天文望远镜,和潜入南太平洋深海拍摄海底生物。
Eric Schmidt :
1955 年 4 月 27 日在美国华盛顿特区出生,毕业于维吉尼亚州阿灵顿郡约克敦高中。
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