一向搞“小圈圈”的苹果为什么选择将 Swift 开源?

作者 | 发布日期 2015 年 12 月 08 日 9:14 | 分类 Apple , 软件、系统
Swift_leiphone120701-624x351

苹果在今年 6 月的 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 将在 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_leiphone120702

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

为何开源?

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

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

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

Swift_leiphone120703

而苹果的另一个目的则与教育相关:当开发者花时间来学习 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_leiphone120704

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_leiphone120705

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

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

(本文由 雷锋网 授权转载)

雷锋网

雷锋网专注于移动互联网。 雷锋网由一群移动互联网的信徒建立,。 雷锋网努力做好移动互联网的三个代表,代表移动互联网未来发展的方向,代表移动互联网的颠覆创新思潮,代表移动互联网创业者和从业者的利益。
未经许可,任何媒体、网站或个人不得复制、转载、或以其他方式使用本网站的内容,违者必究。

直接使用新浪微博发表评论

 

发表评论