Android对Java SE的影响
如上所叙述,Android平台的推出将使Sun的Java移动平台受到影响。那么它是否会影响Java SE?有什么影响呢?或许有的人会说,毕竟Java SE被用于桌面和服务器端应用开发,它怎么会被一个移动平台所威胁?但是Android的确对Java SE有影响,这要从Sun公司对Java SE的未来定位说起。
最近,Sun一直在致力于统一Java ME和Java SE平台。这一点从Java之父James Gosling的一段话中可以看出些许端倪:
“我们正在尽力把所有事情汇聚到Java SE规范上。移动电话和机顶盒的应用正在增长,这种汇总可能需要花费数年的时间。”
不要认为James Gosling的这句话仅仅是在谈论Sun去年初刚刚推出的JavaFX Mobile,它是针对整个Java SE平台的,而不是Java ME。简而言之,Sun公司没有把Java ME做大做强的打算,它们的宝押在了Java SE上。毕竟,Java ME是针对那些具有低内存和有限处理能力的“受限设备”而设计的。但是,随着技术的发展,这种情况将不再适用于移动设备。智能电话正在变得越来越强大,它开始具有更强大的处理能力和更大容量的内存。移动电话仅仅是一个简单设备的时代已经结束,移动电话正在朝着一个完整的计算平台发展。
对于Sun公司来说,Java ME的逐步被淘汰和将Java SE扩展到移动平台的战略非常重要。因为这符合其对Java的最初定位。它将为所有计算设备创建一个单一平台。这对于实现跨计算平台的兼容性Java实现来说具有重大的意义。但是,不幸的是,Android的推出将使移动Java社区分裂成Java ME和Android两个不同的阵营。
随着Java ME作为一个移动开发的标准平台的逐渐推出,Java SE将取代它的位置,一个支持所有计算设备的兼容性平台将变得更加重要。Java SE将成为一个支持移动开发、桌面开发和服务器端开发的标准。企业开发人员在桌面和服务器端编程中的经验将直接可以应用到移动平台中。
不幸的是,Android的推出正在阻碍这一美好前景的发生。它告诉业界,Java不支持兼容跨计算平台。
Java今天最强大的地方在于其一致性和普及性。如果没有了一致性,你将面临多种不同的Java版本,因此也就没有了真正的普及性。没有了普及性,就几乎很少有什么突出的特点让人们选择它而不选择.NET平台。实际上,微软的.NET开始更具有吸引力,因为它可以被始终如一的实现。Java今天所具有的最大的市场财产——“一次编写,处处运行”的标准化——也将丧失殆尽,而这对微软来说当然值得庆祝的事情。