近来,本来平静的Java世界再起涟漪!围绕着Java的战争似乎从来就没有停止过。先是Oracle与Google反目,后是JCP重要成员Apache基金会宣布,如果Oracle不给Harmony提供兼容性测试,将退出JCP,并号召其它成员抵制Java 7。这样一来,问题的矛头直指Java 7。
而就在近日,Oracle宣布,Java 7将于2011年7月28日推出。Oracle同时表示,公司已于近日向Javap社区进程执行委员会提交了Java 7和Java 8的信息,并等待批准。Java平台首席架构官马克•莱因霍尔德在其博客中表示,两周内将会得到结果。
几方面的信息汇总在一起,就不禁让人产生联想:Java 7的到来会不会是Java走向分裂的开始?
祸起兼容
说起兼容性,还得从Java语言本身谈起。Java语言从诞生之日起,就被下了一个定义:一次编写,到处运行。事实上,此言非虚。
Java 号称是跨平台的语言,简单的说,它是在不同平台之间搭建一个相同的软件运行环境。或说是 Java 虚拟机。虚拟机起到一个承上启下的作用,开发者不用考虑平台,只要保证自己的程序能够在虚拟机上运行,而实际的硬件操作由虚拟机联系操作系统完成。
Java原本属于Sun公司。Sun一直是一个在商业和开源之间走着平衡的公司。虽然,Sun开发了大部分的Java平台代码,但任何公司的平台,如果想要运行Java程序,仍就必须购买Java虚拟机的使用权,这涉及到安全和技术支持问题。
但规律之外总有特殊,Apache基金会的Harmony计划就是这个规律之外的特殊,原因就在于Harmony计划的目的在于使得Java平台脱离Sun的控制,获得充分的自由。对此Sun自然不会很高兴,一是商业原因,二是可能产生的平台分裂。因此,Sun虽然没有起诉Apache基金会,却一直没有给Harmony提供兼容测试,同时Sun在Java平台的使用上有限制,因此Harmony的代码是不能使用到手机上的,当然Apache也没有这个计划,所以事情就搁置了下来,直到Android的出现。
Android的Dalvik虚拟机运行的不是Java程序,但Google为了吸引Java程序员,允许 程序员使用Android 的SDK将Java代码转换成Dalvik可以运行的代码。Google之所以能够达到目的,就是利用了Harmony中的开源Java库来实现Java程序的转换,避开了授权费用。这意味着开发者可以使用Java语言为非Java平台开发程序,Android的火爆发展不能给Sun带来商业利益,而且可能造成平台分裂。
Java 7会不会成为导火索
自从Oracle掌权Java之后,JCP便逐渐为Oracle所抛弃,这意味着Oracle要独自控制Java平台。做为JCP一员的Apache基金会已经无法影响Java的方向,它的Java开源实现Harmony也被Oracle拒之门外,因此,Apache基金会的存在只是一个形式而已。
因此,甲骨文与谷歌反目,直接冲击的就是Apache基金会。Oracle拒绝给Harmony提供兼容测试,这意味着Harmony与Java平台的彻底分裂,随着Java 7的到来,这个问题将更加严重。这是否意味着Java语言升级之后,Google不得不重新编写底层代码已适应新的Java语言,但是Google这将是一项耗时费力的艰苦工作,而自己编写的实现也许会再次遭到Oracle的起诉,因为Oracle已经推出自己的开发环境OpenJDK,获得了IBM和苹果的支持。
Apache基金会目前已经正式声明,号召其他成员抵制Java 7,如果Oracle不提供Harmony的兼容性测试,将退出JCP,这意味着JCP内一个最大的开源势力推出Java,下一步便是彻底的决裂。
需要注意的是,在Tiobe发布的最新一期的编程语言排行榜上,位列第一位的依然是Java语言。但众所周知,开发领域正面临一次革命性的迁移。原来的应用更多地跑在PC机上,而未来各类应用将更多地跑在各类移动设备上。比起仅有10亿台PC规模的互联网时代,拥有百亿台设备规模的移动互联网时代,其发展速度将快于桌面互联网,其规模将大得超乎多数人的想象。
在这个背景之下看Java的发展,在这次迁移当中,Java本来就可能面对各类新兴开发语言的冲击。虽然苹果支持Java 7,但苹果有自己的Objective-C,并且随着iOS的火爆,Objective-C的地位可以说是在直线上升。
Adobe首席技术官凯文 林奇认为,Android系统的增长将会再次超过业界预期,在未来半年内,其将占据智能手机市场50%的份额。近管数字会有出入,但有一点是肯定的:Android系统一定会成为业界的主流操作系统。
这样一来,在移动应用开发领域,Java就不得不面临iOS与Android两大主流系统的竞争。在桌面和服务器端,从Tiobe排行上来看,PHP等语言的上升势头也非常猛。
面对这种情况,也许我们已经可以大胆断言:Java保持了多年的老大位子,会不会随着Java 7的到来而丢掉。也许,在以前的多少年内,这还只是一种推测,而在接下来的时间内,这可能将成为现实了。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。