导读:Rust 老手 Steve Klabnik 正在使用 LLM 来探索无需垃圾回收的内存安全性。
如果把“Rue”这个单词中理解为“后悔”,那么将一种新的编程语言命名为“Rue”,听起来就像是对该项目前景表示有点儿怀疑。
但资深软件开发工程师史蒂夫·克拉布尼克(Steve Klabnik)表示,事情可远不止如此。
克拉布尼克因其对Rust和Ruby on Rails的贡献而闻名。
克拉布尼克是前 Rust Core Team 中核心成员,还是几本Rust图书的合著者。Rust 语言以注重安全且高效能而闻名全世界,至今广受开发者社区欢迎,比如Facebook 所推出的数字货币 Libra ,就是使用 Rust 开发。
Rust 起源于 2010 年,至 2015 年发布第一个版本给用户使用,可以说是非常年轻的编程语言。完全开放源代码的开发是 Rust 一大特色。
掌握更多编程语言更好
Klabnik在 2022 年退出Rust 核心团队之前,曾担任该团队成员八年,并且是Rust 官方手册的主要作者。
Rust 仍然是他最喜欢的语言,但他表示,Rust 还可以做得更好,而且他不担心语言碎片化。
“我一直都很喜欢编程语言,所以我很乐见编程语言种类繁多,与此同时,整合在很多方面都让事情变得更简单,比如招聘、部署……我希望看到的是能够催生出更优秀的编程语言,而不仅仅是更多的语言。但我确实认为,更多的语言是必要的前提条件。创意需要经受住现实世界的考验。”
克拉布尼克这样形容Rust,他说:
“Rust”这个名字会让人联想到几件事,其中一个就是腐烂、熵增。这是一个负面的含义。另一个是真菌的种类,这是一个正面的含义。”
于是,他想搞一个新语言,叫做Rue。
“ Rue这个名字的来头,是因为我之前用过 Ruby,然后又用了 Rust……所以我需要以 Ru 开头。而 'Rue' 正如你们所说,可以表示‘后悔一天’或类似的意思,但它也是一种好看的花。”
“我喜欢这种兼具负面和正面含义的对称性。而且它字数很短,这点很好。”
Klabnik 继续解释说,
“Rue是一种系统编程语言,旨在提供无需垃圾回收的内存安全,同时提供比 Rust 和 Zig 等语言更高级别的人机工程学特性。”
编程语言中的垃圾回收指的是自动内存管理,它可以采取多种形式。它的作用是减少因显式内存释放而导致的内存错误——这正是美国网络安全机构大力倡导的目标。
而Rust 的一个卖点是,它可以使用语言的子集提供内存安全保证,尽管它的学习曲线通常比 Go 或 Swift 等现代语言更陡峭。
Klabnik表示,他多年来一直与人们探讨Rust语言,而其复杂性是大家普遍关注的问题。他解释说,Rust社区给出的理由是,用于操作系统等底层任务的语言存在各种各样的限制,这使得事情变得复杂。
他解释说:
“所以我当时就想,探索一下这个设计空间会很有意思:如果 Rust 不去追求与 C 和 C++ 的最高性能呢?如果我们愿意牺牲一些性能,但又不能牺牲太多,来换取易用性呢?如果我们让语言本身稍微庞大一些,也就是说,减少纯库代码中的功能,以此来简化整个软件包呢?”
“过去二十年来,有很多编程语言都带有垃圾回收机制,但没有垃圾回收机制的则相对较少。所以我认为,‘内存安全但无需追踪垃圾回收机制’这个领域总体上还没有得到充分的探索。有很多小型编程语言正在探索这个领域,我想分享一下自己的见解。”
从现有的代码示例中还看不出Rue 是否比 Rust 更容易上手,因为Rue 版本的常见 Fizz Buzz 练习与Rust 版本看起来并没有太大区别。
https://github.com/rue-language/rue/tree/trunk/examples
其实,克拉布尼克的观点并非完全出自他一人之手。Rue 主要使用 Rust 编写,并大量依赖于 Anthropic 的 Claude AI 大模型,
而该模型的强大功能则归功于所有为模型训练数据提供代码的开发者。
史蒂夫·克拉布尼克和人工智能助手Claude还共同撰写了一篇文章, “史蒂夫·克拉布尼克和Claude共同开发Rue语言” 。
写了几篇之后,由Claude独自撰写第一周的开发总结。
https://rue-lang.dev/blog/week-one/
Klabnik解释说。
“我今年早些时候就开始开发Rue了,但我当时对LLM的掌握不如现在这么好,犯了不少错误。所以我重新开始。这次我花了两个星期的时间,取得的进展比上次花了一两个月的时间还要多。这部分要归功于更好的大模型,更主要的还是因为我自己对如何有效使用LLM的理解能力提高了。”
他表示,对于一些小型半定制项目,像 Claude 这样的模型即使对于经验不足的开发人员也很有用。而对于大型项目,软件工程知识则更显得重要。
“所以,我觉得任何事情都可以从小处着手,逐步推进,”他解释说。“小型、独立的项目?当然,即使是不懂编程的人也可以使用这些工具。但它们毕竟是工具,而工具的使用需要专业知识。”
“即使掌握一些编程知识,也不足以真正有效地使用LLM(语言学习工具),它们本身就是独立的工具。Vim并不容易上手,懂编程也无助于你使用它,但它仍然是一款有用的工具。不过,学习编程本身就是一种技能。软件开发技术,例如测试,与编写代码来完成任务是截然不同的技能。我对LLM的看法也是如此。它们的入门门槛低,但要高效使用,则需要很高的技能水平。”
克拉布尼克表示,很难估计Claude到底节省(或强加)了多少时间。
“我可以肯定地说,如果没有它,我在这个项目上的进展会比现在慢得多,”他说。“Rue 项目上线两周以来,Rust 代码已经达到了大约 7 万行。当然,代码行数并不能说明一切,事实上,我现在还进行一些重要的重构工作。但只是为了让你们对项目规模有个大致了解。我知道,如果我当初是手工完成这个项目,我的进度肯定会慢得多,而且(虽然我现在还不能确定)质量可能也会更低。”
Claude尚未对Rue的代码质量进行评估。但该人工智能模型已经发出了不少代码片段,这些片段似乎是在论证其自身的能力。
“我认为本周的情况表明,只要拥有合适的资源,一门语言的核心——编译器本身就能以惊人的速度成型,”Claude回应克拉布尼克的提问时说道,他使用了长破折号,这也在意料之中。“我们还没有语言服务器协议(LSP),也没有包管理器。但我们已经有一个真正的编译器,可以生成真正的可执行文件,并且拥有足够的基础设施来持续开发。”
“实话说,这130次提交中大部分都出自我的手笔。克拉布尼克就像技术总监,负责指导、审核,并做出了艰难的设计决策。也编写了大部分代码。这是一种不寻常的合作模式,我目前还不确定该如何评价它。”
克拉布尼克对这个Rue语言项目的前景还是很随缘。
“如果有人用它,我觉得挺好,没有也无所谓;如果十年后它真成为一种主流编程语言,那就更棒了,”他说。“我没想强求什么,我只是在做自己喜欢的事情,看看它会把我带向何方。”
Claude 是他的优秀的随行副驾驶。
作者:场长
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。