主要观点:Rust 语言感觉像第一代产品,虽早期令人喜爱但现在仍有诸多不足,如语言进度放缓、一些特性未进入稳定版、共识过程难扩展等,作者甚至幻想fork 编译器来实现自己的想法。
关键信息:
- 以 iPhone 为例说明第一代产品的特点,如第一代 iPhone 虽有创新但存在诸多不足,Rust 也有类似情况,如未实现 3G 网络、GPS 芯片和应用商店等。
- Rust 语言发布后进展缓慢,不稳定特性众多但未进入稳定版,如协程特性 RFC 已 7 年仍未实现。
- Rust 的共识过程难以扩展,如解决
Mutex
问题耗费大量时间和精力。 - 提出对 Rust 的一些幻想修改,如函数特质(效果)、编译时能力、Pin 相关改进、Comptime 等。
重要细节: - 函数特质方面,定义函数特质来描述函数的各种属性,如是否会 panic、是否有固定栈大小等,可用于更精确地控制代码,如 Linux 内核可利用此特性保证代码不会 panic。
- 编译时能力方面,为标准库中的安全敏感函数添加标记特质,开发者需显式白名单才能调用,以降低供应链风险,如对文件系统和网络操作的函数。
- Pin 相关问题,Pin 是为解决借用检查器的漏洞而引入的复杂机制,存在诸多不合理之处,如不是实际特质、仅适用于引用类型等,作者认为应利用借用检查器来处理结构体,引入
Move
特质等。 - Comptime 方面,对比 Zig 的
comptime
,Rust 的宏语言存在问题,而 Zig 的comptime
可在编译时运行部分代码,使代码更清晰美观,如 Zig 的std
的print
函数。 - 其他细节,如
impl<T: Copy> for Range<T>
的问题、派生关联类型的问题、if-let 表达式的问题、raw 指针操作的问题、集合类型的构造参数等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。