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怎樣才能提高可讀性?
