Categories
程式開發

Rust的不足之處,讓它無法成為一門成熟的編程語言


雖然我並不反對Rust本身,並且一直在用Rust開發自己的項目,但我還是發現它有一些不足之處,讓它無法成為一門成熟的編程語言。在這篇文章裡,我想把這些問題列出來,並解釋為什麼我會這樣認為,即使它們對我沒有任何影響。

Rust語言本身的問題

首先,Rust沒有正式的語言規範。我的意思是,儘管對語法和對像等方面進行了解釋,但沒有正式的規則來描述語言特性可以是什麼或不可以是什麼。在ISO C語言標準裡,幾乎每一項都有三到四個描述片段:正式的語法約束(即哪些東西是不被允許的或者不能用它完成哪些事情)、語義(即它可以做什麼、它是如何影響程序的、有哪些需要注意的地方),而且可能還會列出一些例子。 Rust參考(https://doc.rust-lang.org/reference/)中是這樣描述結構體的:語法(沒有異議)、類似“結構體是用關鍵字struct定義的名義結構體類型”這樣的定義、示例、在示例中間簡短地提到空結構體,最後以“結構體沒有指定精確的內存佔用”結尾。我知道添加新特性比寫文檔更重要,但這樣做確實很蹩腳。

一門成熟的編程語言(版本到了1.0)應該有正式的規範,對於開發編譯器的人和使用這門語言的程序員來說都應該有用。例如,對於結構體的定義,我發現至少缺少了這些東西:提到你可以impl(實現)、將元組拆分成獨立的項、說明為什麼有匿名的元組而不是匿名的結構體,當然,還要使用適當的佈局,讓示例中重要的信息(例如關於內存佔用)不至於丟失。

原文鏈接:【https://www.infoq.cn/article/QsrIAKNM9c7tv4hKBvti】。未經作者許可,禁止轉載。