即使是封闭的苹果,也不得不开源了 Swift
在2015苹果WWDC上,最受欢迎和关注的不是iOS 9和OS X,也不是新的Apple Music,而是苹果软件工程副总裁 Craig Federighi 宣布,苹果的编程语言 Swift 2.0 将会开源。
为 什么大家会如此激动?在过去的15年间,开发者已经显示了对开源工具和平台的偏爱,然而苹果一直让开发者适应自己的技术,远离第三方技术。苹果这样做有一 定风险,有可能会与开发人员关系疏远,也正是这些开发人员一直在开发第三方应用或者服务。程序员想自由选择自己想要的工作方式 ,要留住他们,苹果不得不对外开放。
Swift发展非常迅猛,但近几年很多新出现的其他的编程语言都较着劲,想吸引开发者的注意。Facebook在使用Hack和D语言;Google开源了它的Go语言;Mozilla也推出自己的第一版编程语言Rust。这些编程语言都各有优劣,其中会有一种或者几种会成为下一个软件开发的标准,并且每种编程语言都已经开源。
重 要的是,去年微软决定开源它.NET框架。微软允许所有的开发人员有Windows以外的系统中使用自己的语言,包括OS X以及iOS ,并且还提供了代码,使得开发人员更便于根据自己的需要对 .NET进行修改或者延展。苹果面临这样一个事实,开发者将用微软的工具来为开发苹果产品,因 此它只能开源Swift。
苹果的目的
苹果在去年的WWDC上推出了Swift 1.0,替代Objective C。Objective C的历史可追溯到1983年,一直是开发iOS应用的主要语言。Swift是一种更加现代化的语言,增加许多新的特性,既可以帮助新程序员学会编码,也能 使有经验的程序员避免出现一些严重的错误。
尽管苹果已经不是第一次开源。苹果开源过Darwin(它是OS X的基础)和WebKit(Safari 浏览器的基础),但是苹果不会开源Objective C。理论上似乎可以将Objective C应用于其它操作系统,但如果没有苹果的帮助,跨平台代码很难。
Xamarin 公司开发的工具,能让开发者用微软的编程语言,开发运行在Windows,Linux,iOS和Android上的软件。这就意味着开发者不需要用 Java为Android开发,再用Objective C为iOS开发。他们甚至可以使用同样的代码,作为桌面或者服务器端应用的基础。
尽管大多 iOS 和 OS X 开发人员仍然在使用Objective C 或者Swift,苹果可以通过使得Swift用于其它操作系统,阻击微软。最终的结果可能是,苹果的语言用于为其竞争对手开发应用。
开源到底要多开放?
在一份声明中,苹果写道开源会包括Swift系统的核心部分,包括编译器和标准库,但在开源的程度上细节还不是特别清楚。
苹果很可能会保留关键产权,就像当初的Java那样。苹果也可能最终收回Swift的开源,就像当初苹果一度承诺将FaceTime作为一个视频通信的公开标准一样。不管怎么说,这对于作为苹果的Swift而言都是一个巨大的转变。
苹果本身也在协助将Swift应用于Linux中,并且能够接触到苹果用于开发软件的代码,其他公司也将能够支持Swift。然而,苹果却没有提到要开源Cocoa界面,这也是大多数iOS 和OS X应用的一个核心部分。
不管怎么说,Swift的开源至少给开发人员吃了一颗定心丸,保证他们不会陷入诉讼当中,就像当初Google与Oracle关于Java上漫长的版权之争一样。Oracle声称Google为Android开发了一个类似于Java的编程平台,这侵犯了知识产权。
将编程语言以及其他的一些开发技术开源之后,像苹果这样的公司能够保证开发人员合法使用技术。做开发已经够麻烦了,就不要用其它的事来打扰程序猿了。
文章转载自 开源中国社区 [http://www.oschina.net]

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Stack Overflow 发布 2016 开发者调查报告:JavaScript 最受欢迎,46%开发者没有相关学位
开发者问答网站 Stack Overflow 是颇受开发者欢迎的开发知识经验问答网站。网站每年都会对用户进行调查,了解开发者的构成、开发语言选择等情况。今年该网站对约 50000 名用户进行调查后的结果已经出炉,里面不乏一些有趣同时也令人深思的发现:比如说 JavaScript 仍然是最受欢迎的编程语言,而将近一半的开发者并没有计算机的相关学位。 在 语言方面,JavaScript 仍然以压倒性的优势当选最受欢迎开发语言,超过 55.4 的受访者称自己使用这么语言。实际上前 5 名的排名与去年都是一样的,分别是(JavaScript、SQL、Java、C# 以及 PHP)。但 PHP 的受欢迎程度则比去年下跌了 4 个百分点,Stack Overflow 分析认为是由于 Node 和 Angular 的崛起。 Stack Overflow 还调查了开发者最喜爱、最讨厌以及最想学的开发语言。其中 Rust、Swift、F#、Scala 以及 Go 当选 2016 开发者最喜爱语言,这是 Rust、Swift 与 Go 连续第 2年 当选了。而 VB 很不幸地成为了开发者最讨厌的语言。An...
-
下一篇
[Android Pro] ScrollView嵌套RecyclerView时滑动出现的卡顿
reference to :http://zhanglu0574.blog.163.com/blog/static/113651073201641853532259/ ScrollView嵌套RecyclerView时滑动出现的卡顿 现象: 一个界面有多个RecyclerView以及其他一些内容,这 时要上下滚动就会使用外面嵌套一个ScrollView,虽然我没有遇到像ScrollView嵌套ListView时那样只显示部分,剩余不显示,可能 是因为我内容少吧,所以没有遇到这个,但是在滑动的时候如果是在RecyclerView上滑动,这时会出现只滑动动该RecyclerView的内容上 就会停止,而如果是在其他内容上滑动时就可以很顺畅的滑下去,因此就会感觉到卡顿的样子。 解决:禁止RecyclerView的滑动。 最简单方便的就是直接 linearLayoutManager = new LinearLayoutManager(context) { @Override public boolean canScrollVertically() { return false; }}; 另外就...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker容器配置,解决镜像无法拉取问题
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境