作者 | 褚杏娟
当地时间 2 月 21 日,Swift 项目核心团队成员 Ted Kremenek 表示,目前核心团队正在考虑重组项目的领导层,为社区成员积极参与项目管理提供更多途径。
在 2014 年 WWDC 苹果开发者大会上,苹果发布了开发语言 Swift,该语言可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。次年,苹果公司宣布将 Swift 开源。目前,Ted Kremenek 是苹果的指定代表,负责社区相关工作。
“未来几周内,我们希望引入一个新的语言工作组,该工作组将专注于语言本身的核心演变。”根据 Kremenek 介绍,Swift 之前引入了更多的工作组来关注技术和非技术投资(这个想法在其他语言和 OSS 项目中已经成功)。当前决策目的是让核心团队有更多的精力进行项目整体管理,同时通过创建一个更大的语言工作组,让更多的社区成员参与语言决策。
据悉,Swift 核心团队是负责战略方向的工程师小组,现在共有七名成员,这些成员由苹果公司根据开发者的技术专长和对社区的贡献进行任命。
被侮辱后,沟通无效离职
从公告中可以看出,Swift 核心团队有意加强与社区的互动。Kremenek 也提到了前核心团队成员、LLVM 和 Swift 的设计者 Chris Lattner 的离职。2017 年 1 月,Chris 辞去了在苹果的工作,但还活跃在 Swift Evolution 社区中。
Lattner 一直是 Swift 背后的中坚力量。2010 年 7 月开始,Chris 开始设计 Swift。完成基础架构后,Chris 带领开发小组陆续完成语法设计、编译器、运行时、框架、IDE 和文档等相关工作。
在 2 月初与社区成员的互动中,Chris 提到了去年年中以来就不再是核心团队成员一事,在社区成员的追问下透露了自己离职的根本原因。帖子回复如下:
无论如何,Ted 在这个帖子中的简单回复没有错,但我离开 Swift 核心团队和 Swift Evolution 社区决定的背后当然还有更多原因。 5 年前,我离开了苹果公司,但我生活中唯一不变的就是“忙碌”。Swift 对我来说很重要,因此,为改进项目和指导社区而花费大量时间我是很高兴的,其中包括每周的核心团队会议(最初是面对面,后来是通过 WebEx),但我也还是有很多时间可以阅读和响应 Swift Evolution,并亲自推动 / 编写 / 迭代许多 Evolution 提案。所以,我在去年夏天作出离开核心团队的决定其实并不容易。
我决定离开核心团队的根本原因是糟糕的会议环境。催化剂是去年夏天的一次会议:在 WebEx 上被侮辱和大吼大叫之后 (这不是第一次,也不只是一个核心团队成员),我决定先休息一下。终于在去年秋天,我找领导层谈了谈,但他们找借口回避,并明确表示不会为此采取任何措施。因此,我决定不回去了。不过,他们安慰我说:“希望根据我们所谈的内容,能确保其他人未来的生活更美好。”
对于 Swift Evolution,我的初衷是继续参加论坛。但在数次颇具热度的讨论后,我的正式提案审查意见和担忧被单方面忽略了,与核心团队合作的透明度也面临挑战。我认为我的努力是在与同样的人引发同样的摩擦,因此我纯属浪费时间。我想并非只有我有这种感受。比如在这个帖子里的一些社区成员,他们显然不理解这个提案的真正动机,也没有人倾听他们的意见,所以才联系了我,因为他们认为我可以帮助他们。
很明显,Swift 已经不需要我了,我关心的一些设计理念似乎不再流行。但同样明显的是,除了 Swift,我还有很多爱好,也不乏要花时间去做的事。我是那种总在向前看的人,所以尽管难过,但我还是会继续前进,不理会这些肯定会开心很多! 很多怀有善意和超级才华的人在推动 Swift 发展。他们面临着复杂的局面和巨大的压力 (包括崇高的目标、固定的时间表、需要清除的漏洞队列、内部人员希望在公众访问之前就审查 / 设计的内容以及来自外部的压力),这导致他们与社区很少互动。当事情传到我们这里时,计划已经进行很久了,人们可能会依附于对他们投入大量精力的设计。这对所有参与者来说都充满了挑战。
我认为 Swift 是一门了不起的语言,未来会很长、很成功,但它肯定不是社区设计的语言,这是非常确定的事情。关于如何改进事物的新想法听起来很有希望——我希望这能解决工程师 / 领导者面临的根本性激励系统问题,正是这些问题导致了如今的局面。我认为,一个健康和包容开放的社区将继续有利于 Swift 的设计和发展。
Swift 核心团队与社区联系的唯一途径就是论坛。作为对比,社区一直是 Python 的核心。只有少数开发人员全职从事核心编程语言的工作,大部分代码来自一群志愿者。前 PSF 执行董事 Ewa Jodlowska 曾说过,吸引代码贡献者聚集在一起需要大量的外展活动和一个致力于推进 Python 强大的协作社区。
“如果没有这种外展活动、没有花时间确保世界各地的人们都有资金真正学习 Python 和所有那些好东西,它不会成为今天的第一语言。”
社区成员:Swift 似乎变了
在 IEEE Spectrum 发布的 2021 年度编程语言排行榜中,Swift 已经排名第十。“作为一个在 Swift 上做过大量投入的人,以及 2015-2019 年左右社区的活跃成员,看到该语言的发展方向,我有点难过。”网友 skohan 写道。
“我从开始尝试 Swift 时候起,就非常喜欢这门语言的设计哲学。它似乎确实优先考虑拥有一组结构良好的系统,每个系统都有自己设计合理的界面,组合起来又可以做真正强大的事情。Swift 是一种非常具有表现力的语言,用它写代码的清晰程度令人难以置信——在编写 Swift 代码时,我总觉得自己是在问题领域层面编写,而不是在编写语法。同时,它提供了非常好的特性来确保安全性和正确性,例如 ADT 和一流的可空性语法。”
skohan 指出,这个语言的进展有时似乎进展很缓慢,但背后的权衡是, Swift 的每个特性都是经过深思熟虑的,并且在添加到语言中时将负面影响降到最小。但在几年之前,情况似乎发生了变化。“在我看来,为支持 SwiftUI 而添加到语言中的一些特性——特别是属性包装器和函数构建器——感觉非常仓促,并且是基于外部期限被迫加入到该语言中的。”
“不受 BDFL 统治的语言受制于每个团队成员,而每个团队成员被自我、名望和职业的激励,都想在语言中加入自己的特性。”有开发者评价道。“这在所有的公司软件中都有发生,比如人们竞相将他们新的视频会议系统硬塞到你的日程表中。这对于终端用户软件来说可以忍受,但对于特征交互增长为 N^2 的编程语言来说是可怕的。”
注:Python 之父 Guido van Rossum 在社区被认为是“仁慈的独裁者(BDFL)”,意思是他仍然关注 Python 的开发进程,并在必要的时刻作出决定。他在 Google 工作,但有一半的时间用来维护 Python 开发。
放弃 Swift,投身人工智能
“我要感谢你为 Swift 及其社区所做的一切。你的贡献是杰出和无价的。”有网友留言道。实际上,Chris 对于苹果的贡献远不只是 Swift。
根据公开资料,Chris 在硕士毕业时提出了一套完整的运行时编译思想,奠定了 LLVM 的发展基础。在博士期间继续领导 LLVM 编译框架向前发展。LLVM 可以基于 GCC 前端编译器的语义分析结果进行编译优化和代码生成,所以 Chris 在 2005 年毕业时就已经成为业界知名的编译器专家。
值得注意的是,苹果是 LLVM 项目的主要资助者。早年间,苹果一直使用 GCC 作为官方编译器,但苹果对 GCC 的性能并不满意。苹果使用 Objective-C 语言进行开发,但 GCC 对 Objective-C 的支持度并不高。因此,苹果一直在寻找 compiler 的开源替代品,于是将目光转移到了 LLVM 身上。
2005 年,苹果直接雇佣了 Chris 及其团队。Chris 在苹果的几年中不仅大幅度优化和改进 LLVM 以适应 Objective-C 的语法变革和性能要求,同时发起了 CLang 项目,旨在全面替换 GCC,这个目标也已经实现。从 OS X 10.9 和 XCode 5 开始,LLVM GCC 已经被替换成了 LLVM CLang。LLVM 也已经被微软、谷歌、Facebook 等各大公司采用。
2010 年 7 月,Chris 开始为 iOS 和 OS X 平台开发下一代编程语言 Swift。最初 Swift 完全是由 Chris 开发,到 2011 年才陆续有若干编译器专家加入 Swift 团队。终于在 4 年后的 2014 年,Swift 的第一个版本在苹果的 WWDC 大会上正式发布。
现在,Swift 之父已经换到了人工智能赛道追逐梦想。在离开苹果后,Chris 短暂入职特斯拉,负责自动驾驶软件的开发。2017 年 8 月 14 日,Chris 开加入了聚焦深度学习和人工智能研发的 Google Brain 团队。3 年后的 2020 年 1 月,Chris 加入专注于 RISC-V 架构的芯片初创公司 SiFive,任职平台工程高级副总裁。
今年 1 月,Chris 推出了旨在重建人工智能基础设施的 Modular AI,并担任 CEO 一职。