即使是封闭的苹果,也不得不开源了 Swift

oschina
 oschina
发布于 2015年06月12日
收藏 20

在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的编程平台,这侵犯了知识产权。

将编程语言以及其他的一些开发技术开源之后,像苹果这样的公司能够保证开发人员合法使用技术。做开发已经够麻烦了,就不要用其它的事来打扰程序猿了。

本文由 雷锋网 翻译自 wired

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:即使是封闭的苹果,也不得不开源了 Swift
加载中

最新评论(46

Axzure
Axzure
openjdk是开放的
从今以后
从今以后

引用来自“eechen”的评论

SUN起诉Microsoft侵犯Java版权,成功了.
Oracle起诉Google侵犯Java版权,失败了.
毕竟Google跟美帝国家的NSA有合作,NSA怎么忍心看着Android这个以后用于监控全球移动用户的棱镜客户端被搞呢,所以你懂的.
说的好像 windows 就没有留下后台一样~~~
lh66
lh66
开源是挺好的
但是还是决定用oc
因为绝大多数应用还是oc
在等两年用swift
loongwong
loongwong
尽管苹果已经不是第一次开源。苹果开源过Darwin(它是OS X的基础)和WebKit(Safari 浏览器的基础),但是苹果不会开源Objective C。理论上似乎可以将Objective C应用于其它操作系统,但如果没有苹果的帮助,跨平台代码很难。

Objective-C没开源吗?
海淀游民
海淀游民

引用来自“李文轩”的评论

WebKit(谷歌浏览器的核心)
这么写好么?
1.目前Blink是Chrome/Chromium核心。
2.WebKit的开源来自KHTML吧?
建议写法:WebKit(早期Chrome核心)。
乔布斯回到苹果时苹果没自己的浏览器,于是苹果在KHTML上基础上开发了Safari,并将引擎部分单独开了个开源项目,也就是WebKit,从那以后苹果一直出人出钱主导这个项目。
谷歌后来想做自己的浏览器,于是用了WebKit,双后合作了几年,后来谷歌说WebKit效率不好(其实是想主导控制权), 于是从WebKit分支出了Blink,实际上谷歌还经常合并Blink的代码回WebKit!
海淀游民
海淀游民

引用来自“rose-sdk”的评论

苹果看来是一定要把程序员至少把50%的时间花在学习新语言。——不断被商业公司牵着走去学新语言,而不能把足够时间多花时写自个应用的功能上,是程序员悲哀。

引用来自“海淀游民”的评论

苹果就推出过这一门开发语言好不好

引用来自“rose-sdk”的评论

OBJECT-C和C/C++有什么区别,可它为什么还要固执使用OBJECT-C。——当然啦,一个愿打一个愿挨,不说了。
认为ObjC和C/C++没区别就没法聊了,ObjC本质上是动态语言,好好学学再出来喷吧
拉风的道长
拉风的道长
"理论上似乎可以将Objective C应用于其它操作系统,但如果没有苹果的帮助,跨平台代码很难。"
愚钝,看不出因果关系。
r
rose-sdk

引用来自“rose-sdk”的评论

苹果看来是一定要把程序员至少把50%的时间花在学习新语言。——不断被商业公司牵着走去学新语言,而不能把足够时间多花时写自个应用的功能上,是程序员悲哀。

引用来自“海淀游民”的评论

苹果就推出过这一门开发语言好不好
OBJECT-C和C/C++有什么区别,可它为什么还要固执使用OBJECT-C。——当然啦,一个愿打一个愿挨,不说了。
李文轩
李文轩
WebKit(谷歌浏览器的核心)
这么写好么?
1.目前Blink是Chrome/Chromium核心。
2.WebKit的开源来自KHTML吧?
建议写法:WebKit(早期Chrome核心)。
返回顶部
顶部