一向“圈地自萌”的苹果为什么选择将Swift开源? - 开源中国社区
Float_left Icon_close
一向“圈地自萌”的苹果为什么选择将Swift开源?
oschina 2015年12月08日

一向“圈地自萌”的苹果为什么选择将Swift开源?

oschina oschina 发布于2015年12月08日 收藏 14 评论 27

阿里云高性能云服务器,2折起! >>> >>>  

苹果在今年六月的WWDC大会上推出了Swift2.0,并宣布将于今年年底前开放源代码。而苹果也在近日正式将Swift语言转成了开源编程语言,并将其放到代码托管网站Github中以供更多开发者共同开发。苹果公司高级副总裁克雷格·费德里希最近接受了外媒的采访,对 Swift 开源这一行为进行了说明。

开源的基础

据 悉,Swift的编程语言将在Apache 2.0许可的基础上推出,Apache 2.0也是微软去年在.NET框架开源时所使用的许可,软件开发者将可以对这款新编程语言根据自己的需要进行修改。该代码将被放在GitHub上托管,其 中包括编译器、LLDB调试器以及REPL命令行环境、标准核心库以及代码配套工程等。在Swift(包括开源部分)中新加入了Swift软件包管理器, 该管理器将作为用于存储Swift模块的早期项目。

虽然其中的绝大部分都符合Apache许可标准,但费德里希表示,苹果还提供了一种更高的许可运行机制——如果开发者在Swift上创建了代码,而且其中的部分代码是从Swift库中调用的话,开发者将不必再提供该代码的来源。

苹果的工程师正在着手把Swift改为使用GitHub repos来以开源的方式开发语言。

一向“圈地自萌”的苹果为什么选择将Swift开源?

“Swift将在GitHub上完成开源工作,” 费德里希说,“Swift团队正在加紧修改的工作进程,其中也包括对Swift 3.0的开发,所有的工作进展都会在GitHub上开放。”

所 以,Swift 3.0将不会再像今年6月公布Swift 2.0那样在WWDC上得到大量关注,3.0将不会在WWDC 2016上出现,开发者更不会得到Xcode上的beta版。相对的,开发者能够在WWDC之前就拿到最新版的Swift语言,体验到下一代Swift的 新变化。

尽管代码将在GitHub上提供,但Swift社区同样也是Swift.org的家。在这里,开发者将能够提交bug并使用bug 追踪系统,也能够使用邮件列表或是与Swift工程的博客(苹果官方博客)进行交流,获取社区指南、Swift教程文档或是开发与API设计指南等。换句 话说,你所能想到的任何开源编程语言社区中所提供的服务这里应有尽有。

将不仅限于支持OS X和Linux平台

苹 果官方声称Swift将不仅能够支持苹果自家的平台还能够支持Linux,而这正像苹果在6月份的时候所承诺的那样。这已经涵盖了大量的Swift开发者 (他们通常都会运行OS X系统)以及大部分的大众开发者(他们使用Linux的频率要远高于一般用户)。苹果的Linux工具包括全新的封包管理器、LLDB调试器以及REPL 命令行环境。

至于Windows等其他平台,如果需求较多的话,至少在一开始苹果将会依靠社区来提供支持。

一向“圈地自萌”的苹果为什么选择将Swift开源?

“(对 于Windows平台的支持)在Swift开源的初版中,这并不是我们所首要考虑的问题,” 费德里希说,“我们认为对Linux和我们自家的平台的支持才能够为初版打下一个很好的基础。但是实际上,我们已经具备了把Swift开源移植到其他平台 的能力,LLVM、Clang以及LLDB这些Swift的基础技术其实已经完全可以移植到Windows平台上。我认为这是可以预见的——社区中的某个 人——无论是微软的领导者还是其他的人,早晚都会这样去做。“

为何开源?

Swift 开源苹果公司主要有两个目的。第一个目的就是让 Swift 编程更加通用、更加多样化——除了苹果平台的应用,开发者也可以在其他项目中使用这个编程语言。

另外苹果也非常有远见,很有野心。费德里希表示:“我们认为未来 20 年 Swift 将成为编程的标准语言。我们认为它将成为未来主要的编程语言之一。”

“一些开发者,包括 IBM 的企业开发者很早之前就开始在 Swift 中开发他们的移动应用,他们就希望能够将开发者开发的东西、还有一些代码等部署在云中。” 费德里希说,“而我们认为要想在这方面给他们提供支持的话,最好的办法就是开源。”

一向“圈地自萌”的苹果为什么选择将Swift开源?

而苹果的另外一个目的则与教育相关:当开发者花时间来学习Swift 时(或者教育工作者教授 Swift 使用方法时),苹果希望这些技术能够为更多人所用。

“我们与教育工作者合作,很多教授都有意教授 Swift,因为它是一种富有表现力的语言,能够引入各种编程概念。Swift 开源能够让教育工作者尽快地将其整合,让它成为核心课程的一部分。”

在今年6月份,苹果向开发者了解他们过去一年使用 Swift 的体验时,他们就发现 Swift 的可传授性强是它最大的卖点。Swift 不仅能够用于交流编程创意,而且还能够将它的相关知识利用到更多场合。

“当你第一次学习时,通常会出现的问题是:你的代码是否被编译过。而我喜欢Swift的一点就是,在某些情况下,你根本不用去想这些事情,直接输入代码就好。希望这将有助于更好地理解正在发生的事情,不再让人感到头疼。”

——iOS开发者,APP Camp教师 莱斯利·贝克

虽然开源后给开发者带来了诸多便利,不过遗憾的是,根据Swift.org中的表述,开发者在把应用程序提交给苹果的应用程序商店时仍需要在Mac上使用Xcode。

开源会对编程语言带来什么影响?

在 Swift开源并在此基础上开发新版本的同时,不但能够使开发人员更容易地看到苹果公司在做什么,同样也使他们能够更容易直接对该项目作出贡献。苹果表 示,从Swift 1.0到2.0,开发者的反馈为开发工作做出了相当大的贡献。但是同样的,至少从理论上讲,公司将不再成为Swift语言的唯一仲裁者——开发者可以提交 引入请求。Swift.org概述中也提到了当开发人员要提出修改时的工作流程。

“如果你注意到我们的 Swift 2.0 的语言特性的话,你就会发现在错误处理、保护信息、可用性和控制上,均是基于开发者使用 Swift 来开发应用的对话来完成的。我们认为,Swift 开源后将获得进一步发展,这将有利于进一步深化交互。”

一向“圈地自萌”的苹果为什么选择将Swift开源?

Swift 虽然只是一个很“年轻”的语言,但是自问世以来却一直广受欢迎。而这也使得试图开发和维护的代码的开发人员产生了小小的挫败感。Swift 1.x在半年甚至一年前所创建的代码可能也不会在今天的Xcode的最新版本中编译,所以如果有问题的话苹果肯定是知道的。

“在为开发者提供源发展工具方面,我们是非常开放的。所以如果开发者选择在Swift中编程的话,我们也会在不断发展语言的过程中给他们提供适合的工具来帮他们发展源代码。”

不过苹果公司也在计划解决更大的问题,如今有越来越多的开发者正在为该语言的发展做出着贡献,所以苹果就更要去积极解决问题。苹果计划在 Swift 3.0 中进一步完善源兼容特性。

Swift 会对 Objective-C 产生什么影响?

对于Objective-C,Swift的开源并没有改变其在苹果的生态系统中 的位置。它已经存在了好几年了,它仍然被用来编写苹果的平台上运行的诸多应用程序(包括苹果自己的),这个数字截至目前仍在持续增加,因为这的确是有必要 的。但Swift显然是Objective-C未来的发展方向,所以苹果仍然希望开发者可以用Swift来启动他们的新项目。

“Objective-C 将不会就此消失。我们还是非常喜欢 Objective-C 这种语言,我们还需要依赖 Objective-C,在苹果公司有很多工作都需要通过Objective-C来完成。我们会继续支持Objective-C,继续完善这种语言,以适 应这个不断变化的世界。不过对于即将进入我们的平台,想要开发应用的开发者,我们认为Swift更适合他们。我们觉得从 Swift 入手是非常正确的。但是在可预见的未来,我们会继续维护、完善和支持 Objective-C 。”

一向“圈地自萌”的苹果为什么选择将Swift开源?

开 发者们在谈到Swift和Objective-C的使用情况时通常都会这么说:有些人坚持使用Objective-C,因为他们已经熟悉该语言或是因为他 们不希望混合使用Objective-C代码和Swift代码,但越来越多的消息显示,无论是新项目还是老项目,新数据块都在逐渐被Swift代码所取 代。

似乎苹果未来将继续为Objective-C提供支持,但苹果何时会停止支持目前并没有一个确切的消息。不过,没有人会想被打个措手不 及。Swift的日益成熟、Swift 3.0所承诺的源代码兼容性、开源版本更加广泛的应用场景都旨在推动开发者更为舒服的过渡到Swift阵营。

Via arstechnica

转载自:雷锋网

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:一向“圈地自萌”的苹果为什么选择将Swift开源?
分享
评论(27)
最新评论
0

引用来自“ios之王”的评论

微软开源.NET后,横跨各平台,通吃这些狗屁没用的swift,oc,java,php,微软猛虎归山,再次一霸天下
你这是和M$有多大仇啊~
0
swift开源,只是形式而已,卵用啊
0
阴暗潮湿的某地下室,瘦弱青年 @eechen 一手拿着2块钱一包的烟,一边看着开源中国的新闻评论,愁眉紧锁的他,陷入了沉思:中国的开源事业下一步该怎么走?如何突破微软的封锁?如何保住PHP世界第一编程语言的不败地位?如何彻底击溃C井井? 个个难题需要他思索,抉择。此时,传来踹门的咣咣声:开门!!查暂住证!!!听见这个声音,@eechen心惊胆战,慌忙关上手机,再也不敢发出半点响动,直到外面的人走远了,才敢坐到板凳上,重新打开手机,在开源中国评论上狠狠的打上:在这个地球上,我 们 P H P 不 怕 任 何 编 程 语 言!PHP7加油!!!期待C井井灭亡! 没过多久,在踹门的同时,传来房东的声音:“两个月没交房租了,欠的房租什么时候交?再不交就赶紧滚蛋”。 青年关上手机哀求,“再宽限两天,等老板发了工资就交。”。房东离去,青年坐在板凳上重新打开地摊上买的山寨手机,在开源中国评论上狠狠地打上,‘换PHP捐一年工资,骂微软捐命!'
0

引用来自“eechen”的评论

Swift能够在Linux上运行,但不能在Linux上开发iOS应用,否则Mac还怎么卖?
同理,.NET能够在Linux上运行,但.NET桌面应用不能在桌面上运行,否则Windows怎么卖?
说到跨平台,不得不佩服Java,通吃Windows/Mac/Linux/Android,如果桌面版Java图形界面能像Android那样友好,就完美了.
A: "php是门跨平台语言!"
B: "pcntl is not available on Windows platforms."
A: "闭嘴!"
0
你们知道的,我就喜欢看你们撕逼的样子。。。
0

引用来自“eechen”的评论

Swift能够在Linux上运行,但不能在Linux上开发iOS应用,否则Mac还怎么卖?
同理,.NET能够在Linux上运行,但.NET桌面应用不能在桌面上运行,否则Windows怎么卖?
说到跨平台,不得不佩服Java,通吃Windows/Mac/Linux/Android,如果桌面版Java图形界面能像Android那样友好,就完美了.
+1
0
只是为了圈地、进而期望状大开发语言;圈的是“程序员”这个地。
0
swift开源了但不能Linux下开发ios是个遗憾,
0

引用来自“Minho”的评论

开源是大势所趋,你看微软的很多产品都开源了,水果再不开源,离死不远了。

引用来自“eechen”的评论

人家苹果开源WebKit的时候,微软还是以垃圾IE闭源为豪呢,在手机领域和浏览器领域纷纷失守,.NET产品线又被边缘化,只能吃老本的微软才真的是离死不远了.
放心,就算你家人都死了,微软也死不了。
0

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

苹果有非常多的开源项目,很多大家天天用不知道而已,例如谷歌浏览器内核,重量级编译器LLVM,只不过苹果不太像谷歌用开源做宣传噱头。
确实是,苹果也一直开源的,只是没人去关注而已,苹果有自己的开源网站,连自己的系统都有不少的组件开源,很多人不更新自己的知识。。。
0
借开源的幌子继续搞垄断,swift开源,证明苹果还在开发新语言,等新语言成熟,跟object-c一样,说扔掉就扔掉
0

引用来自“Minho”的评论

开源是大势所趋,你看微软的很多产品都开源了,水果再不开源,离死不远了。

引用来自“eechen”的评论

人家苹果开源WebKit的时候,微软还是以垃圾IE闭源为豪呢,在手机领域和浏览器领域纷纷失守,.NET产品线又被边缘化,只能吃老本的微软才真的是离死不远了.
大神的野爹Oracle既没有手机OS也没有浏览器不照样活得好好的,更别说营收利润市值是O两倍多的微软了。
0

引用来自“Minho”的评论

开源是大势所趋,你看微软的很多产品都开源了,水果再不开源,离死不远了。
人家苹果开源WebKit的时候,微软还是以垃圾IE闭源为豪呢,在手机领域和浏览器领域纷纷失守,.NET产品线又被边缘化,只能吃老本的微软才真的是离死不远了.
0

引用来自“ios之王”的评论

微软开源.NET后,横跨各平台,通吃这些狗屁没用的swift,oc,java,php,微软猛虎归山,再次一霸天下
赞同!软粉要坚持使用.NET,一百年不动摇!特别推荐低学历的同学学习!
0
微软开源.NET后,横跨各平台,通吃这些狗屁没用的swift,oc,java,php,微软猛虎归山,再次一霸天下
0

引用来自“eechen”的评论

Swift能够在Linux上运行,但不能在Linux上开发iOS应用,否则Mac还怎么卖?
同理,.NET能够在Linux上运行,但.NET桌面应用不能在桌面上运行,否则Windows怎么卖?
说到跨平台,不得不佩服Java,通吃Windows/Mac/Linux/Android,如果桌面版Java图形界面能像Android那样友好,就完美了.
linux和android也叫通吃?同样的代码能跑么?界面兼容么?Java跨三大PC系统还是不错的,但是PC和移动系统跨平台还是省省吧
0
苹果有非常多的开源项目,很多大家天天用不知道而已,例如谷歌浏览器内核,重量级编译器LLVM,只不过苹果不太像谷歌用开源做宣传噱头。
0

引用来自“eechen”的评论

Swift能够在Linux上运行,但不能在Linux上开发iOS应用,否则Mac还怎么卖?
同理,.NET能够在Linux上运行,但.NET桌面应用不能在桌面上运行,否则Windows怎么卖?
说到跨平台,不得不佩服Java,通吃Windows/Mac/Linux/Android,如果桌面版Java图形界面能像Android那样友好,就完美了.
请问Linux免费, Windows收费,Windows怎么卖?
请问MySQL免费,SQL Server一个CPU内核7000刀,SQL Server怎么卖?
相比上面这两条.net桌面App上不上Linux对Windows什么影响也没有,何况Windows上的桌面App还是以C++开发的居多
0
Objc一直是开源的,从编译器到运行库
0
大家在linux上学会了swift后都买mac去开发ios应用
顶部