﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-dwys0343</title><link>http://www.blogjava.net/dwys0343/</link><description>技术整理</description><language>zh-cn</language><lastBuildDate>Fri, 24 Apr 2026 22:14:46 GMT</lastBuildDate><pubDate>Fri, 24 Apr 2026 22:14:46 GMT</pubDate><ttl>60</ttl><item><title>Java标准受到挑战，未来由谁主宰</title><link>http://www.blogjava.net/dwys0343/archive/2006/12/29/90821.html</link><dc:creator>特兰克斯</dc:creator><author>特兰克斯</author><pubDate>Fri, 29 Dec 2006 14:59:00 GMT</pubDate><guid>http://www.blogjava.net/dwys0343/archive/2006/12/29/90821.html</guid><wfw:comment>http://www.blogjava.net/dwys0343/comments/90821.html</wfw:comment><comments>http://www.blogjava.net/dwys0343/archive/2006/12/29/90821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dwys0343/comments/commentRss/90821.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dwys0343/services/trackbacks/90821.html</trackback:ping><description><![CDATA[
		<h4>
				<font color="#a52a2a">摘要:</font>
		</h4>在经过数年的争斗后，Sun终于可以暂时控制JVM和JDK了，现在这两种技术也趋于一致了，但JVM和JDK只是Java体系的冰山一角。而对Java影响最大的莫过于众多的JSRs（Java Specification Requests）。 <br /><br />Java从它的诞生到现在已经11年了。在这11年里，有无数的企业、组织和个人为Java贡献过自己的力量。这就象梁山一百单八将要按着自己的贡献和威望排名一样，谁为Java所做的工作越多，谁就对Java的未来发展方向越有发言权。自从Java成为国际标准后，支持它的企业也随着Java的成熟逐渐多了起来。 <br /><br />    当然，人一多，就会带来另一个问题，谁说了算！作为Java的始作俑者Sun一直想将Java标准据为已有，而IBM凭着它在世界的影响对Java也是虎视眈眈。俗话说得好，三流的公司卖产品、二流的公司卖服务、一流的公司卖标准。当然，如果想做世界第一的IT企业，那就得标准、服务和产品一起卖。因此，以Sun、IBM为首的利益集团围绕着Java以及相关标准明争暗斗了11年，在这11年里，Java标准几度风雨、几度春秋。随着Java的全面开源，Java标准又面临着前所未有的挑战，未来的Java还会象它宣称的那样，一处编译、到处运行吗？到底谁能主导未来的Java呢？ <br /><br /><font color="#0000ff">    <b>Java刚一诞生就成待宰羔羊</b><br /></font><br />    在1995年，Sun正式公布了Java，并且发布了JDK1.0。Java在外形上酷似C++，但它却有一颗形如Smalltalk般纯洁的面向对象之心。正因为如此，Java几乎在一夜之前就香浓世界，成为软件行业的新宠。虽然Java刚开始只是通过Applet为网站做一些动态的效果，但它的杀手锏，“一次编译、到处运行”使Java迅速成为各大企业及众多开发人员竞相追捧的对象。 <br />正是因为Java的流行使众多有实力的企业垂涎三尺。一开始，Java的JVM是由Sun单独开发的。而在当时，开发工具的老大Borland却蠢蠢欲动。由于Borland以开发语言编译器著称，因此，在Java的早期，除了Sun的JVM，比较著名的还有Borland JVM。 <br /><br />    这个世界上除了Sun，没有哪家公司象Borland一样和Java走得如此之近。在Java的早期，Borland几乎参与了Java的各种层次的设计，如JVM、JDK以及开发工具。甚至Sun和Borland曾经进行了一场关于JVM的军备竞赛。当初Sun设计一个JVM版本，Borland也跟着设计一个更快的JVM版本。就这样持续了有几个月时间。Borland负责这方面事务的就是Anders Hejlsberg，他的第一个成名作就是Delphi，因此，他也被称为Delphi之父。说起Anders Hejlsberg，也许大家不太熟悉，但要是提起C#之父，也许大家会很熟悉，对，他也是Anders Hejlsberg（在1996被微软用年薪300万美元、加盟奖金以及一个开发团队从Borland挖去的），因此，Anders Hejlsberg同时被称为Delphi / C#之父。这位天才以汇编语言编写了Borland JVM，从某种程度上，Borland JVM的效率要比Sun JVM高一些（如果你用过Visual J++就知道了）。但由于Borland后来专注于Java开发工具(JBuilder)的开发而放弃了和Sun的JVM争夺。 <br /><br />    在Sun和Borland的JVM争夺战结束后，真是树欲静而风不止。自从Anders Hejlsberg到了微软后，立刻被比尔.盖茨派去负责微软的Java开发工具Visual J++的开发，至此，又要上演一场龙争虎斗。大家都知道，微软和Sun一直因为Java而互相攻击。但一开始，比尔. 盖茨是非常喜欢Java的，他曾经称赞Java是“到现在为止世界上最好的开发语言”，微软也很早就购买了Java许可证。但微软作为软件公司的老大，看到别人的孩子茁壮成长，自已心里却暗生嫉恨。于是在它自己的Visual J++中搞起了小动作。使用Visual J++开发Windows程序就象是享受一杯美酒。但Visual J++却破坏了Java的跨平台特性。微软和Sun也因此打了长达7年的官司，最后这场官司以喜剧收场。微软和Sun达到协议，微软停止Visual J++的开发，而双方都将为使用对方的专利付费。同时Visual J++也无疾而终（要不是这场官司，恐怕现在很多程序员还在使用Visual J++呢！）。在2004年，微软和Sun最终以16亿美元结束了十多年恩怨。这也正应了一句话“没有永远的朋友、也没有永远的敌人，只有永恒的利益”。 <br /><br />    在Sun、Borland、微软之间围绕着Java的争斗最终以Sun重新获得Java的控制权而结束。但新的争斗又将开始。<br /><br /><font color="#0000ff">    <b> Java标准成为众豪强竞相追逐的“梅花鹿”</b><br /></font><br />       在经过数年的争斗后，Sun终于可以暂时控制JVM和JDK了，现在这两种技术也趋于一致了，但JVM和JDK只是Java体系的冰山一角。而对Java影响最大的莫过于众多的JSRs（Java Specification Requests）。 <br /><br />    当Sun和Borland、微软的争斗告一段落后，Sun本以为可以高枕无忧了，但Sun却打错了算盘。在这之后，Sun受到的第一次挑逗就是IBM的Eclipse。在2001年，IBM设计了自己的Java开发工具Eclipse，这本来没什么，但Eclipse却与Borland的JBuilder有着本质的不同。JBuilder是百分之百基于Java的，而Eclipse虽然是Java开发工具，但它的图形接口既不是AWT，也不是SWING，而是IBM自己开发的SWT。SWT虽然速度快，但它却是独立于JDK之外的，也就说，它并不同JDK一起发布。因此，在程序发布时，必须带是SWT的运行库才可以。IBM官方称Eclipse的推出是为取代Sun的NetBeans，但稍微动一下脑子就不难看出，IBM的真正目的并不是NetBeans，而是想逐步取代Sun的JDK的部分，甚至全部。IBM推出SWT的目的就是想让开发人员除了标准的AWT和SWING外，还有另外一种选择，那就是SWT。也就是说，IBM想先通过JDK的图形库来分裂JDK，从而达到自己控制JDK的目的。 <br /><br />    而另Sun尴尬的是IBM的举动并没有触犯什么法律或规约，SWT只是一个基于Java的类库而已。Sun更本无法向当年起诉微软一样来起诉IBM。IBM的初次挑衅取得了意想不到的收获。这下IBM更加得寸进尺了。 <br /><br />    由于和Java相关的规范都是由JCP来管理的。每当提交一个新规范，必须由JCP的成员投票表决才能通过。因此，JCP就相当于Java世界的联合国。它和现实中的联合国是一样的，谁控制了联合国，谁就能充当世界警察，为所欲为。而JCP成员中最强大的当然是IBM了。一开始，IBM还是很规矩的，但后来，IBM发现，JCP一直都是由Sun来主导，而Sun的产品也是最早支持JCP标准的，如当JCP推出新的J2EE标准后，Sun的AppServer在半个月后就宣布支持新标准了。 <br /><br />    这种结果是IBM所不能允许的，因为，在J2EE市场，IBM和Sun是竞争对手。这样，Sun的AppServer就永远领先IBM的WebSphere了。因此，IBM就想绕过JCP，自己确定新的标准。可能是因为IBM感觉自己势单力孤，最后把BEA也拉了进来。IBM和BEA都是J2EE市场的绞绞者，他们的市场份额之和超过了66%。 <br /><br />    无论是微软，还是IBM。他们的强大都足以在一个领域中推行新的规范。IBM也正是看中了这一点，因此，在最近IBM和BEA提交的几个规范（如JSRs235，236和237）并没有长长支持列表。而其它的规范都有很长的支持列表。这充分说明了IBM和BEA打算绕过JCP而单独推出规范，而这些规范并未得到JCP大多数成员的支持。 <br /><br />    如果说提交JSR规范只是小打小闹，那么IBM联合BEA发布的SDO(Service Data Object)规范将是一次大动作。在发布SDO的同时，IBM又向Apache基金会捐献一个支持SDO标准的Tuscany项目。这次发布并没有安排Sun、JBoss等Java中间件提供商参与。尽管SDO最终因进展缓慢而失败，但这将是以IBM为首的利益集团分裂JCP的开始。在SDO失败后不久、IBM和BEA又联手推出了SOA标准。这个标准除了IBM和BEA，并没有其它的SOA标准制定者。IBM和BEA制定SOA的目的就是想彻底绕过JCP而成为Java EE的事实标准。不管其他人如何评价IBM和BEA的这次联合，我相信Java标准已经开始分裂。而在业界举足轻重的企业，如IBM、BEA、Oracle、JBoss，甚至是微软，都会围绕着Java标准展开一场殊死搏斗。也许Java EE的未来将是一场血雨腥风。<br /><br /><b><font color="#0000ff">Sun的回马枪：以GPL协议开源的Java</font></b><br /><br />    IBM这个城府极深的家伙总在不断地算计别人。就在Sun和微软最终和解的2004年，IBM又不遗余力地“劝说”Sun将Java开源。而当时Sun还是站在开源的对立面。面对IBM给自己的一封公开信，Sun总裁麦克利表现出了极大的反弹，并公开表达了对这封信的反感和对开放的排斥。有趣的是，在两年之后，Sun的态度发生了180度的逆转，不仅将Java开源，而且是在GPL协议下开的源。GPL在开源协议中是最接近自由的协议，这下可给IBM一个措手不及。 <br /><br />    在Sun公布这一消息之后，英特尔、RedHat都对此表示高度的赞许，而IBM的态度却让人捉摸不透。除了一份声明外，并没有其它的任何反应。 <br /><br />    其实Sun这次开源也算是破罐子破摔了。在Java诞生的11年里，Java为Sun赢得了无数的声誉，但Java对于Sun来说就是叫好不叫座。而恰恰相反，Java却成就了BEA、JBoss、IBM等公司。可Sun除了为Java而付出的大量开发和维护费用外，几乎没得到没么好处。而这次开源，Sun干脆将Java开源到底，直接选用了最开放的GPL协议，反正Sun也没从Java得到什么，当然，也不怕失去什么。Sun的这个举动是几乎所有人都始料未及的。而最受刺激的就是IBM。在开源的当天，IBM发表声明建议Sun还是以Apache协议来开源Java。这说明，Sun这一举动给了IBM一个回马枪、打得IBM错不及防。 <br /><br />    IBM一开始想让Sun在Apache等限制比较多的协议下开源，然后凭着IBM的影响力来控制Java在未来的发展方向。而这下Sun将IBM的计划完全打乱了，一但以GPL开源，就意味着任何人都可能自由地修改Java的代码，而IBM将很难控制局面。 <br /><br />    Java的开源其实对于Sun是好处多多，起码它可以省下大笔的开发Java的费用，当然，还能赢得一个好名声。除此之外，还可以借助于开源社区的力量，对Java那臃肿的构架进行改进。Sun还发表声明说，在未来，还打算将Solaris、OpenOffice等软件以GPL协议进行开源。这将给Sun带来更大的发展机会。 <br /><br />    而IBM和其它的软件公司也正在试图寻找开源赢利模式。IBM几次想控制Java都未能完全如愿，现在Java也以GPL协议开源了，看来，IBM要想进一步地控制Java的可能性已经不大了。而Java的开源也有不利的一面，这将表现在可能出现其它的Java版本，到那时，可能会在一定程度上破坏Java的“一处编译、到处运行”的特性。 <br /><br />    总之，不管Java标准是分裂，还是统一，有一点永远不会变，那就是Java会一如既往地向前发展。但愿我们将来能看到一个崭新的Sun和Java。<img src ="http://www.blogjava.net/dwys0343/aggbug/90821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dwys0343/" target="_blank">特兰克斯</a> 2006-12-29 22:59 <a href="http://www.blogjava.net/dwys0343/archive/2006/12/29/90821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>