深耕编程语言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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396491.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【多线程基础】指令、进程调度、了解计算机是如何进行工作的

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构、LeetCode专栏 📚本系…

Qt QML 使用QPainterPath绘制弧形曲线和弧形文本

Qt并没有相关api直接绘制弧形文字,但提供了曲线绘制相关类,所以只能另辟蹊径,使用QPainterPath先生成曲线,然后通过曲线上的点来定位每个文字并draw出来。 QML具体做法为从QQuickPaintedItem继承,在派生类中实现paint…

8–9月,​Sui Move智能合约工作坊将在台北+线上举行

你对区块链和去中心化应用感兴趣吗?想深入学习Sui Move编程语言吗? 从8月10日到9月28日,Sui Mover社区将在每周六下午13:00–17:00举办精彩的工作坊,为期两个月,带你从零基础入门到高级进阶,全面掌握Sui M…

ARM 架构硬件新趋势:嵌入式领域的未来

目录 目录 一、ARM 架构概述 二、新趋势一:AI 加速器集成 三、新趋势二:更高效的电源管理 四、新趋势三:安全性增强 五、结语 随着物联网 (IoT) 和边缘计算的发展,ARM 架构在嵌入式系统中的应用越来越广泛。从智能手机到智能…

element table表格树形数据展示

element table表格树形数据展示 1、效果 2、代码 <el-table ref"pointMultipleTable" border class"table-box" :data"[damActiveObj]"row-key"id" :tree-props"{ children: children }" :expand-row-keys"expand…

入门 PyQt6 看过来(项目)在线购物项目说明

本文我们利用pyqt6制作一个在线售卖商品的系统&#xff0c;页面大致如下图效果&#xff1a; ​ 1 项目分析 本项目分为四个模块&#xff1a;主窗口&#xff0c;商品选购&#xff0c;下单结算&#xff0c;销售分析。&#xff08;本文暂不涉及登录&#xff09; 主窗口包含&…

JAVA—正则表达式

关于正则表达式的了解学习&#xff0c;以及用于校验格式&#xff0c;信息查找和替换分割内容。 目录 1.概述 2.书写规则 3.应用案例 4.用于信息查找 5.用于搜索替换&#xff0c;分割内容 1.概述 由一些特定的字符组成&#xff0c;代表一个规则 作用&#xff1a; 1.校验数据…

深度学习 —— 个人学习笔记17(锚框、多尺度锚框)

声明 本文章为个人学习使用&#xff0c;版面观感若有不适请谅解&#xff0c;文中知识仅代表个人观点&#xff0c;若出现错误&#xff0c;欢迎各位批评指正。 三十四、锚框 import torch import matplotlib.pyplot as plt from matplotlib_inline import backend_inlinetorch.…

RuoYi-Vue新建模块

一、环境准备 附:RuoYi-Vue下载与运行 二、新建模块 在RuoYi-Vue下新建模块ruoyi-test。 三、父pom文件添加子模块 在RuoYi-Vue的pom.xml中,引入子模块。 <dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-test</artifactId>&…

小程序背景图片无法通过 WXSS 获取

问题&#xff1a;pages/index/index.wxss 中的本地资源图片无法通过 WXSS 获取 可以使用网络图片&#xff0c;或者 base64&#xff0c;或者使用标签。 将图片转换为base64&#xff0c;地址 base64图片在线转换工具 - 站长工具 在这里把要使用的图片转换一把&#xff0c;然后将得…

JDBC连接Mysql数据库超详细讲解

JDBC连接Mysql数据库 如何导入驱动jar包 进入mysql官网 – https://www.mysql.com/ 点击下载找到方框内选项 点击 在项目文件夹创建lib文件 , 将下载好的驱动器导入 , 再添加到项目即可 步骤一&#xff1a;注册JDBC驱动 在Java中&#xff0c;要与数据库进行交互&…

HarmonyOS应用一之登录页面案例

目录&#xff1a; 1、代码示例2、代码分析3、注解分析 1、代码示例 实现效果&#xff1a; /** Copyright (c) 2023 Huawei Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance w…

openssl 制作 信用库与服务证书

文章目录 前言openssl 制作 信用库与服务证书1. CA 证书2. 服务器证书/秘钥库3. 创建信用库4. 注意事项 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会…

如何恢复误删视频?找回误删视频文件的办法分享

在数字化时代&#xff0c;视频已成为我们生活中不可或缺的一部分&#xff0c;记录着珍贵的回忆、工作资料或是学习素材。然而&#xff0c;在电脑上一不小心误删视频文件&#xff0c;该怎么办&#xff1f;视频误删怎么恢复&#xff1f;有什么小技巧可以找回删除的视频&#xff1…

QTableView使用示例-Qt模型视图委托(MVD)(Model-View-Delegate)

模型视图委托&#xff08;MVD&#xff09;是Qt中特有的设计模式&#xff0c;类似MVC设计模式&#xff0c;将MVC设计模式中的Controller当做MVD中的Delegate&#xff0c;两者的概念基本相同。不同的是委托不是独立存在&#xff0c;而是包含在视图里面。 模型视图委托设计模式中&…

West-Wild-v1.1靶机

信息收集&#xff1a; 靶机地址&#xff1a;https://www.vulnhub.com/entry/westwild-11,338/ &#xff08;1&#xff09;主页给出靶机ip&#xff0c;kali跟靶机仅主机网卡就可以 &#xff08;2&#xff09;端口扫描 nmap 192.168.8.129 -p- -A -sV -Pn &#xff08;3&#…

iOS ------ UIKit相关

UIView和CALayer UIView UIView表示屏幕上的一块矩形区域&#xff0c;它是基本上iOS中所有可视化控件的父类。UIView可以管理矩形区域里的内容&#xff0c;处理矩形区域的事件&#xff0c;包括子视图的管理以及动画的实现。 UIKit相关类的继承关系 UIView继承自UIResponde…

云原生-利用容器和编排器

容器和编排器旨在解决单片部署方法中常见的问题。 1. 整体部署的挑战 传统上&#xff0c;大多数应用程序都是作为单个单元部署的。这样的应用程序被称为单体。这种将应用程序作为单个单元部署的一般方法&#xff08;即使它们由多个模块或程序集组成&#xff09;称为单体架构&…

OrangePi AIpro学习4 —— 昇腾AI模型应用

目录 一、ATC模型转换 1.1 模型 1.2 ATC工具 1.3 实操模型转换 1.4 使用ATC工具时的一些关键注意事项 1.5 ATC模型转换命令举例 二、运行昇腾AI模型应用样仓程序 2.1 程序目录 2.2 下载模型和模型转换 2.3 下载图片和编译程序 2.4 解决报错 2.5 运行程序 三、运行…

《决胜B端 产品经理升级之路》 知识点总结

什么是b端产品&#xff1f; b端产品是指面向企业或组织的经营管理问题&#xff0c;旨在解决企业规模、成本、效率、品质和风控等方面的产品。这些产品主要帮助企业提高运营效率、降低成本、改善品质和控制风险等。b端产品适用于各种行业和企业类型&#xff0c;可以为企业带来深…