|
|
51CTO旗下网站
|
|
移动端

Swift难以主导Android平台的四个理由

让Swift成为Android平台上的主流开发选项无疑困难重重。在今天的文章中,我们将一同探讨谷歌为何仍然需要倚重Java。

作者:核子可乐译来源:51CTO|2016-04-21 16:02

【51CTO.com快译】谷歌是否会将苹果的Swift语言视为Android平台上的“一等公民”? 让Swift成为Android平台上的主流开发选项无疑困难重重。在今天的文章中,我们将一同探讨谷歌为何仍然需要倚重Java。

要找到答案,我们不妨考虑另一个更为具体的问题:谷歌需要投入多大力量才能让Swift成为Android开发者与用户的首选?另外,谷歌为什么要费力选择这样一条坎坷而漫长的道路?

难题:Android部分

从Android转移至Swift就如同我们举家移民一样困难。首先,谷歌需要为Android开发Swift运行时,并保证其功能与现有Java运行时一一对应。谷歌在这方面已经做出了一些尝试——包括将Dalvik VM替换为速度更快的ART运行时,但二者仍以Java为基础。

更困难的是,Swift几乎无法成为Android平台上的首选语言。投入Swift怀抱的工作必须逐步完成——即首先同时使用Swift与Java VM,而后慢慢只保留Swift选项。这种过渡需要耗时数年,特别是在Android这样广泛普及的生态系统当中。

苹果也面临着类似的难题,因为其在过去两年中同样需要在生态系统中同时维护Swift与objective-c。在这一系统当中,苹果拥有着绝对的主导权。但Android相对来说麻烦更多,因为其拥有大量运营商、手机制造商再加上谷歌自身这三股重要力量需要平衡。

最终,这一举措还需要Android开发者的积极加入——而大多数人对Swift并不太感兴趣。

难题:开发者部分

除了谷歌制定决策外,开发者也需要加入进来才能保证Swift顺利过渡至Android。

当初Android之所以选择了Java,是因为其拥有丰富的开发资源以及从业者基础。但更年轻且测试工作还不够完善的Swift则缺少同样的发展动力。

不过Swift确实势头强劲,各开发商的认同已经让其在今年4月的Tiobe编程语言排行中位列前二十(目前为第十五名)。

当然,开发者也需要耗费相当长的时间来了解并彻底掌握新的语言——这意味着Swift将与Java继续共存下去。

由甲骨文转向苹果

就目前来讲,Android计划使用OpenJDK而非甲骨文的Java,这主要是由于后者总是在拿后者的知识产权骚扰谷歌的开发工作。但毫无疑问,甲骨文在未来仍将继续主导Java的发展方向。

同样的,Swift则是苹果的宠儿。即使已经被转为开源,这也只是Swift为了长久发展并在跨平台应用中得到肯定的途径。如果其能够降低平台与运行时对专有技术的高度依赖性,相信谷歌也将不断且积极地推动Swift转型。

但需要再次强调,Swift的前进方向由苹果所掌握。谷歌当然不可能希望自己被关键性竞争对手所控制——即使相关技术方案属于开源项目。从理论角度讲,谷歌确实可以为Swift打造fork并借此取得主动,但对完整语言的维护与管理工作将带来高昂的成本。

按谷歌的思路,转向Go也许更为靠谱

如果谷歌方面真的希望摆脱第三方语言与运行时的束缚,那么由Java转向Swift可能并非最好的选择。内部建立语言、运行时及工作链才是理想途径:Go,或者说Golang,正是谷歌的救世主。

Go目前已经被应用于移动开发领域。其1.5及更高版本能够同时支持Android与iOS,且具备“app”软件包,意味着开发者能够为这两套平台编写全Go应用。当然需要指出,移动设备对Go的支持能力尚处于实验性阶段。

如果谷歌公司将Go或者Swift作为Java之外的Android平台补充方案,那么还有大量工作需要逐步完成。就目前来看,Android生态系统在相当长的周期内仍将以Java为核心。

原文链接: Swift难以主导Android平台的四个理由

【51CTO.com独家译稿,合作站点转载请注明来源】

【编辑推荐】

  1. 用Swift来写命令行程序
  2. Android设计模式之单例模式
  3. Android-超简单实现图片圆角
  4. Android自定义View-SlideListView
  5. 基于MapBox在Android应用中集成地图支持
【责任编辑:李英杰 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢