14

Rust 的不足之处,让它无法成为一门成熟的编程语言

 3 years ago
source link: https://www.infoq.cn/article/QsrIAKNM9c7tv4hKBvti
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

虽然我并不反对 Rust 本身,并且一直在用 Rust 开发自己的项目,但我还是发现它有一些不足之处,让它无法成为一门成熟的编程语言。在这篇文章里,我想把这些问题列出来,并解释为什么我会这样认为,即使它们对我没有任何影响。

首先,Rust 没有正式的语言规范。我的意思是,尽管对语法和对象等方面进行了解释,但没有正式的规则来描述语言特性可以是什么或不可以是什么。在 ISO C 语言标准里,几乎每一项都有三到四个描述片段:正式的语法约束 (即哪些东西是不被允许的或者不能用它完成哪些事情)、语义 (即它可以做什么、它是如何影响程序的、有哪些需要注意的地方),而且可能还会列出一些例子。Rust 参考( https://doc.rust-lang.org/reference/ )中是这样描述结构体的:语法 (没有异议)、类似“结构体是用关键字 struct 定义的名义结构体类型”这样的定义、示例、在示例中间简短地提到空结构体,最后以“结构体没有指定精确的内存占用”结尾。我知道添加新特性比写文档更重要,但这样做确实很蹩脚。

一门成熟的编程语言 (版本到了 1.0) 应该有正式的规范,对于开发编译器的人和使用这门语言的程序员来说都应该有用。例如,对于结构体的定义,我发现至少缺少了这些东西:提到你可以 impl(实现)、将元组拆分成独立的项、说明为什么有匿名的元组而不是匿名的结构体,当然,还要使用适当的布局,让示例中重要的信息 (例如关于内存占用) 不至于丢失。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK