如果你看过之前的文章,应该对Oracle状告Google侵犯专利有所了解。上次事件之后,Google显然没有服软,接着,Oracle指出GoogleAndroid平台偷窃Java代码,将事情推向了另一个高度。今日,JCP重要成员Apache基金会宣布,如果Oracle不给Harmony提供兼容性测试,将退出JCP,并号召其它成员抵制Java7所有这些事件不仅是对Google的威胁和打击,而且直接关系到AndroidJava语言的前途。

自由的语言,不自由的平台

Java号称是跨平台的语言,简单的说,它是在不同平台之间搭建一个相同的软件运行环境。或说是Java虚拟机。虚拟机起到一个承上启下的作用,开发者不用考虑平台,只要保证自己的程序能够在虚拟机上运行,而实际的硬件操作由虚拟机联系操作系统完成。

Java原本属于Sun公司。Sun一直是一个在商业和开源之间走着平衡的公司。虽然,Sun开发了大部分的Java平台代码,但任何公司的平台,如果想要运行Java程序,仍就必须购买Java虚拟机的使用权,这涉及到安全和技术支持问题。从手机平台来说,诺基亚、RIM等公司的手机平台都支持Java程序,就是因为它购买了Java虚拟机的使用权。

Apache基金会的Harmony

Apache基金会的Harmony计划是试图提供一个Java的开源实现,就是说试图使Java平台脱离Sun的控制,获得充分的自由。这就是Harmony计划产生的原因,对此Sun自然不会很高兴,一是商业原因,二是可能产生的平台分裂。因此,Sun虽然没有起诉Apache基金会,却一直没有给Harmony提供兼容测试,同时SunJava平台的使用上有限制,因此Harmony的代码是不能使用到手机上的,当然Apache也没有这个计划,所以事情就搁置了下来,直到Android的出现。

Android之道

AndroidDalvik虚拟机运行的不是Java程序,可以说Dalvik完全可以运行其它语言开发的程序,但是Google为了吸引Java程序员,允许程序员使用AndroidSDKJava代码转换成Dalvik可以运行的代码。它是如何实现的呢?Google在开发Android的时候,雇佣了Sun的一些程序员,利用Harmony中的开源Java库来实现Java程序的转换,避开了授权费用。这意味着开发者可以使用Java语言为非Java平台开发程序,Android的火爆发展不能给Sun带来商业利益,而且可能造成平台分裂。

Java7的到来和Apache的反抗

自从Oracle掌权Java之后,JCP便逐渐为Oracle所抛弃,这意味着Oracle要独自控制Java平台。做为JCP一员的Apache基金会已经无法影响Java的方向,它的Java开源实现Harmony也被Oracle之门外,因此,Apache基金会的存在只是一个形式而已。

Oracle拒绝给Harmony提供兼容测试,这意味着HarmonyJava平台的彻底分裂,随着Java7的到来,这个问题将更加严重。这是否意味着Java语言升级之后,Google不得不重新编写底层代码已适应新的Java语言,但是Google这将是一项耗时费力的艰苦工作,而自己编写的实现也许会再次遭到Oracle的起诉,因为Oracle已经推出自己的开发环境OpenJDK,获得了IBM和苹果的支持

Apache基金会目前已经正式声明,号召其他成员抵制Java7,如果Oracle不提供Harmony的兼容性测试,将退出JCP,这意味着JCP内一个最大的开源势力推出Java,下一步便是彻底的决裂,这对Google会产生什么影响,仍无法预料。

法律和技术的双重困境

Android已经成为Google的收入生命线,Google自然不会让步,在最近的回击中,Google指出,即使存在侵权(或抄袭)的可能,也应该由第三方负责,因为Google使用的是第三方的开源实现。法律问题先放在一边,从技术上来说,Google也面临着困境,因为Android的开发者使用的是Java语言,如果失去官方提供的支持,将是一个严重的问题。

Java陷阱

开源领袖RicardStallman早就指出Java是“带着镣铐的自由”(Freebutshackled),警告开发者谨防Java陷阱。此后,Sun开源了大部分的Java实现代码,因此Java陷阱已经可以避免,但仍然要注意使用完全自由的平台,因为并非所有的平台都是自由的。

如果Google收购Sun,将Java收归己有,或者当初与Sun达成协议,也许今天情形会不同。或着当初开发Android的时候,Google应该培育自己的Go语言,而不是急于利用现有的Java开发者队伍。Java关于开放的说法只是一个假象,而如今Java易手,一切都改变了。

很难想象Google会放弃Android系统,问题是如何发展它。Java将逐步脱离开源社区,沦为Oracle的生财之道,这是一个利益当头、注重企业而不考虑个人开发者的公司,与Java的纠缠不清只能带来更多的麻烦

Android 其实是在帮助 Java

现有的智能手机平台中,Java已经不是开发者的首选,iOSMeeGo都有自己的开发环境,WebOS不需要Java实现,而RIM也在逐渐抛弃Java,转向AdobeAIR,这意味着Java在手机市场的空间在逐步缩小。讽刺的是,现在Android飞速发展反而有利于 Java语言在手持领域的地位。如果Google抛弃Java是否Java将只能在低端机之间苟延残喘,逐渐消亡呢?相信随着Web开发技术的进步,HTML/CSS/Javascript这样的网络开发环境将成为网络应用的首选,而底层应用开发将会是C/C++的天下。

Oracle的作法也许只是加速Java在手机领域的灭亡而已,当然是在它收完最后一笔保护费之后。

© merlin for爱范儿: 拇指资讯小众讨论,

更多相关文章

  1. C语言函数的递归(上)
  2. Android(安卓)开发技术周报 Issue#285
  3. html5写链接打开ios和android本地应用
  4. Android集成Huawei PUSH(四)——客户端开发
  5. rtmp/rtsp直播播放器选择
  6. 如何快速学习一门新技术
  7. android架构层次了解及涉及技术归纳
  8. Android多渠道打包以及发布方法
  9. 谷歌I/O大会宣布开放注册发布预览版Android(安卓)N七大新特性

随机推荐

  1. android.graphics四、Android中图像变换M
  2. Android的崛起和面临的困境
  3. Android开发工具使用之adb
  4. android保存数据(意外被清理的情况下)和and
  5. 企业Android客户端开发优势
  6. 购买2019最佳性价比Android智能手表(smart
  7. android 图片压缩技术 见解
  8. Android(安卓)8.0 新特性及开发指南
  9. android Studio gradle so的加载
  10. 安卓开发学习之001 LinearLayout之androi