Swift难以主导Android平台的四个理由
创始人
2025-01-28 17:40:20
0

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

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...