政治斗争的代价!Java命运回忆录

来源:百度文库 编辑:神马文学网 时间:2024/04/30 21:45:14
政治斗争的代价!Java命运回忆录
[收藏此页] [打印]
作者:IT168 随风而行  2007-10-31
内容导航:
三大闪光点:Java 的美丽 第1页: 三大闪光点:Java 的美丽 第2页: Java 的企业雄心 第3页: 标准:JAVA社团进程 第4页: IBM 通过Eclipse劫持了JAVA 第5页: JAVA在桌面和网络上的败北 第6页: 编程语言政治斗争的代价 第7页: 结论:JAVA命运思考
【IT168 技术分析】。那是在1995年,C++ 还是构筑大规模软件系统的不二之选。C++ 是一款强大的目标导向的编程语言,是曾经被广泛应用的 C语言的继承者。但C++ 不仅强大,同时也非常的复杂。在老练的编程者享受着它所带来的错综复杂和无穷可能性的同时,编程新手们却在C++所构筑的迷宫中备感挫折

然后,JAVA出现了 —— 这是一种十分优雅、强大,但最为重要的是,十分简洁的编程语言。这款由James Gosling和他在SUN公司的研发团队所共同设计的语言,开辟了新的编程哲学,赢得了无数程序员的心灵和思想,改变了企业级别软件开发的规则,并且重创了微软公司。但是在它所获得的这些无比的荣耀之外,JAVA 同时也输掉一场最为重要的战役 ——网络浏览器之战。在这篇文章当中,我们将会回顾过去10年中在JAVA身上所发生的故事,从它那无比荣耀的崛起,到软件世界中的政治斗争,再到那无比遗憾的“网络浏览器之败”。
一、Java 的美丽
JAVA核心语言第一大闪光点是它的简洁。这款语言的创造者们从一开始就作出了许多假设和妥协,决定从编程者那里剥夺一部分权力。但是,由此所带来的好处要远远超过所丧失的自由。JAVA语言所具有的第二大闪光点是它的虚拟机(virtual machine)。要想要C++程序运行在另一个平台之上,这需要付出许多的努力,而在与之相对的是,JAVA应用程序却“天生”具有可移植性。

第三大闪光点是JAVA的程序库。JAVA程序库的意义非比寻常,因为它们将软件开发人员的注意力从关注程序的底层结构,转移到了关注程序本身。一部分早期的JAVA程序库从真正意义上定义了创新、适应性和可用性的标准。比如说,JavaBeans框架就向世人展示了组件的开发也能够变得简单(而不像COM 和ActiveX那样)。而这一系列框架为全世界的开发人员提供了可以重复利用的,并且是可以扩展的标准数据结构和算法。
但是,很可能JAVA最重要的闪光点在于,它教会了我们中的许多人去思考交互界面。任何一种以目标为导向的编程语言,其力量都在于对目标的提取,而这一切都是通过强调交互界面来实现的。而JAVA又将此力量向前推进了一步。通过拆穿遗传性(inheritance)方面的神话,JAVA将交互界面推上了目标导向编程语言的王座。
二、Java 的企业雄心
随着JAVA的日益流行,它的创造者们的野心也在日益膨胀。SUN公司希望JAVA无所不在:在互联网上,在桌面系统上,在移动设备上,在企业当中。企业市场看起来尤为具有诱惑力,因为SUN公司同时也将会拥有销售自己服务器产品的机会。这一切便导致了J2EE的诞生 —— 一款功能强大的,用于构建大规模企业应用程序的软件基础构架。但不幸的是,和早期的JAVA程序库不同,新的J2EE非常复杂,甚至是显得有点笨重。

然而,无论如何,J2EE推动了许多标准的产生,这其中也包括了可能是当今最为重要的一个标准 —— 现在应用程序服务器(modern application server)。在一次始料未及的形势变化过程之中,诸如BEA、IBM、甲骨文(Oracle)和Sun这些死对头居然联合在了一起,以创建一系列能够惠及最终消费者的技术标准。所有的这些工作都是通过JAVA社团进程(The Java Community Process, JCP)来完成的 —— 一个为了制定标准的JAVA标准规范的行业圆桌会议组织。
三、JAVA社团进程(The Java Community Process)
在最初的那些日子中,软件世界是非常缺乏标准的。从上个世纪80年代至90年代初,顾问公司们通过制造各种各样的适配器,将一种应用程序的输出数据转化成另一种应用程序的输入数据,而大发横财。在SUN公司通过JAVA而构筑了无数的丰功伟业之中,最为显赫的当属“JAVA社团进程(The Java Community Process)”,一个致力于,并且最后也成功构建了软件全行业统一标准的组织。
这是一个无比天才的战略计划,SUN公司“无私地”与大家分享了自己辛苦孕育出的“宝贝”,它竭尽全力地邀请每一个人都加入JAVA社团进程之中。整个进程由不同的阶段所组成,从引进一项新的标准规范开始。如果这项需求被确定,并被批准,那么紧随其后的“草案和评论阶段”将会将专注于制定这个标准规范的初始版本,然后再将它分发给公众进行测评。在这个过程中,任何人都可以提交自己的反馈,然后这些反馈会得到标准的作者团队的受理,并将所得出的结果再次融入到新的草案之中。
四、IBM 通过Eclipse劫持了JAVA
SUN公司凭借JAVA完成了许多漂亮的工作,但是它同时也在一些重要的历史时刻遭受到了挫折。首先,JAVA在微软Windows操作系统之上的运行速度居然比SUN自家Solaris系统要快,这简直就是奇耻大辱!这样一来,他们本打算以“专为JAVA所优化的系统”的旗号来促销自己的Sparcs服务器,很快便成了泡影。虽然SUN公司很快改正了这一错误,但已经太晚了,消费者们已经感受到了挫折。其次,在最开始的时候,SUN公司居然没有开发出一套自己的严肃的JAVA整合开发环境(IDE)。

IBM公司敏锐地抓住了SUN的这一失误,很快推出了自己的一套产品,并将它讽刺性地命名为“日食(Eclipse,而SUN的英文意思是太阳)”。这款开放源代码的JAVA整合开发环境不但让IBM公司控制了基础开发外壳,同时也让他们拥有了制定和发布自有JAVA版本的资格。IBM公司很快又做出了另一个聪明的举动:它向Eclipse软件当中添加了标准的开发工具,这其中包括了测试工具、压型工具、版本控制,以及其他等等。而所有的这些工具都是免费提供的。通过这种“免费行动”,IBM公司有效地将其他开发工具逼入了绝境,为大肆销售自己的Web Spheres(IBM 应用服务器)和Blades(IBM服务器)肃清了道路。
五、JAVA在桌面系统和网络浏览器上的败北
正如IBM智胜SUN一样,微软公司也依靠策略,而不是技术击败了SUN。一直以来,微软公司都在竭力地抨击JAVA的运行效率低下。这一点在早期也许是对的,但是现在肯定已不再是事实。事实上,在绝大多数情况下,JAVA的运行速度同原生应用程序一样快,这都要归功于实时编译和其他各种优化措施。但是微软的宣传机器并没有转移自己的攻击点,还是不断地反复强调JAVA的运行速度很慢,除此之外,还谴责JAVA的用户界面很糟糕。

点击看大图
上面的这张图片来源于Swing,其是由信息实验室(Information Laboratory)于2003年编写的,它展示了Swing能够在自己的图形界面中绘制成千上万的目标对象。
但不幸的是,JAVA最初的用户图形界面工具套装,AWT,根本不能与之相提并论。虽然SUN公司最终推出了Swing,一款品质卓越的用户图形界面框架(UI framework);它的运行速度要比自己的前任快得多,并且能够创造出同微软工具一样的应用程序。但是,谣言已经被广泛地散播开了,全美国的中层管理者都在不断地重复着微软公司同样的论调:在桌面系统上,JAVA还不够好!
然后,就是“Applet 大失败”。那些由JAVA所编写的小应用程序,也就是我们通常所说的Applet,因为自身早期迟缓的运行速度,以及之后人们对其固有的成见,每一个人都开始变得憎恨它们。由于人们对Applet的憎恨,JAVA失去了成为网络浏览器嵌入式编程语言的机会。这次失败是“惨烈的”,因为互联网到了今天已经变得是无所不在。令人更加悲痛的是,JAVA居然输给的是JavaScript(除了名字外,它和JAVA毫无关系)和Flash —— 这两者都是低劣的编程语言。当然了,最具有讽刺意味的是,JAVA从诞生之初就已经将互联网装在了脑中。
六、编程语言政治斗争的代价
从JAVA的故事当中,我们可以学到许多宝贵的教训。首先,是关于简洁和优雅。JAVA告诉我们:软件的编写是可以非常简洁的。
但是,JAVA故事的另外一半,则是有关于政治的。JAVA独自赢得了无数用户的芳心,这让它成为了众矢之的。IBM和微软,这两家公司都在自己历史中的不同时期一度控制着占统治地位的编程语言,因而它们都非常了解JAVA的价值,并发誓要将它毁灭。IBM“借刀杀人”的计划堪称完美。而微软公司则在竭尽全力地阻止 JAVA占据桌面系统和网络浏览器,并且它最终也取得了成功。

但是政治斗争的问题在于,最终受到伤害的总是广大的人民群众,而不是发起这些斗争的政客。事实上,在最近两年受到热烈追捧的AJAX技术,是一种粗俗而低劣的技术,与JAVA所具有的功能相比,它简直是相形见绌。如果JAVA当初能够成为网络浏览器的一部分,它完全能够以JavaScript同样的方式来处理HTML/DOM。但是,如果我们使用的是JAVA的话,我们不但能获得一个第一流的编程语言,还能获得一系列成熟的标准,健壮而丰富的应用程序库以及各种各样的开发工具。但遗憾的是,历史已经不可更改。
政治斗争的代价!Java命运回忆录
[收藏此页] [打印]
作者:IT168 随风而行  2007-10-31
内容导航:
结论:JAVA命运思考 第1页: 三大闪光点:Java 的美丽 第2页: Java 的企业雄心 第3页: 标准:JAVA社团进程 第4页: IBM 通过Eclipse劫持了JAVA 第5页: JAVA在桌面和网络上的败北 第6页: 编程语言政治斗争的代价 第7页: 结论:JAVA命运思考
七、结论
JAVA的第一个十年,是一段关于快速成长和广泛采用的辉煌历史。但与此同时,它也是一段为了争夺市场,而进行的各种各样政治斗争和各种错误抉择的历史。
使用劣质的编程语言和工具来开发现代的应用软件,这无论从任何角度来看,都很难说是正确的。JAVA已经走过了如此漫长而艰巨的历程,现在抛弃它将会是一个巨大的错误。在发明新的的编程语言,或重新发明新的完成任务的方式,整个软件行业应该暂时地停下来,重新思考一下JAVA在网络浏览器中的命运。
本文无疑是一片易于引发激烈争论的文章。每个人对这个问题都会有自己的看法。所以,请不要有任何顾虑,在本文后面的评论当中与大家分享你自己的想法吧!
(原文作者:Alex Iskold,文章来源:www.readwriteweb.com,点击查看原文)