Java吸引了越来越多的商业机构和软件开发商,但在赢得最终胜利之前Java还需要克服一些主要障碍。
最近的研究表明 微软 公司开发的编程技术仍然是软件开发商采用的最重要语言。但Java正在逐步地拉近同微软编程语言的距离。根据2000年度IDC研究报告,当时有300万人在使用C 和C++ 作为自己的主要编程语言,Visual Basic开发人员有230万,Java开发人员则只有120万。市场研究公司Evans Data则报告说,使用Java的人越来越多,而 C和C++开发人员的数量则在显著减少。
这一趋势在学术界也得到了反映。在麻省理工学院,计算机科学系早在1997年就用Java 取代了微软的C++作为学生必须掌握的主要软件语言。今年春季,加州大学伯克利分校就开设了25门Java课程,而针对微软编程语言的课程只有7门。 麻省理工学院的副教授Daniel Jackson说:“照我看,Java将很快取代其他所有的编程语言,尤其是C++。”这位学者提醒注意,大学生甚至在上Java课程之前就在逐渐地自学Java了。在2年的时间里,学院将把针对高中生开设的大学级学分课程的高级测验由C++转到Java。
但是,甚至在面临如此令人鼓舞的迹象同时,分析家和软件公司官员仍然认为若干因素会阻碍Java的成长。第一个可想而知,这就是同微软公司之间展开的、不可避免的竞争,微软已经发布了称为C#的编程语言,C#非常类似Java,而且它还推出了一个部分模拟Java的Internet软件策略。
第2个障碍来自Java阵营的内部,很多软件公司所发布的产品并不遵守业内达成的一致标准。尽管大大小小的软件不兼容最后都会得到一定的处理,但是,Java的支持者们害怕这种不受约束的软件开发可能会引发混乱和潜在的冲突,结果令这项技术的开发者们无所适从。
最后,Java自身的复杂性也一直是一个问题。分析家说,为了突破掌握高级开发技能的程序员的狭窄范围而令主流开发者接受Java,软件制造商不得不在易用编程工具领域被微软牵着鼻子走:允许程序员只需要点按鼠标之类的操作即可开发Java程序。特别地,他们对称为企业Enterprise Java BEAn标准大加批评,该标准实际上是通过重用小部分软件来节约开发时间。更容易使用的Java工具将有助于增加使用这一语言的软件开发者数量,从而产生越来越大而且越来越健康的Java市场。 Giga信息集团的分析员Mike Gilpin声称:“要博得开发者和独立软件供应商的青睐就必须考虑以上的问题。”
自从Sun Microsystems公司在7年前发明Java技术至今,软件开发程序员普遍接受了Java,首先是应用于网站建设,其后又进入了企业因特网和电子商务领域。今天,Java又在诸如蜂窝电话、在线游戏、股票信息等、餐馆定位乃至实时信息处理等新兴市场中大展身手。
尽管Java最初目标是取代PC上占霸主地位的Windows,而且这一目标完全失败了,但是,拥趸Java的阵营已经能让Java技术得到尽可能地普及。Java今天的成功部分地归于开发者和客户,其实,他们仅仅希望世界上除了微软还应该有其他选择,微软巴不得从手持设备到企业服务器,在任何设备上都最好运行着Windows。
作为反对Windows霸权阵营的一员,Sun发誓要让Java运行在任何设备上,而且所有的程序都不必重写,这就是赫赫有名的“只写一次,处处可行”原则,显然该原则同微软坚持世界上只有它的操作系统这一战略是完全对立的。Java很快就赢得了其他微软之敌的支持,比如IBM、Oracle和BEA Systems等。
然而,这种编程语言实际上并没在完全实现多重设备上运行同一代码的承诺。结果,商业机构这才觉察到,相比它们在选择Java时所做的估计,现在花得的时间和金钱比预想的多得多。
Meta集团分析员Zachmann评价说:“‘只写一次,处处可行’这条原则在服务器端压根就没有起过作用。”
许多人认为这个问题源自Java标准的通过被拖延得太久,这个标准花了12到18个月的时间才完成。软件开发商又面临着争取新客户的竞争压力所以无法等待那么长的时间。因此它们只能定期地改进和发布基于非标准技术的Java软件。
大多数的Java软件开发商把它们的尖端技术提交给Java Community Process,这是一个由Sun和其它Java公司参与发起的组织,负责研究和制定未来的Java技术标准。如果提交的技术得到了标准认可,其他的软件开发商就可以采用这一技术了。但是当新标准真被制定出来的时候,Java公司却又发明出了虽然不是标准但却给它们带来竞争力的新技术。
为了在有利可图的电子商务软件市场获取有利地位,BEA、IBM和其它Java软件开发商都摆弄出了如此之多的非标准技术并应用在们的应用服务器和其他产品之中,使之运行更快而且更可靠。这样一来,客户不得不关心兼容性的问题,能在某Java开发商的应用服务器上运行的软件却不能100%在其他开发商的产品上运行。
Iona公司产品主任Simon Pepper认为:“我们不得不关注这一不兼容事实,我相信,正是这一原因使Java陷入分裂状态而且令Java开发者感到无所适从,所谓的‘编写一次,处处可行’的目标并没有实现。结果令Java在兼容性能上的良好形象大大受损。同时却为微软打开了攻城夺地的方便之门。如果技术是分裂的,而且开发商也是分裂的,这肯定会令开发者怀疑Java是否真是一种优秀的技术。”