Rust 語法很醜陋嗎?如果是,為什麼醜陋呢?為什麼設計成這樣呢?


離提問有差不多快一年,現在的 Rust 語法看上去並不是很醜。以下幾個地方特別丑:

1. 類型複雜的時候,顯式標註類型會很~~~長(不過目前還沒見著比堪比 C++ 的長度的類型。另外函數定義不標註類型的話會出現 Haskell 里經常遇到的晦澀難懂的類型不匹配錯誤);

2. 一堆 lifetime 和 generic 類型限定的時候。

縮寫的話,至少我覺得 fn 比 func 好看。一看就懂的字,幹嘛寫全佔地方呢。


不醜陋。
說醜陋的人只能說思想不開放。看不慣它的語法。(誰叫這世界那麽多類 C 語言呢。)


編輯個題外話,為什麼 vczh 答案的權重現在變得那麼低啊,知乎手動指定的?

我已經學習了 Rust,有能力自問自答了,簡單寫一下。

Rust 的縮寫是完全可以接受的嘛,也不是非常多,fn mod 這些都是很正常的縮寫嘛

之前看到有人說 Rust 醜陋,應該是說指針語法繁雜,現在指針語法已經被統一和消除了(類型上來說貌似只有 是特殊的語法),一般使用是不會遇到讓人厭惡

的情景的。

手機,明天補充。

----------

This release also marks the complete removal of the `~` and `@` syntax in favor of library types `Box` and `Gc`.

- 0.11 changelog

原本語法中有 ~ 和 @ 前者是最普通的指針,後者是垃圾回收指針。

於是愈發會有奇葩的凌亂感,比如說

let foobar = 42i
"a~@foobar // foobar 前面的都是指針

現在這些語法被范型代替了:

聲明:

let foobar = 42i
"a box Gc::new(foobar)

類型

"a Box&&>

雖然變長了但是更統一了。

當然我是從 0.11 開始學的,前面版本的語法我沒用過,可能弄錯。

題外話:

或許 Rust 是一個參與度最高的語言。

曾經有人評價,一個工程項目一般是:一開始是簡潔但是不完善的,在第二次設計的時候是繁雜並完善的,進行了第三次設計才能變成簡潔但是完善的。

我覺得 Rust 是在進行一個飛快的試錯過程。Rust 在快速的迭代中不斷的試錯,變得複雜然後變得簡單,每一個人都可以參與到語言的設計中去,只要你有乾貨輔佐你的觀點,那麼你只用寫在 issues 裡面就行了。Pull Requests · rust-lang/rfcs · GitHub

最重要的是在 1.0 發布之前,你的好想法都不會因為兼容性而被拒絕,也就是說沒有任何兼容性包袱(這就是為什麼 Rust 一直給人語法不穩定的印象),同時已經有不少人和不少項目正在用 Rust 書寫,Rust 編譯器本身和 Servo 都是非常龐大的項目,有幾十萬行級別的代碼吧,語言中如果有什麼常見的坑那麼必然會被填平,我覺得或許會成為一個坑很少的語言。基本上我的代碼編譯通過了就不會有問題。

使用中遇到了坑請提交 iusses。


rust是唯一一個我覺得有可能取代c/c++的語言


別的縮寫都還好,就是這個 mut 實在是…………


javascript他爹很多年前用10天擼了這個語言,因為各種設計的細節問題坑太多導致開發前端的人水深火熱。現在他想改過自新,於是發明了rust。雖然技術已經得到了進步,但那個品味嘛……我覺得沒什麼改善。


代碼美感 haskell 完爆rust。但是我正在rust上挖坑。


丑是因為和以前的不一樣嗎?


寫點haskell,scala之類的就習慣了


推薦閱讀:

最噁心的語言是 Objective-C么?
Objective-C 語法上有任何的優點嗎?
有哪些令人拍案叫絕的代碼/優化?
你見過哪些令你瞠目結舌的C#代碼?
Mathematica怎樣才能提高可讀性?

TAG:編程語言 | Rust編程語言 |