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

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

【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独家译稿,合作站点转载请注明来源】

 

责任编辑:李英杰 来源: 51CTO
相关推荐

2016-04-26 10:19:39

周刊

2020-06-04 08:15:53

Kubernetes容器PaaS

2010-10-15 10:52:04

跳槽

2019-07-18 11:58:27

安全分析师SOC网络安全

2022-10-28 12:10:03

云计算企业

2009-05-22 10:28:07

2023-11-03 00:28:44

ApacheFlink

2021-07-20 22:56:03

手机软件iPhone

2009-03-11 08:38:18

RIM黑莓移动操作系统

2023-05-17 09:07:58

IT项目标准化

2010-08-10 09:34:14

FlexBlazeDS

2009-07-08 16:25:15

Scala的特点类型推断

2016-08-18 00:44:38

Python编程语言

2016-12-09 09:31:22

HadoopSQL大数据

2017-07-31 08:47:58

2017-08-10 09:00:18

2024-06-25 12:45:05

2013-03-18 13:31:28

2022-02-23 15:09:18

数字化转型国有企业数据

2011-12-14 09:47:04

Android平板电脑
点赞
收藏

51CTO技术栈公众号