作者 | Annie Xu
采访 | 卢威
责编 | Echo Tang
出品丨GOSIM 开源创新汇
编程语言的种类令人眼花缭乱,但成功的、常用的编程语言却是凤毛麟角。在深耕编程语言研发 18 年的 Sophia June Turner 看来,编程语言成功的关键在于其研发团队的透明度和机制建设。
在Mozilla工作时期,Sophia 加入了 Rust 团队。作为 Rust 的核心成员,曾参与设计了 Rust 报错信息格式,被许多编译器采纳,并与 Nick Cameron 共同创建了 Rust 语言服务器。她也曾作为 TypeScript 的核心贡献者,参与了 TypeScript 的创建。
2023 年,由于 Rust 社区“内讧”,感到伤心的 Sophia 辞去了 Rust 项目的工作。而她自 2019 年主导开发的 Nushell 经过几年发展,已经成为了许多开发者口口相传的开源 Shell 神器,用 Rust 编写,安全性提高的同时,也降低了 Bug 率。
GOSIM 2024 欧洲站的现场,GOSIM 独家对话栏目 Open AGI Forum 特别邀请到 Sophia,CSDN&Boolan 首席顾问卢威主持对话。从 Rust、TypeScript 到如今的 Nushell,Sophia 与我们深入分享了对编程语言构建的思考与实践:
成功的编程语言编码团队应当透明、开放、平等。团队成员了解和认可项目的目标和方向,并为之努力。否则,项目将很难有进展。
开源项目获得成功的关键是建立起人才循环机制:即使某个人离开,项目也能生存下去。如果一个项目依赖于某个特定的人才能成功,那它发展得并不“健康”。
不同组织群体的风格不同。Nushell 开放平等的沟通风格,鼓励团队成员共同参与讨论。当他们参与到对话时,他们实际上正在帮助创造 Nushell 的未来。
以下是本次采访的主要内容:
从 Rust、TypeScript 到 Nushell,编程语言开发的背后
GOSIM:大家好,欢迎来到 Open AGI Forum。我是来自 CSDN 的卢威,在风景优美的荷兰代尔夫特,我们非常荣幸地邀请到了 Sophia June Turner ,欢迎 Sophia,你能先向我们的观众简短地介绍一下自己吗?
Sophia:大家好,我是 Sophia,我从事编程语言方面的工作已经18年了。
GOSIM:你参与创建了 TypeScript,后来加入了 Mozilla,专注于编译器错误处理、IDE 支持以及 Rust 的可用性相关工作。第一个问题是,在你看来,TypeScript 和 Rust 在设计理念和目标用户上的主要区别是什么?
Sophia:TypeScript 与Rust的不同之处在于,TypeScript 是基于 JavaScript 的编程语言,可以通过拓展类型进行发展。C 和 C++ 是每个人都知道的标准语言,它一开始就拥有更多受众。没有人觉得会有默认安全的系统语言,而 Rust 必须证明自己系统编程的安全性与可行性。
GOSIM:你参与了许多有影响力的项目,如 TypeScript 和 Rust,现在是Nushell 核心团队的一员。你在他们之间是如何过渡的呢?你采取了什么方法保持与这些多样化组织的有效沟通和协作?
Sophia:我觉得不同组织风格各异。在 Nushell,我们每周都有会议,任何人都可以参加,内部十分平等,没有谁是老板。有时他们会把我当作老板,但我尽量表现得不像老板,努力让任何想要任何有想法、有贡献的人都能参与到对话中。我认为,当他们参与到讨论时,他们也成为了 Nushell 的一部分,他们投身共创 Nushell 的未来。我很喜欢这种开放的风格。
GOSIM:在 Mozilla,你参与了 Rust 编译器错误处理和 IDE 支持。你能具体分享一些你所做出的改进或取得的成就吗?这些改进如何影响 Rust 用户的日常编程体验?
Sophia:我参与的一个令我感到自豪的事情是设计了新的报错信息格式——这也是我加入 Mozilla 后做的第一件事。目前这个设计已经被各种编译器和命令行工具所采纳。我不知道它的影响具体有多大,我只是非常开心我能做到这一点。
GOSIM:Rust 核心团队的经历对你产生了什么影响?
Sophia:Rust 核心团队增加了我在团队规模方面的认识。当我加入 Rust 核心团队时,每个团队中已经存在数百万 Rust 开发者和数百名 Rust 贡献者。这与我加入 TypeScript 时截然不同:TypeScript 的规模并不大,10 到 12人 的团队负责 TypeScript 的全部工作。这使我进行团队规模方面的思考。
开源项目成功的秘诀:透明度与机制建设
GOSIM:那在你看来,成功的编程语言编码团队应该具备哪些品质或策略?
Sophia:我认为最重要的一点是透明度。团队成员需要理解项目的方向,能够对项目方向做出贡献,并且能够认同项目的理念。也就是说,你需要了解并在某种程度上赞成项目的方向,然后大家一起努力,我认为这一点非常重要。如果每个人都朝着不同的方向“使力”,项目很难取得任何进展,只会停留在原地。
GOSIM:作为 Rust 领导委员会的创始人之一,你如何看待社区治理在开源项目成功中的作用?
Sophia:我认为需要建立一种机制,即使某个人离开,项目也能生存下去。如果一个项目依赖于某个特定的人才能成功,那它不是一个健康的项目。项目发展初期可以接受这样的,但随着时间的推移、项目发展得更大,需要一种机制让它能够持续存在,减弱人员来去的影响。
GOSIM:你认为 Rust 社区在这方面有何独特之处?
Sophia:Rust 社区的独特之处在于它具有非常强烈的目标感,有着非常强烈的尝试理解当前状况、理解正确方向,并推动它向前发展的意愿。它不会让自身变得懒惰,它总是在尝试发展得更好。
面向未来:Rust 与 Nushell 路在何方?
GOSIM:基于你在编程语言和开发工具方面丰富的经验,你对 Rust 未来发展的期望是什么?在未来几年,你认为它需要解决的关键问题或挑战是什么?
Sophia:我认为 Rust 才刚刚起步。Rust 正在进入不同的新行业,如几年前的汽车工业,它正在持续地发展。我不知道它的极限在哪儿,我认为它会继续成长。它未来发展面临两个关键问题:第一,它需要一个团队根据 Rust 公司和使用者的信息明确一个特定方向,并确保团队每个人都能理解并认可这个方向;第二,确保项目团队能够采取行动并朝这个方向前进。
GOSIM:对于 Nushell 的未来发展或新功能,最令你兴奋的是什么?
Sophia:目前最令我兴奋的是 Nushell 正面临一个关键的转折点。很多人在试用 Nushell 前一直在观望,但是越来越多曾经对 Nushell 持犹豫态度的人在尝试了最近的版本后表示:“很好,我不会再退回 bash,我不会使用其他 shell。”我们知道它具有吸引人们的潜质,让人们持续使用。但我们需要让 Nushell 变得更稳定,达到 1.0 版本,之后人们就可以开始用它构建真正的程序。
GOSIM:你是否计划在 Nushell 中利用 AI 或 LLM?
Sophia:还没有,我不是 AI 的专家,也不是 LLM 的专家,可能会有其他人引入这些内容来补全相关功能吧。
GOSIM:感谢 Sophia 带来的分享和讨论,感谢观看的开发者。今天的对话就到这里,我们下期再见!
延伸阅读:
关于 Rust 社区“内讧”可参见:
《Rust 社区管理再起“内讧”,外部专家遭排挤,核心成员主动请辞,立即生效!》
Sophia 也写了一篇博文详细地讲述了自己为什么离开 Rust 社区,链接:https://www.sophiajt.com/why-i-left-rust/