從Julia到Rust語言的學習 - miguelraz

banq發表於2021-06-06

我的第一個真正的程式語言是 Julia,我認識其他對 Rust 感興趣的 Julian。我為這些人寫了這篇文章,因為 Rust 和 Julia 是效能很好的陪練夥伴,但 Rust 有不同的心態和值得考慮的權衡。
這兩個演講促使我學習Rust:第一個·是卡羅爾·尼科爾斯、第二個是由Ryan埃伯哈特和阿明Nanavari演講。第一個討論了大約 70% 的大型科技公司的錯誤來自記憶體安全,而且火車過去沒有緊急剎車;第二個解釋了系統程式設計程式碼庫如何將資源所有權的不變性強加給編碼人員 ,但這種推理可能非常容易出錯、乏味和自動化。
這就是技術的意義!不必擔心前幾代的問題,因為我們找到了一種將這種想法轉移到機器上的方法。
Rust 上真正讓我受益匪淺的第三個演講是Alex Gaynor:銀行或學校網站可能因記憶體錯誤而崩潰已經夠糟糕的了,
但是一旦你考慮到即使是世界上最好的程式設計師(按薪水排序,粗略地)也無法交付安全程式碼,你開始有點絕望。然後你會聽說像sudo這樣久經考驗的庫,正如道德論據所說,如果你繼續交付一個損壞的工具,你很可能會讓易受傷害的人受到傷害。
Rust 的哲學是什麼?
  

兩種語言的故事
你可能知道Julia的起源故事-有一個用於科學計算的gajillion dsl,BLAS是一個爛攤子,但是為了效能需要透過名稱空間實現多型性,其他庫由於效能限制重新實現了一個窮人版本的multiple dispatch。如果您將一個聰明的JIT新增到多個dispatch功能中,那麼如果可以推斷出型別,您就可以輕鬆地獲得~C效能,幸運的是,您可以圍繞這個範例和這些權衡構建一個通用程式語言。最終,他們對語言進行了洗禮,以紀念一位真正的演算法女王。
Rust來自不同的地方:幾年前在Mozilla,Graydon Hoare和團隊厭倦了系統程式設計和C/C++工具鏈。他們正在開發一種語言,這種語言允許程式設計師在低階系統中高效工作,在沒有火箭筒的情況下利用併發效能,並在執行時避免錯誤。起初,他們有不同的系統來處理之前的問題,直到團隊拼湊出一個所有權系統,在編譯時有一個借閱檢查器 borrow checker,可以一舉兩得。最終,他們以真菌命名了這種語言。
Julian們厭倦了不可重用的程式碼、利基dsl和駭客多型性。他們以多重排程為核心設計特點,解決了這些問題。Rust擺平了C/C++雷區,並試圖保持所有不變性,所有權和借閱檢查器的概念使它們在編譯時知道這些錯誤,並且不受資料競爭的影響。

詳細點選標題
 

相關文章