深耕编程语言18年,对话 Rust、TypeScript、Nushell 核心贡献者 Sophia Turner | Open AGI Forum

作者 | 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/

相关文章:
深耕编程语言18年,对话 Rust、TypeScript、Nushell 核心贡献者 Sophia Turner | Open AGI Forum
作者 | Annie Xu 采访 | 卢威 责编 | Echo Tang 出品丨GOSIM 开源创新汇 编程语言的种类令人眼花缭乱,但成功的、常用的编程语言却是凤毛麟角。在深耕编程语言研发 18 年的 Sophia June Turner 看来,编程语言成功的关键在于其研发团队的透明度和机制建…...
深度学习--图像分割UNet介绍及代码分析
UNet介绍 参考UNet网络介绍整体架构UNet过程输入编码器(下采样)中间特征表示解码器(上采样)输出 代码详解unetUP和Unet关系上采样模块——unetUp用于图像分割的卷积神经网络(CNN)架构模块——Unet类的定义初…...
接了一个2000块的小活,大家进来看看值不值,附源码
如题,上周的一天,朋友圈的一个旧友找到了我,说让我帮他开发一个小工具,虽然活不大,但没个几年的全栈经验还不一定能接下来,因为麻雀虽小,涉及的内容可不少: 需求分析 原型设计 详细…...
基于MindFormers实现GPT2模型的推理
前言 针对MindFormers的安装,可参考本专栏里的另一篇博客 安装MindFormers(昇腾910)-CSDN博客 pipeline方式 from mindformers import pipeline from mindformers import GPT2LMHeadModel, GPT2Config, GPT2Tokenizer tok GPT2Tokenizer…...
探索腾讯云AI代码助手:智能编程的新时代
智能编程的新时代 前言开发环境介绍腾讯云 AI 代码助手使用实例生成文档解释代码生成测试修复代码人工智能技术对话 智能编程获得的帮助与提升对腾讯云AI代码助手的建议结语 前言 hello,大家好我是恒川,今天我来给大家安利一款非常好用的AI 代码助手&…...
MySQL 之 MHA 高可用架构详解
这个是在内部分享做的一个 Keynote 动画,用来演示 MHA 高可用架构及发生故障时的 Failover。动画如下: 数据库相关分享之 MySQL 的 MHA 架构详解 引言 MySQL 数据库在企业和应用中扮演着举足轻重的角色,其稳定性和可靠性对于业务的连续运行至…...
WangEditor自定义新元素,并解决自定义元素中换行无法消除样式的问题
一、背景概述 项目有自定义样式模板的需求,WangEditor没有。若直接把样式的html插入WangEditor中,无法解析,且会被自动过滤。因此,需要基于WangEditor提供的API进行二次开发。 例如,需要新增以下样式: 该…...
VBA Excel口算题
口算题函数 利用随机数写个20以内加减法口算题函数 Function Kousuan()Dim intOne As IntegerDim intTwo As IntegerDim strFlg As StringDim intFlg As IntegerDim strRtn As StringintFlg Application.WorksheetFunction.RandBetween(0, 1)strFlg "-"If intFlg…...
C++理解临时对象的来源
当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里: template<class T> void swap(T& object1, T& object2) { T temp object1; object1 object2; object2 temp; } 通常把t…...
C++协助完成返回值优化
一个返回对象的函数很难有较高的效率,因为传值返回会导致调用对象内的构造和析构函数(参见条款M19),这种调用是不能避免的。问题很简单:一个函数要么为了保证正确的行为而返回对象要么就不这么做。如果它返回了对象,就没有办法摆脱…...
2024年睿抗机器人开发者大赛(RAICOM)国赛题解
目录 RC-u1 大家一起查作弊 分数 15 RC-u2 谁进线下了?II 分数 20 RC-u3 势均力敌 分数 25 RC-u4 City 不 City 分数 30 RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15 简单模拟题,对于多行读入使用while(getline(cin…...
声明式UI语法
一、ArkTS的基本组成 Entry // 装饰器 Component // 装饰器 struct Hello { // 自定义组件State myText: string World;build() { // UI描述Column() { // 系统组件Text(Hello ${this.myText}).fontSize(50)Divider()Button(Click me).onClick(() > { // 事件方法t…...
JDBC连接数和1521连接数之间的区别和联系(Java Database Connectivity)
JDBC(Java Database Connectivity)连接数和1521连接数之间的区别和联系如下: 区别 概念不同: JDBC连接数:指通过JDBC技术建立的数据库连接数。JDBC是Java中的一套API,用于连接和操作关系数据库。JDBC连接数…...
Leetcode - 136双周赛
目录 一,3238. 求出胜利玩家的数目 二,3239. 最少翻转次数使二进制矩阵回文 I 三,3240. 最少翻转次数使二进制矩阵回文 II 四,3241. 标记所有节点需要的时间 一,3238. 求出胜利玩家的数目 本题直接暴力求解&#x…...
SQLite ORDER BY 语句
SQLite ORDER BY 语句 SQLite 的 ORDER BY 语句用于对查询结果进行排序。排序可以是升序(ASC)或降序(DESC)。默认情况下,如果不指定排序方式,ORDER BY 会以升序对结果进行排序。 语法 SQLite ORDER BY 语…...
MTK Android12 系统中应用加载 .so 文件的问题分析
在本篇博客中,我将详细总结在 Android 12 系统上进行的几个实验,包括如何加载自定义 JAR 文件、如何解压和确认 .so 文件,以及如何验证系统报错提示。本文将介绍使用 PathClassLoader 和 DexClassLoader 动态加载类的实验,分析系统报错信息,并最终得出结论。 推荐:《Andr…...
bpmn简单使用(制作流程图)
1、先下载依赖,下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…...
【算法模板】算竞技巧:Python对拍数据生成
在计算机编程竞赛中,对拍(Testlib)是一种验证程序正确性的方法。它通常用于检查一个程序的输出是否与另一个程序的输出一致,以确保程序的正确性。 对拍程序 【算法模板】算竞技巧:对拍全解_算法竞赛对拍-CSDN博客 #i…...
计算机基本理论与程序运行原理概述
目录 计算机的基本表示方法 计算机的组成 程序运行的原理 指令执行的流水线 编译原理 个人理解 面试题总结 计算机的基本表示方法 计算机系统使用高、低电平来表示逻辑1和0。数据在计算机中的存储、传输和处理均以二进制形式进行。数据通过总线作为电信号进行传输&…...
SpringBoot中的server.context-path
目录 一、问题引入 二、代码片段展示 2.1.接口层 2.2.application.properties 三、问题分析 3.1.server.context-path 作用 3.2.正确展示 四、HTTP请求响应码简介 4.1.响应码参考来源 4.2.源码示例 4.2.1.源码总述 4.2.2.正常情况——2XX: generally "OK&…...
Windows Cleaner:终极免费的Windows系统清理工具让C盘重获新生
Windows Cleaner:终极免费的Windows系统清理工具让C盘重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常面对C盘爆红的警告而束手无策…...
从水平框到旋转框:一文读懂Oriented R-CNN如何革新文字与遥感目标检测(ICCV2021论文精讲)
旋转目标检测的范式革新:Oriented R-CNN技术解析与实战启示 当无人机拍摄的遥感图像中出现密集排列的斜向建筑群,或是自然场景中任意角度的文字标识时,传统水平矩形框检测器立刻暴露出其固有局限——要么用大矩形框覆盖多个目标导致定位不准&…...
不同行业的文章标题SEO优化技巧有哪些区别
SEO优化技巧的行业差异:不同领域文章标题的独特策略 在当今的互联网时代,搜索引擎优化(SEO)已经成为了各行各业提升在线可见度的重要手段。SEO优化技巧在不同行业之间却有着显著的差异。每个行业的用户行为、关键词习惯和搜索算法…...
终极内存管理指南:如何用Mem Reduct让你的电脑运行如飞 [特殊字符]
终极内存管理指南:如何用Mem Reduct让你的电脑运行如飞 🚀 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/me…...
自动驾驶仿真新手必看:OpenSCENARIO 1.0标准场景搭建实战(附51Sim-One配置指南)
自动驾驶仿真实战:从零搭建OpenSCENARIO 1.0标准场景 当一辆自动驾驶汽车在虚拟世界中完成百万公里测试时,背后是无数标准化场景的精确还原。OpenSCENARIO作为自动驾驶仿真领域的"通用语言",正在改变行业各自为战的局面。本文将带…...
FramePack深度解析:如何利用下一代帧预测技术创作高质量AI舞蹈视频
FramePack深度解析:如何利用下一代帧预测技术创作高质量AI舞蹈视频 【免费下载链接】FramePack Lets make video diffusion practical! 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack FramePack是一款革命性的视频扩散神经网络框架,它通…...
为什么83%的医疗PHP系统脱敏失效?——基于127家三甲医院审计报告的脱敏逻辑漏洞图谱分析
第一章:医疗PHP系统数据脱敏失效的审计全景图在医疗信息化系统中,PHP仍广泛用于HIS、LIS及预约平台等后端服务。然而,大量遗留系统在数据脱敏环节存在设计缺陷或配置疏漏,导致患者姓名、身份证号、病历号、手机号等敏感字段在日志…...
CiteSpace实战:如何用WOS数据生成高质量文献知识图谱(含美化技巧)
CiteSpace进阶指南:从WOS数据到学术级知识图谱的实战优化 在科研工作中,一篇优秀的文献综述往往能成为领域研究的"地图",而知识图谱则是这张地图上最直观的路线标识。作为一款专业的文献计量工具,CiteSpace在学术界已有…...
模拟解析:宽度数组 `[1,2,1]`,10个条目的 XRef 流
文章目录 模拟解析:宽度数组 [1,2,1],10个条目的 XRef 流一、设定场景二、解析代码核心部分(与之前相同)三、逐条解析(模拟 CPU 执行)辅助函数 GetVarInt 回顾条目0 (j0, objnum0)条目1 (j1, objnum1)条目2…...
3个创新方案解决HEIC缩略图难题:面向开发者与设计师的Windows图像预览优化指南
3个创新方案解决HEIC缩略图难题:面向开发者与设计师的Windows图像预览优化指南 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbn…...
