【转载】谷歌酝酿将苹果Swift作为安卓APP主要开发语言
TNW中文站 4月8日报道
安卓操作系统的软件开发语言是Java,而在过去几年中,有关Java的版权,谷歌(微博)和甲骨文之间发生了长期的诉讼。最新外媒消息称,谷歌正在考虑将苹果开发的Swift作为未来安卓软件开发的“一级”语言,此外Facebook、Uber等公司也开始越来越重视Swift的使用。
据美国科技新闻网站TheNextWeb引述知情人士报道,此前苹果Swift转变为开放源码语言,而谷歌、Facebook、和Uber三家公司的代表曾经在英国伦敦开会,专门讨论Swift语言,谷歌决定逐步在安卓系统中采用这种语言。
Java目前是安卓开发最为重要的语言。消息人士表示,至少在最初阶段,Swift语言不会取代Java的重要地位。目前谷歌和甲骨文之间有关Java的诉讼仍在持续中,引发了外界隐忧,消息人士称,谷歌认为Swift和Java相比有着广泛的优势。
Swift目前是一种开源语言,这意味着谷歌可以将其应用到安卓软件开发中,同时不改变安卓的开源移动架构。
谷歌会这样做吗?
Swift由苹果公司开发,目的是取代古老的开发语言Objective C。Swift很快获得了苹果开发者的欢迎,据称软件代码更容易编写、没有其他语言的复杂参数结构。
Swift语言在2014年苹果全球开发大会上发布,随后获得了许多科技公司的支持,比如IBM、专车公司Lyft、Vimio、Pixelmator等都在使用Swift语言开发自己的iOS软件。
不过,Swift不能够轻易到“拷贝黏贴”到其他操作系统上,如果谷歌要将其作为安卓开发语言,谷歌首先必须开发一个Swift的“运行时库”,这还只是第一步。
谷歌还要把整个的安卓应用软件开发库移植到Swift上,另外各种软件开发结构和开发包,都要支持Swift语言。据称,目前安卓底层的开发接口采用C++语言编写,Swift不能够轻松兼容,因此谷歌可能要重写编写这些接口的代码。
另外在使用Java高级开发接口方面,Swift语言也会遇到麻烦,谷歌需要做一些重写代码的工作。
不过,将Swift作为安卓主要开发语言,从技术上并非不可能。去年底,知名软件开发员Romain Goyet曾经试验用Swift来开发安卓软件,并且取得了成功。他的试验发生在苹果将Swift开源之前,但这也证明Swift可以用于安卓软件开发。
据悉,上述的试验使用了“安卓NDK”工具,这一工具也能够让其他开发语言应用于安卓开发。不过,因为Swift已经转变为开源语言,此外背后还有谷歌的支持,因此未来如果作为安卓主导开发语言,开发者可能不再需要这一工具。
总体而言,如果使用Swift语言,谷歌可能要重新进行围绕Java的相关工作。
Kotlin语言
消息人士还透露,谷歌也曾经讨论是否将另外一种语言Kotlin作为安卓开发的一级语言。
和Swift一样,Kotlin也是面向对象的语言,更加关注软件的安全性。不过和Swift不同的是,Kotlin能够在谷歌提供的安卓开发工具“Android Studio”中。
不过,消息人士透露,谷歌相关团队目前认为Kotlin语言在进行编译时,速度有些慢。
Kotlin语言被认为能够应用于任何Java语言运行的环境中,另外一些开发项目也能够无缝支持混合使用Kotlin语言和Java。
如果谷歌将Kotlin语言作为安卓开发主要语言,那么谷歌需要做的移植工作相对少一些,但是开发者可能面临艰难的过渡。
Facebook和Uber
因为Swift的一些技术优势,Facebook已经开始重视这种语言。Swift的优势之一,是能够同时作为后台开发和前端开发的语言。对于Facebook这样的社交网络产品而言,这种特点很有帮助。比如移动应用软件和服务其能够无缝通信,另外Facebook也能够更容易推出各种服务的开发接口。
Facebook已经开始使用Swift进行开发。最近在开源项目存放服务Github上,出现了一个名为“Port to Android”的项目,由Facebook的员工开发。不过目前还不清楚这是否是Facebook官方正式的开发项目。不过可以证实的是,Facebook内部已经在使用Swift语言,只是不为外界所知。
和谷歌、Facebook相比,移动专车公司Uber使用Swift语言的道路更加明晰。Uber在开发中也存在大量的服务端、开发接口等,不过竞争对手Lyft使用Swift,给Uber提供了一个参考的榜样。
何时会采用Swift?
不过短期之内,Swift还无法作为安卓开发的主导语言,主要原因是安卓操作系统需要做好大量的准备工作。
不过,Swift语言正在星火燎原。一些研究显示,Swift目前已经成为全世界发展速度最快的程序开发语言,另外转向开源之后,更是出现了火箭式暴增。GitHub披露,在其平台上,Swift的流行度排名第11位。
另外,市场对于Swift开发员的需求正在迅速增加,至少表明一些科技公司正在探索用Swift开发软件。
不过,谷歌安卓操作系统使用Swift的道路很漫长,其需要重写安卓的每一个系统服务、软件和开发接口。谷歌也必须提供很多的支持工作。
另外,谷歌实际上已经在离开甲骨文主导的Java语言,谷歌已经在使用安卓的“Open JDK”,而不是甲骨文拥有版权的Java API,另外谷歌也开始考虑“后Java”的一些问题。
本文转载自http://tech.qq.com/a/20160408/010216.htm
【转载】谷歌酝酿将苹果Swift作为安卓APP主要开发语言的更多相关文章
- 苹果Swift可为Windows/Android开发软件了
http://www.swifthumb.com/article-189-1.html http://iphone.tgbus.com/news/class/201502/20150211103418 ...
- 安卓app应用开发资料
android 配置文件画图 http://blog.csdn.net/loongggdroid/article/details/46687589 android下拉刷新控件 https://gith ...
- swift初探(供objective c开发人员參考)
6月初的wwdc苹果推出了一门新的开发语言swift.系统10.9.3以上安装xcode6 beta版就可以体验swift. 苹果公司做了尽可能多的努力让这门语言迅速成为一个工业级的有用编程语言,而不 ...
- 年过三十,我为什么要学习ios 与安卓App 移动端技术
今天跟我华为的同学谈了一些技术/人生方面的感悟,感觉自己的人生目标及后面的工作/生活有了一个比较清晰的认识与规划. 首先我谈了一下我为什么要学习ios与安卓技术,我其实不想通过这二门技术来提升我的薪酬 ...
- 谷歌公布全新设计语言:跟苹果Swift天差地别
今日凌晨.谷歌(微博)在I/O大会上公布了全新设计语言Material Design.在20多天前的WWDC上.苹果也公布了全新编程语言Swift.两家科技巨头公司,在一年一度的开发人员大会上,都公布 ...
- 安卓app和苹果app共用一个二维码
应项目要求,现在安卓app和苹果app共用一个二维码,对外提供下载: <html> <head> <meta http-equiv="Content-Type& ...
- 【转载】安卓APP架构
注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...
- 幼谈苹果新开发语言:Swift和苹果的用心
今天是个值得纪念的日子:因为苹果的WWDC大会.苹果的每次WWDC(全球开发者大会)举行都让我们像打了肾上腺素这么兴奋.幸福.惊叹.震撼.深思. 今年也不例外,最关键的是苹果带来了它的一门新开发语言: ...
- 苹果Swift语言中文教程资源汇总
苹果swift语言中文教程(零)搭配环境以及代码执行成功http://vjiazhi.com/kaifa/1014.html 苹果Swift语言中文教程(一)基础数据类型 http://vjiazhi ...
随机推荐
- 里氏替换原则(Liskov Substitution Principle)
开放封闭原则(Open Closed Principle)是构建可维护性和可重用性代码的基础.它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码. ...
- Alpha阶段冲刺总结
Alpha阶段冲刺阶段总结 预期计划: 本阶段的预期计划是实现打地鼠游戏的基本功能,包括:游戏功能.难度调节功能.计时功能.计数记分功能.DIY设置功能.分数记录功能. 实际进展: 在经过三周的Alp ...
- Angular实现递归指令 - Tree View
在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. ...
- 微信自定义分享到朋友圈API
<script src="http://s0.qhimg.com/!249ce048/WeixinApi.js" type="text/javascript&quo ...
- sublime 3 快捷键
来自(http://dengo.org/archives/970) Sublime text 3是我最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率. ...
- 字符串查找String.IndexOf
String.indexOf的模拟实现,没想象中有多么高深的查找算法,就是最普通的遍历查找 思路:先找到第一个相同的字符,然后依次比较后面的字符,若都相等则表示查找成功 /** * 查找字符串patt ...
- WebApi系列~自主宿主HttpSelfHost的实现
回到目录 宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自 ...
- struts2学习笔记之十二:struts2对异常的自动处理
在UserAction类中引发异常,但是不处理 package com.djoker.struts2; import java.util.Date; import org.apache.struts2 ...
- Atitit.异步的实现模式attilax大总结
Atitit.异步的实现模式attilax大总结 1.1. 函数回调(包括的future模式)1 1.2. 事件机制( 包括定时器 listeners 1 1.3. 中断机制1 1.4. 订阅机制 发 ...
- Atitit.现在的常用gui技术与gui技术趋势评价总结
Atitit.现在的常用gui技术与gui技术趋势评价总结 1. Gui俩种分类: native 和 dsl 和 script1 2. 最好的跨平台gui技术h51 2.1. 几大技术体系(java ...