一、 Java 的故事
1 、 Java 的诞生
让我们把时空切换到 1982 年,那一年一个伟大的公司诞生于美国斯坦福大学校园,它的名字叫 Sun Microsystems ,直译的话叫太阳微系统公司,我们平时就叫他 Sun ,事实上 Sun 是 Stanford University Network 的缩写。 Sun 在行业中被认为是最具创造性的企业。是极少数几个同时拥有自己微处理器、电脑系统、操作系统的公司。
然而, 1990 年的一天, Sun 的总裁麦克尼利( McNealy )听说他最好的一个工程师詹姆斯 . 高斯林( James Gosling )打算离职,他感觉事态很严重。直觉告诉他优秀的员工的离去意味着公司正在出大麻烦。麦克尼利必须找高斯林和其他员工好好谈谈,看看问题出在哪里。
这些员工的意见很一致。 Sun 公司本来是硅谷极为特殊的一个公司,以充满活力、富于创新著称。太阳微系统公司一直很尊重员工,尽量发挥他们的创造力和热情。但是,近年来,太阳微系统公司却越来越像成熟的大公司了。连哥斯林这样的人,公司也安排他去做一些为老系统写升级软件这种琐碎的工作。正在扼杀着太阳微系统公司员工的创新思想和工作热情。高斯林他们想做一些伟大的、革命性的事情,但在 Sun 公司现在的状况中是不可能实现的。
Java
的创造者
詹姆斯
.
高斯林(
James Gosling
)
随后,麦克尼利采取了一个大胆的举动,他让高斯林自己组建一个完全独立于公司的小组,由小组成员自己决定工作目标和进度。麦克尼利对哥斯林说: “ 我不管你们要做什么,要多少钱、多少人,也不管你们花多长时间做出来,公司都无条件支持。 ”
这个后来取名为 “ 绿色小组 ” 所要研究的产品就是十年后风靡 IT 界的数字家电、后 PC 设备和家庭网。事实证明,绿色小组的研究并不十分成功,直到 2001 年, Sun 在数字家电方面的业绩并不很突出。但是,绿色小组的一个副产品,高斯林发明的 Java 程序设计语言,却深深改变了这个世界 ……
绿色小组成立之初只有 4 个人。他们有一个很模糊的想法,甚至连最终的目标产品是硬件还是软件也不知道。但是他们知道必须发明一些技术或者产品让 Sun 公司赶上信息领域的下一波大浪潮。
当时人类已经发明了很多种消费类电子产品,包括微机、手机、手持电脑、录相机、电视机、洗衣机、冰箱、微波炉等等。他们认为要将这些设备数字化并用网络互联讲是今后的方向(物联网?)。绿色小组将这个需求归结成两个产品原型目标,即发明一种手持遥控设备来实现所有家电设备的互联(硬件);发明一种程序设计语言,用它来编写能在这些设备上运行的小巧程序(软件)。
高斯林给当时设计了一种运行在虚拟机中的面向对象的语言,起名叫 Oak (橡树,高斯林窗外的一颗树)。
但是申请注册上商标时,发现 Oak 被其他公司注册了,不得不重新起名。当时他们正在咖啡馆里喝着印尼爪哇 (Java) 岛出产的咖啡,有一个人灵机一动说就叫 Java 怎么样,并得到了其他人的赞赏,于是他们就将这种程序语言命名为 Java 。
绿色小组的成员每周工作七天,平均每天工作 12 到 14 个小时,后期工程师们几乎住在实验室,没日没夜地干,只是每隔几天回家洗澡换衣服。三年以后他们制作出了第一台样机,尽管实现了基本功能,但造价在一万美元以上,尽管市场前景不明朗,技术上也还有很多问题, Sun 公司的管理层还是用奖金和股权大大奖励了绿色小组的成员,并加大投入,努力实现产品化。
但是公司内外对其产品都不看好,市场也并不认可。绿色小组的成员在沮丧和失望中度过了整个 1993 年和 1994 年。在士气最低落的时候,大部分成员都离开了绿色小组,有的甚至离开了 Sin 公司。留下来的人也失去了工作热情。不少人每天早上 11 点钟上班,下午 4 点钟就离开了。有些人一天到晚只是玩游戏,还有的人则念学术论文。
在黑暗的日子里他们都期待着上天能眷顾他们这些苦命的人,期待着某种奇迹出现 ……
当时互联网已经出现了 20 年左右,但 Ftp 和 Telnet 的方式无法在科研人员之外的人群普及和应用, 1994 年一个名叫网景的公司推出了一种叫做 Netscape 浏览器的东西,加速了互联网的普及;高斯林他们意识到互联网是一个今后的发展方向。开始制作针对互联网的 Java 应用,希望会有所斩获。
1995 年初的一天,高斯林和以往一样不停地参加各种会议以期让人们认可他们的产品,这次他参加的是 “ 硅谷 - 好莱坞 ” 互联网及娱乐业的研讨会。演讲刚开始是,大家对高斯林的讲解意兴阑珊,直到他将鼠标移向一个分子模型,这个分子模型动起来了,而且会随着鼠标的移动上下翻滚!场面立刻发生了逆转,会场一下子沸腾起来,人们惊叹不已、啧啧称奇。刹那间,人们对互联网的潜力进行了一番新的审视!也就在刹那间,这一批有影响力的人成了高斯林最忠实也是最有力的说客。
Java 活下来了,并且成了互联网时代最强势、最具代表性的语言。
2 、微软和 Sun 针对 Java 的世纪之战
Java 特点是,一次编写,到处运行,可以适应于任何平台。而互联网就是这样一个可以是任意平台的超大网络。所以 Java 借着互联网快速发展的东风,扶摇而上,迅速穿红。
面对 Java 金矿,大家都跃跃欲试 …… 这其中要数微软和 Sun 之间的斗争最为典型:
1996 年 9 月的某一天,微软浏览器部门的主管艾达姆 · 波茨瓦斯几经考量之后,提笔给时任微软 CEO 的比尔 · 盖茨写了一邮件,他非常恳切地提醒比尔 · 盖茨注意一个正在形成的威胁。他写到: ” 必须意识到 Java 不仅仅是一种语言,如果它只是一种语言,我们愿意并且能够容易地为它建立最佳的表现形式,事情可以圆满解决了。但是事实上, Java 绝不仅仅是一种语言,它是 COM 的替代者! ” 而 COM 恰恰是 Windows 的编程模型。而 Java 编程很多时候比 C++ 编程要容易的多,更致命的是他是跨平台的。波茨瓦斯也提出了对抗 Java 的方法,就是悄悄地为 Java 提供某些扩展,使得用 Java 编写的程序能够在 Windows 中工作得更好,但是在其它平台上却不能运行。
盖茨显然被这封信吓坏了,他第二天就回信了: ” 这可把我吓坏了。我不清楚微软的操作系统要为 Java 的客户应用程序代码提供什么样的东西,而这些东西将足够让它来取代我们的市场地位。了解这一点非常重要,是应该最优先考虑的事情。 ” (没想到,这封信成为几年后司法部针对微软的反托拉斯案的呈堂证供。 )
自此微软和 Sun 针对 Java 的世纪之战拉开了 ……
第一回合:微软推出 J++ 语言,并推出了 Visual j++ 集成编程工具,对 Java 进行了大量的修改。 1997 年, Sun 公司以歧视使用 Java 软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法为由起诉微软, 2001 年 1 月, SUN 胜诉,根据双方达成的和解协议,微软不得对 Windows 操作系统中包含的 Java 语言作任何改动,并获赔 2000 万美元。
第二回合: 2001 年年底,微软在推出新版操作系统 Windows XP 和新版 IE 时,故意不安装 Java 软件,并且推出自己仿造 Java 创造的语言 C# 和 .net 框架。 2002 年的 3 月 8 日, SUN 公司向美国加州地区法庭提出起诉,称此举造成它直接经济损失高达 10 亿美元。 2002 年 6 月,微软干脆称从 2004 年起,因为安全原因微软的 Windows 操作系统将不再支持 Java 语言。
就在双方口水战日益升级之际,迎来了有关 SUN 诉微软案的第一次听证会。 SUN 起诉微软的听证会被安排在 2002 年 12 月的第一周,当时,在巴尔的摩市下了近三年来最大的一场雪。整个城市几乎都停止运转。但是弗雷德里克 · 摩兹法官坚持要求开庭,并且要求几十位与案件有关的律师到场出席;据审判时一位目击者说,为了保证早上能够到庭,法官他自己在会议室中睡了一晚。
几周后,也就是 2002 年 12 月 23 日,摩兹法官发布了那份长达 42 页的判决书,他裁定微软公司必须在其 Windows 操作系统和 IE 中发布与其竞争的 Java 编程语言。摩兹法官的意见是:在微软的垄断下, Java 拥有一个并不健全的市场,比如说,大部分 PC 上所安装的 Java 软件要么就是旧版本,要么就是仅适用于 Windows 的版本,这使得其它软件开发者对 Java 平台产生了厌恶的情绪,这些都是因为微软反竞争行为的结果,看来微软已经利用 Windows 的垄断地位来破坏 SUN 对 Java 的销售渠道。树立市场正义的唯一方法是纠正微软的所作所为, ” 阻止微软从它过去的错误中获得将来的利益! ”
针尖对麦芒的斗争一直在继续 ……
和解: 2004 年 4 月 2 日,两者达成和解协议微软将向 Sun 赔付 20 亿美元以消解旧怨,他们开始共同应对来自 IBM 和 Linux 的挑战。
从上面的故事中可能有同学认为 Sun 是正义的,微软是非正义的,是这样的吗?
我们可以再看看下面的故事 ……
3 、 Oracle 和 Google 针对 Java 的再次对决
事实上,不止微软一家意识到 Java 是座金矿。 Oracle 是第二家从 Sun 手中购买 Java 许可证的公司,而 IBM 甚至比 Sun 更早的意识到 Java 在企业级应用方面的价值,在对 Java 支持上投入了巨大的精力,我们平时编写 Java 程序使用的 Eclipse IDE 集成编程环境,就是 IBM 主导开发、用以争夺 Java 领导权的重大举措(有空可以细讲 IBM 和 Sun 的恩恩怨怨,从 Eclipse 这个名字就可以看到其中的火药味)。
“ 和谐 ” 的阴影:
IBM 和 Intel 为了争夺 Java 的话语权,向 Sun 发出了新一轮的挑战, 2005 年他们支持 Apache 开源社区发起了一个叫做 Harmony 的项目, Harmony 有个有趣的中文意思 – 和谐。
Harmony
的目的有两个:
1
、在
Apache Licence v2
的许可之下,独立的(不阅读
Sun JDK
的源代码,仅仅根据
Java SE 5 specification
)开发一个与
Java SE
兼容的
JDK
。
2
、通过
Harmony
的开发社区,创建一个模块化的架构(包括虚拟机和类库)。该架构允许所有的独立开发项目可以共享运行时组件。
简单的说, Harmony 就是让其他公司可以使用它来绕开 SUN JDK 的商业限制。 Sun 为了保持自己对 Java 的主导权,坚决不给 Harmony 颁发 JDK 认证。
这让开源社区 Apache 和 SUN 发生了决裂 ……
“ 太阳 ” 的终结:
Sun 创造了 Sparc 、 Solaris 、 Java 等伟大的产品, Sun 曾经风光无限,市值估价 2000 亿美金。 Sun 预测到网络就是计算机,可是真正的网络时代到来时,它却没有真正调整过来,不断的亏损和决策失误让它举步维艰。
2009 年 4 月 Oracle 宣布以 74 亿美金收购 Sun , 2010 年 1 月欧盟决定无条件同意这项收购,一个伟大公司就这样走到生命的尽头。
Java 的创造者 James Gosling 在自己的博客贴出了一幅画,并写了一句话 So long, old friend… (再见了,老朋友)
( 墓前站的是 Linux 的吉祥物 Tux 塔克斯和 Java 的吉祥物 Duke 杜克)
虽然 Sun 已经离去, Java 还会继续前行 ……
“ 机器人 ” 的小伎俩:
1998 年 Sun 的共同创始人 Andy Bechtolsheim 给了斯坦福大学的两个学生一笔 10 万美金的天使投资,他们成立了一个小公司名字叫 ——Google 。
2007 年 11 月 5 日 ,已经成长为互联网领域内巨人的 Google 发布了一个叫做 Android 的手机操作系统平台。 Android 采用我们上面提到的 Harmony 来作为 JDK ( Java 开发工具包)的替代品 , 使用 Dalivk 虚拟机来替代 JVM ( Java 虚拟机),它这次从头至尾都没有说它用的是 Java ,可是所有的 Java 程序员都懂这就是 Java ……
Oracle 对 Google 的诉讼:
2010 年 8 月 12 日 , Java 专利权的新主人 Oracle 指控 Google 在 Android 开发中 “ 故意,直接并反复侵犯 Oracle 的 Java 相关的知识产权 ” ,新一轮的斗争正在继续。
二、 Java 的版本演进
1995 年 5 月 23 日 |
Java 语言发布 |
1996 年 |
1
月,
JDK1.0
诞生,
|
1997 年 2 月 18 日 |
JDK1.1 发布 |
1998 年 12 月 4 日 |
JDK1.2
(
Java2
)发布
|
2000 年 5 月 8 日 |
J2SE1.3 发布 |
2000 年 5 月 29 日 |
J2SE1.4 发布 |
2004 年 9 月 30 日 |
J2SE1.5
发布,成为
Java
语言发展史上的又一里程碑。
|
2005 年 6 月 |
Java SE 6.0 发布。 J2EE 更名为 Java EE , J2SE 更名为 Java SE , J2ME 更名为 Java ME |