不久前,Apple凭借Swift使iOS开发人员感到惊讶。 从那时起的短时间内,它在开发社区中获得了Swift的采用。 实际上,在Stack Overflow进行的一项调查中,Swift被评为最受欢迎的编程语言。
12月3日,Apple恪守承诺,并正式将Swift完全开源。 考虑到Swift的受欢迎程度,思考此举的含义当然令人兴奋。 Swift的未来将如何发展,作为开发人员来帮助其发展的我们能做什么?
不太清楚开源意味着什么? 在这里阅读Sam Berson关于开源的文章。
苹果和开源
作为一个喜欢以iOS开发为生的人,我一直对开放源码社区有些嫉妒。 尽管GitHub确实在开源iOS项目中蓬勃发展,但无论是Swift还是Objective-C ,Apple一直以来都没有允许iOS社区以除ResearchKit之外的任何官方身份对其工具,框架,IDE或语言做出太多贡献。
现在,借助Swift,我们受到了邀请,以帮助培育该语言的未来。 这是iOS社区的一个新领域,我相信它还将把Apple的良好信誉扩展到每天在其平台上工作的开发人员。 更重要的是,Swift的未来现在可以扩展到iOS以外的其他领域,我们将在稍后讨论。
至少对我而言,这一举措的直接好处是,我们现在可以对Apple的开发实践和流程进行深入了解。 实际上,Swift在GitHub上的存储库具有供所有人查看的所有提交,其历史可追溯到2010年7月17日的首次提交 。
开源的影响
如果您尚未考虑过苹果转向开源Swift的影响,那么我认为退后一步并对其进行研究很重要。 历史表明,开源软件项目有很多好处。
通常,在社区中受到关注的开源项目会Swift成熟,并随着时间的推移变得更加稳定。 如果社区积极参与,则可以快速实施新功能。
除了更快的迭代速度外,社区还以对大多数用户有用的方式帮助软件成熟。 对项目进行开源采购通常还会导致社区内更多的协作,这对于所有参与的人都是成功的。
清单不胜枚举。 在一个依赖技术及其背后工具的世界中,我会向您建议,开源软件从未如此重要和相关。 从事软件工作的社区的力量可以是一项有益的,更重要的是富有成效的计划。
实际上,我们甚至看到Apple与其他知名技术公司合作,将Swift提升到一个新的水平。 IBM似乎对将Swift实施为服务器端语言非常感兴趣,并且通过他们在其在线swift沙箱中的努力,您已经可以享受一个难以置信的项目。
斯威夫特将Swift发展
最后,开源Swift意味着它将会快速变化。 通常,快速变化可能会给工程师带来头痛。 我们甚至已经在Swift中看到了这一点。 Swift 2引入了许多更改,这些更改使Swift 1代码过时且不可编译。
现在的主要区别在于,Apple 和社区是推动变革的动力。 敞开大门,看看Swift发生了什么,开发人员可以为即将发生的变化做好更好的准备。 软件迭代不应该使人沮丧,而应该是有益和受欢迎的实践。 开源软件在这方面表现出色。
为了证明这一点,请考虑一下Swift存储库在启用后的短时间内所经历的以下指标:
- 在最初的24小时内发生10,000次提交
- 迄今为止,超过24,000次提交
- 大约400个拉取请求已合并到Swift的存储库中
在撰写本文时,Swift也在GitHub上排名第一的趋势中稳步发展。 这是在短时间内取得的成就,它清楚地表明了整个开发社区已经准备好并且愿意为此做出贡献。
作为开发人员,看到该语言已经以“开源”的步伐适应它是令人振奋的。 例如, 著名的 iOS开发人员和作家Erica Sadun已经提出了令人信服的论点,以删除 Swift 中的C-Style循环 。 此外, --
和++
运算符也可能即将退出市场。
考虑到这些事实,我们已经看到Swift从开源中受益。 它不仅日趋成熟,可以与iOS以外的其他平台兼容,而且开发人员还可以看到更改正在公开进行。 实际上,为Swift 3调整代码库应该没问题,因为我们不再需要等待下一个WWDC知道该语言的改进。
从哪儿开始
考虑到开放源代码的影响,您可能想知道如何参与其中。 如果您以前从未参与过开源软件,那么最初可能会有些吓人。 在这里,我想指出一些方法,您可以更好地了解开源软件,尤其是Swift。
社交网点
讨论本身就是开始参与开源Swift的一个好地方。 毫不奇怪,其中许多讨论都来自Twitter。 在Twitter开源之前,Twitter上提到的一些突出的错误修复甚至已经修复。
利用Twitter的入门门槛低,开发人员可以轻松表达对Swift的想法。 而且,您还不需要完成代码贡献的过程。 这是开始为Swift做出贡献的一种低压力方法。
与Swift的开发人员互动也很有趣且具有教育意义。 他们在Twitter上非常活跃,从而推动了开源行动,在此之后更是如此。 就是说,这里有一些Apple工程师立即参与了Swift。
克里斯·拉特纳(Chris Lattner) @clattner_llvm
克里斯负责将Swift带给我们,他还是LLVM编译器基础结构的原始作者。 自然,他始终与Swift社区保持联系。 实际上,他甚至在星期六的晚上10:00都接受了请求请求。 要说他积极参与该项目将是一种轻描淡写。
乔丹·罗斯@UINT_MIN
Jordan是Apple的另一位顶尖工程师,主要致力于Swift。 像克里斯一样,乔丹还是一个很好的资源,可以提出斯威夫特的问题或疑虑。
乔·格罗夫@jckarter
乔还是Swift的天才工程师。 他回答了有关Swift的几个问题,并且总是很高兴与社区互动。
贡献代码
Swift的开源计划通过流行的GitHub平台运行。 如果您对GitHub或Git总体上不熟悉,对Swift的贡献可能是一个令人生畏的前景。 如果您是这种情况,强烈建议您先熟悉这些工具, 这是一个很好的起点。
首先,您需要设置一个本地环境。 Swift的GitHub README是一个很好的指南,因此在这里我不再赘述。 基本上,仅需从命令行执行几条命令并与存储库进行交互,即可启动并运行。
从小开始
在为开源软件或一般任何软件做出贡献时,最好从一个小的可管理目标开始。 实际上,克里斯·拉特纳(Chris Lattner) 鼓励这样做 。
尝试找到一些代码库并熟悉它们。 从那里,您将更适合看到可以改进的地方。 就个人而言,我要采取的第一步是阅读《 Swift贡献指南》 。
Swift开源项目
从Swift的开源公告中得出的一些令人振奋(且令人惊讶)的消息是一些正在使用该语言开发的项目。 期望其中的一些,例如编译器和标准库,还有一些是全新的计划。
四个主要项目中的每个项目都是公开开发的,因此欢迎您提供帮助。 现在让我们简要地看一下它们。
编译器和标准库
Swift的编译器来自swift.org ,“主要负责将Swift源代码转换为高效的可执行机器代码。” 即使您对编译器或编译器没有深刻的了解,仅出于教育目的,浏览其代码也会很有趣。
该项目的第二个组件,即标准库,可能是大多数开发人员都会熟悉的东西。 它包含从最基本的数据类型(例如Int
和Double
类型)到高级集合类型(例如Array
和Dictionary
。
如果您是一位狂热的Swift开发人员,那么您现在可以帮助塑造这些类型的工作方式。 或者,如果您想要特定于您的需求的专用功能集,则可以甚至分叉存储库并根据需要自定义Swift的类型。
迅捷软件包管理器
iOS社区看到了几种不同的代码分发途径。 一些受欢迎的选择包括Cocoapods和Carthage 。 现在我们可以将Swift Package Manager添加到该列表中。
尽管它处于开发的早期阶段,但我发现这是最有趣的项目。 实际上,它目前不支持iOS,tVOS或watchOS。 尽管对这些平台的支持肯定会随着成熟而来,但它有可能被用于分发Swift代码,而不仅仅是iOS或OSX。
核心图书馆
Swift Core Library项目与标准库紧密相关,不同之处在于它提供了更高阶的功能。 此项目中包含的工具通常是与平台无关的概念。
例如,核心库项目包含用于JSON解析,单元测试以及与文件系统交互的功能。 这些工具将取决于手头上的平台或项目。
为了使该项目更适合iOS和OS X开发人员,libdispatch位于此处。 您可能对此很熟悉,因为它是Grand Central Dispatch的来源。 也就是说,将其包含在Core Libraries中是有道理的,因为执行并发代码不仅是iOS或OS X特有的任务。
REPL和调试器
最后,REPL和Debugger项目可能有点自我解释。 这个项目负责Swift完整的调试套件的实现。 LLDB调试器是开发人员已经使用了很长时间的东西,因为它已包含在Xcode中。
不过,REPL和Debugger是高度耦合的,这很有意义,因为它们在许多方面都提供相似的价值。 REPL代表“读取Eval打印循环”,非常适合用于轻量级Swift代码。 如果打开终端并输入“ Swift”,则将开始在本地运行Swift REPL。
如您所见,Swift确实不乏可参与的项目或组件。 尽管听起来陈词滥调,但这仅仅是个开始,随着时间的推移,将出现一些新项目。
资源资源
总结一下,我想为您提供一些资源,您可以使用这些资源来进一步了解Swift的开源环境。
Swift.org
这是Swift所有开发的正式目的地。 它包括入门指南,所有进行中项目的摘要等。 如果您想参与其中,这应该是您的第一站。
苹果的Swift博客
虽然这已经有一段时间了,但是如果您没有来过它,应该先去看看。 它包含许多有关Chris Lattner编写的Swift及其体系结构的有用信息。 尽管是否可以代替swift.org进行维护还有待观察,但它仍然是宝贵的资源。
Swift的GitHub页面
我已经提到过几次了,但这就是Swift进行所有开发的地方。 如果您希望浏览代码,派生存储库或提交请求请求,这就是发生的地方。
Swift的Evolution邮件列表
如果您主要希望了解Swift的发展方式以及语言的发展方向,那么这是一个非常出色的邮件列表。 此外,还有其他一些邮件列表可供考虑订阅,它们都讨论了Swift开发的各个方面。 您可以在这里看到它们。
迅捷的错误板
像任何其他软件一样,Swift也存在错误。 这是Swift团队用来跟踪错误并跟踪错误直到解决的中心位置。 除了错误,还可以在此处提出改进建议。
结论
Swift将在iOS的发展中扮演重要角色。 我认为开发人员已经知道这是因为它在WWDC 14上宣布。令人兴奋的是,它现在将仅在Apple平台之外显示。 想像一下在开发API时将Swift用作服务器端语言吗?
比社区的发展更重要的事实可能是Swift的成长。 开源Swift将为您和您的语言打开很多大门。 现在是时候参与其中了,因此开始阅读提供帮助的指南,我期待着您在Swift存储库中的下一次提交。
翻译自: https://code.tutsplus.com/articles/swift-is-open-source--cms-25476
请发表评论