在当今世上两大操作系统平台的竞争日趋激化的时候,J2ME(Java 2 Micro Edition 即Java 2微型版,注一)规范出现的问题让微软抓到了一丝可乘之机。于是,Java的未来世界出现了不为人知的变数。
[被屏蔽广告] |
笔者可以微软的嵌入式产品来说明这一情况-PocketPC、Windows CE以及Smartphone。微软旗下的各类嵌入式产品都有共同硬件设计规格,这是Sun以及JCP(Java Community Process)的其它竞争对手所没有做到的。
JCP的支持者们宣称在Java规范中留有余地将会为消费者带来Java产品的多样性、竞争性和多功能性。在进行Java虚拟机应用的开发时,将可能激励出更多的创新。
据Sun集团经理 Eric Chu称,让拥有4亿手持机市场(其中有7600万部手持机支持Java)繁荣的原因之一就是手持机制造商能够提供多种多样的产品,手持机市场并非是某个单独大公司能够一手遮天的。
任何嵌入式平台的继续发展和普及都离不开发人员,JVM未来的不确定性将伤害Java社团。Java规范的不可预见性必将辜负“编写一次即可运行在所有设备中”的承诺。一些Java开发人员对笔者说,根据他们的开发经验,“编写一次即可运行在所有设备中”简直是作白日梦。
Sun公司的首席工程师Rob Gingell也承认“编写一次即可运行在所有设备中”中的“所有”还无法实现。
笔者曾向Gingell抱怨对所测试的智能电话的失望-支持J2ME的摩托罗拉i95cl彩屏Java手机却无法运行另一部支持J2ME的同品牌手机的应用程序。原因是,尽管J2ME规范了业务逻辑,但开发者必须按照各种设备的不同硬件特点来进行Java应用的开发。
按照Gingell的说法,Java应用还是刚刚进入部分领域(类似笔者的Java手持机)-言下之意出现问题是难免的。他认为,在Java开发应用方面的完善确实碰到一些障碍,且尚未很好解决,“虽然还不尽善尽美,但离目标已经非常接近了”。
显示尺寸是造成各J2ME设备差异性的主要因素。显示尺寸的不同将使应用程序无法通用在不同设备中,比如说某些功能菜单显示不了,某些功能按钮显示不了等等。这些操作键在MIDP规范中(J2ME中的手机规范)定义为 “softkey”。因此,这一差异性使得开发人员不得不针对具体的各种手持设备进行开发,在一中设备中调试通过的程序,还要在另外一种设备中进行调试。如果希望应用程序具备更好的通用性,那么自然要研究更多的手持机,这样就造成了开发成本的提高。
Java的一个优点是:开发人员不用指定特定的客户端设备来运行应用程序,因此企业将拥有灵活的IT策略,因为其用户的客户端工具是不受限制的,只要其客户端工具符合J2ME MIDP规范。但上面所说的还属于一个美好愿望,至少到目前为止,还没有哪个商业应用开发者或企业开发者能够提供具备足够灵活性的客户端软件。
因此目前的情况就给行业大鳄微软公司带来了可乘之机。互联网中的信息也开始在便携设备中传递(比如PDA和手机等),微软了解这一趋势,并想方设法来推动和加速这一趋势。微软也深知,如要在目前仍被Java、Palm以及Symbian操作系统等控制的便携市场坐大,一定要建立移动环境(mobile environments)来拉拢还看不明白Java未来的开发人员。
不知您是否注意过PockdetPC设备的显示解析度?所有的POcketPC设备的显示解析度都是相同的。比如说T-Mobile的手机电话和出自戴尔的Axim,可以运行相同的应用程序,且显示效果毫不走样。这是因为硬件制造商在申请PocketPC许可的时候,必须和微软签署协议,同意按照微软的硬件规范来制造PocketPC设备。对于那些申请SmartPhone 2002 操作系统的厂商来说,也是如此。
Java社团承诺的“编写一次即可运行在所有设备中”的真正意思是“编写一次即可运行在所有支持Java的设备中”。而微软要以“编写一次即可在所有微软版本的设备中运行”来改写Java社团的诺言。
从微软模仿苹果公司进而一统PC硬件平台的历史来看,它很可能在PoketPC设备的定义、开发、设计和差异性等方面不会给授权制造厂商留有任何余地。微软的最高目标就是控制市场,因此这一结果是自然而然的。但是看看目前的PoketPC市场,除了显示解析度、处理器类型以及内存类型等方面的严格一致外,其它方面仍可以用“百花齐放”来形容,诸如在产品的外观设计、内置应用程序、辅助附件、定价等方面,各制造厂商各显身手,PocketPC市场因此而充满激烈的竞争,而消费者因此也可以进行广泛的选择。而PocketPC应用的开发者们也有明确的开发环境和目标(虽然条件还需改进,但比起Java社团旗下的开发者们要轻松些)。
[被屏蔽广告] |
[被屏蔽广告] |
Sun公司推出了MIDP 2.0来降低MIDP规范差异性的发展速度,此外根据Chu的说法,Sun公司为了最小化客户端设备之间的差异性,还成立了JSR 185小组(JCP内部的又一个工作组)。该工作组的任务是联络各电信服务公司和设备制造商,寻求最小化各方面差异性的解决方案。Sun公司已感受到目前市场的变化以及其所带来的挑战,也了解手持机市场将向“大一统”的方向发展。问题是,Sun公司不愿看到微软公司“摘桃子”,Sun希望Java联盟(当然包括Sun)与手持机市场共同发展。
如果让微软公司顺利得手,那么手持机市场将面临一场颠覆性的变革。因此初生的JSR 185如不及时采取行动来阻止微软的话,那么微软将赢得一切,而Palm和Symbian则有被迫出局的危险。
注一: J2ME:(Java 2 Micro Edition,Java 2微型版)是致力于消费产品和嵌入式设备的最佳解决方案. J2ME在设计其规范的时候,遵循「对于各种不同的装置而制定不同的开发系统是没有意义的事」这一基本原则。于是J2ME先将所有的嵌入式装置大体上区分为两种:一种是计算性能有限、电能供应也有限的嵌入式装置(比方说PDA、手机);另外一种是计算性能较佳、并请在电能供应上相对比较充足的嵌入式装置(比方说空调、电冰箱、机顶盒(set-top box))。因为这两种区分,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规范之中;而另外一种装置则规范为Connected Device Configuration(CDC)。也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126988/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-126988/