【转载】谷歌酝酿将苹果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 ...
随机推荐
- Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法
使用了Amazon AWS EC2免费云空间,数据库实例采用Amazon RDS.原来在Windows Server上有一个存在大量数据的MySQL数据库.现在需要在Amazon RDS上还原这个My ...
- JQuery源码解析(一)
写在前面:本<JQuery源码解析>系列是基于一些前辈们的文章进行进一步的分析.细化.修改而写出来的,在这边感谢那些慷慨提供科普文档的技术大拿们. 要查阅JQ的源文件请下载开发版的JQ.j ...
- 消息中间件与JMS标准
初识消息中间件 维基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on ...
- SQL Server Profiler使用教程,通俗易懂才是王道
做开发,平时难免和数据库打交道,特别是写存储过程,对于我们这些不常写SQL的人来说是一件极其痛苦的事,每次写完运行总是有错,如果用的是本地数据库的话还好,可以在本机调试SQL,那如果在数据库在服务器上 ...
- java提高篇(二五)-----HashTable
在java中与有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key ...
- 据说每个大牛、小牛都应该有自己的库——DOM处理
这几天整理了一下思路,本来觉得DOM部分会有很多东西,但是忽然发现频繁使用的其实并不太多 class class处理部分主要有四个 hasClass:检查元素是否包含某个class addClass: ...
- 爱上MVC~AuthorizeAttribute验证不通过如何停止当前上下文
回到目录 我们知道mvc里有一些过滤器,AuthorizeAttribute用来做授权,一般在用户授权方面可以使用它,当使用没有登陆,我们直接跳到登陆页,这是没有问题的,可我要说的是,当用户对某个Ac ...
- SDN跟网络虚拟化的完美结合
SDN跟网络虚拟化的完美结合 之前说过,所谓的“SDN最适合的领域是数据中心”的说法,笔者认为更准确的说法应该是SDN最适合的领域是数据中心中的网络虚拟化应用.为什么说SDN 非常适合用在网络虚拟化中 ...
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- OutputCache属性详解(三)— VaryByHeader,VaryByCustom
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...