為什麼我從Java切換到Rust? Opensource.com

banq發表於2020-06-10

Rust感覺像是我要去的地方:結構合理,富有表現力,可以幫助您做正確的事。
經過多年的Java開發,我最近開始學習Rust。有五個要點是:
  1. Rust感到很熟悉
  2. 引用很有意義
  3. 所有權會很有意義
  4. Cargo很有幫助
  5. 編譯器很棒

我絕對支援所有這些,但是我還有更多話要說,因為我現在覺得自己像Rustacean :
  • 我不想再用其他任何東西程式設計。
  • 我已經擺脫了簡單的魔術咒語。

這兩個語句是什麼意思?好吧,第一個很簡單:Rust感覺像是個理想的地方。它結構合理,表達力強,可以幫助您做正確的事,它具有出色的文件和工具,並且有一個很棒的社群。而且,當然,所有內容都是開源的,這是我深深關心的。
這是使用Rust的示例:

// Where checkhashes is pre-defined vector of hashes to verify
let algorithms = vec![String::from("SHA-256"); checkhashes.len()];


這將建立一個新的向量,稱為“algorithms”,其長度與向量“ checkhash”相同,並用字串“ SHA-256”填充。
第二件事?好吧,我決定為了正確學習Rust,我應該參加一個最初用Java編寫的專案,並希望在相當慣用的Rust中重新實現它。不久之後,在遭遇錯誤時我圍繞實現而不是語法去解決錯誤,是基於編譯器輸出對我的程式碼進行細微、看似隨機的更改。換句話說,我正在讓事情進行編譯,瞭解為什麼要編譯,然後才犯了程式設計錯誤。
這是另一個例子,應該感到很熟悉:

fn usage() {
    println!("Usage: findfromserial KEY_LENGTH INITIAL_SALT CHECK_HASH1 [CHECK_HASH2, ...]");
    std::process::exit(1);
}


這是向前邁出的一大步。當您開始學習一種語言時,總會複製和貼上在其他地方看到的程式碼,或者在不熟悉的結構中擺弄直到它們起作用為止。程式碼或產生您不太瞭解但似乎可以正常工作的現象有時被稱為“使用了魔術”,一些語言特別傾向於這種方式,但是許多(大多數?)學習新語言的人在剛開始時只是因為他們希望事情能起作用。

相關文章