Java的那些故事

本文讲述了Java语言的诞生背景,介绍了Sun Microsystems公司内部孕育Java的过程及其后续发展,包括与微软之间的法律纠纷、被Oracle收购的命运转折,以及与Google围绕Android平台的版权争议。文章还概述了Java语言自1995年发布以来的主要版本迭代。

一、 Java的故事

1Java的诞生

让我们把时空切换到1982年,那一年一个伟大的公司诞生于美国斯坦福大学校园,它的名字叫Sun Microsystems,直译的话叫太阳微系统公司,我们平时就叫他Sun,事实上SunStanford 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

绿色小组的成员每周工作七天,平均每天工作1214个小时,后期工程师们几乎住在实验室,没日没夜地干,只是每隔几天回家洗澡换衣服。三年以后他们制作出了第一台样机,尽管实现了基本功能,但造价在一万美元以上,尽管市场前景不明朗,技术上也还有很多问题,Sun公司的管理层还是用奖金和股权大大奖励了绿色小组的成员,并加大投入,努力实现产品化。

但是公司内外对其产品都不看好,市场也并不认可。绿色小组的成员在沮丧和失望中度过了整个1993年和1994年。在士气最低落的时候,大部分成员都离开了绿色小组,有的甚至离开了Sin公司。留下来的人也失去了工作热情。不少人每天早上11点钟上班,下午4点钟就离开了。有些人一天到晚只是玩游戏,还有的人则念学术论文。

在黑暗的日子里他们都期待着上天能眷顾他们这些苦命的人,期待着某种奇迹出现……

当时互联网已经出现了20年左右,但FtpTelnet的方式无法在科研人员之外的人群普及和应用,1994年一个名叫网景的公司推出了一种叫做Netscape浏览器的东西,加速了互联网的普及;高斯林他们意识到互联网是一个今后的发展方向。开始制作针对互联网的Java应用,希望会有所斩获。

1995年初的一天,高斯林和以往一样不停地参加各种会议以期让人们认可他们的产品,这次他参加的是硅谷-好莱坞互联网及娱乐业的研讨会。演讲刚开始是,大家对高斯林的讲解意兴阑珊,直到他将鼠标移向一个分子模型,这个分子模型动起来了,而且会随着鼠标的移动上下翻滚!场面立刻发生了逆转,会场一下子沸腾起来,人们惊叹不已、啧啧称奇。刹那间,人们对互联网的潜力进行了一番新的审视!也就在刹那间,这一批有影响力的人成了高斯林最忠实也是最有力的说客。

Java活下来了,并且成了互联网时代最强势、最具代表性的语言。

2、微软和Sun针对Java的世纪之战

Java特点是,一次编写,到处运行,可以适应于任何平台。而互联网就是这样一个可以是任意平台的超大网络。所以Java借着互联网快速发展的东风,扶摇而上,迅速穿红。

面对Java金矿,大家都跃跃欲试…… 这其中要数微软和Sun之间的斗争最为典型:

19969月的某一天,微软浏览器部门的主管艾达姆·波茨瓦斯几经考量之后,提笔给时任微软CEO的比尔·盖茨写了一邮件,他非常恳切地提醒比尔·盖茨注意一个正在形成的威胁。他写到:必须意识到Java不仅仅是一种语言,如果它只是一种语言,我们愿意并且能够容易地为它建立最佳的表现形式,事情可以圆满解决了。但是事实上,Java绝不仅仅是一种语言,它是COM的替代者!COM恰恰是Windows的编程模型。而Java编程很多时候比C++编程要容易的多,更致命的是他是跨平台的。波茨瓦斯也提出了对抗Java的方法,就是悄悄地为Java提供某些扩展,使得用Java 编写的程序能够在Windows中工作得更好,但是在其它平台上却不能运行。

盖茨显然被这封信吓坏了,他第二天就回信了:这可把我吓坏了。我不清楚微软的操作系统要为Java的客户应用程序代码提供什么样的东西,而这些东西将足够让它来取代我们的市场地位。了解这一点非常重要,是应该最优先考虑的事情。(没想到,这封信成为几年后司法部针对微软的反托拉斯案的呈堂证供。)

自此微软和Sun针对Java的世纪之战拉开了……

第一回合:微软推出J++语言,并推出了Visual j++集成编程工具,对Java进行了大量的修改。1997年,Sun公司以歧视使用Java软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法为由起诉微软,20011月,SUN胜诉,根据双方达成的和解协议,微软不得对Windows操作系统中包含的Java语言作任何改动,并获赔2000万美元。

第二回合:2001年年底,微软在推出新版操作系统Windows XP和新版IE时,故意不安装Java软件,并且推出自己仿造Java创造的语言C#.net框架。2002年的38日,SUN公司向美国加州地区法庭提出起诉,称此举造成它直接经济损失高达10亿美元。20026月,微软干脆称从2004年起,因为安全原因微软的Windows操作系统将不再支持Java语言。

就在双方口水战日益升级之际,迎来了有关SUN诉微软案的第一次听证会。SUN起诉微软的听证会被安排在 200212月的第一周,当时,在巴尔的摩市下了近三年来最大的一场雪。整个城市几乎都停止运转。但是弗雷德里克·摩兹法官坚持要求开庭,并且要求几十位与案件有关的律师到场出席;据审判时一位目击者说,为了保证早上能够到庭,法官他自己在会议室中睡了一晚。

几周后,也就是20021223日,摩兹法官发布了那份长达42页的判决书,他裁定微软公司必须在其Windows操作系统和IE中发布与其竞争的 Java编程语言。摩兹法官的意见是:在微软的垄断下,Java拥有一个并不健全的市场,比如说,大部分PC上所安装的Java软件要么就是旧版本,要么就是仅适用于Windows的版本,这使得其它软件开发者对Java平台产生了厌恶的情绪,这些都是因为微软反竞争行为的结果,看来微软已经利用Windows的垄断地位来破坏SUNJava的销售渠道。树立市场正义的唯一方法是纠正微软的所作所为,阻止微软从它过去的错误中获得将来的利益!

针尖对麦芒的斗争一直在继续……

和解:200442日,两者达成和解协议微软将向Sun赔付20亿美元以消解旧怨,他们开始共同应对来自IBMLinux的挑战。

从上面的故事中可能有同学认为Sun是正义的,微软是非正义的,是这样的吗?

我们可以再看看下面的故事……

3OracleGoogle针对Java的再次对决

事实上,不止微软一家意识到Java是座金矿。Oracle是第二家从Sun手中购买Java许可证的公司,而IBM甚至比Sun更早的意识到Java在企业级应用方面的价值,在对Java支持上投入了巨大的精力,我们平时编写Java程序使用的Eclipse IDE集成编程环境,就是IBM主导开发、用以争夺Java领导权的重大举措(有空可以细讲IBMSun的恩恩怨怨,从Eclipse这个名字就可以看到其中的火药味)。

和谐的阴影:

IBMIntel为了争夺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认证。

这让开源社区ApacheSUN发生了决裂……

太阳的终结:

Sun创造了SparcSolarisJava等伟大的产品,Sun曾经风光无限,市值估价2000亿美金。Sun预测到网络就是计算机,可是真正的网络时代到来时,它却没有真正调整过来,不断的亏损和决策失误让它举步维艰。

20094Oracle宣布以74亿美金收购Sun20101月欧盟决定无条件同意这项收购,一个伟大公司就这样走到生命的尽头。

Java的创造者James Gosling在自己的博客贴出了一幅画,并写了一句话So long, old friend… (再见了,老朋友)

(墓前站的是Linux的吉祥物Tux塔克斯和Java的吉祥物Duke杜克)

虽然Sun已经离去,Java还会继续前行……

机器人的小伎俩:

1998Sun的共同创始人Andy Bechtolsheim给了斯坦福大学的两个学生一笔10万美金的天使投资,他们成立了一个小公司名字叫——Google

2007115日,已经成长为互联网领域内巨人的Google发布了一个叫做Android的手机操作系统平台。Android采用我们上面提到的Harmony来作为JDKJava开发工具包)的替代品,使用Dalivk虚拟机来替代JVMJava虚拟机),它这次从头至尾都没有说它用的是Java,可是所有的Java程序员都懂这就是Java ……

OracleGoogle的诉讼:

2010812日,Java专利权的新主人Oracle指控GoogleAndroid开发中故意,直接并反复侵犯OracleJava相关的知识产权,新一轮的斗争正在继续。

二、 Java的版本演进

1995523

Java语言发布

1996

1月,JDK1.0诞生,
4
月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术,
9
月,约8.3万个网页应用了JAVA技术来制作

1997218

JDK1.1发布

1998124

JDK1.2Java2)发布
随后,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME),为Java今后的方向指明了道路。

200058

J2SE1.3发布

2000529

J2SE1.4发布

2004930

J2SE1.5发布,成为Java语言发展史上的又一里程碑。
为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0

20056

Java SE 6.0发布。J2EE更名为Java EEJ2SE更名为Java SEJ2ME更名为Java ME

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值