Jon Gjengset認為學習Rust語言並不難

banq發表於2021-12-10

Jon Gjengset是書籍Rust for Rustaceans 的作者,曾是MIT CSAIL 並行和分散式作業系統組的博士生,是 Amazon Web Services (AWS) 的高階軟體工程師。在亞馬遜,他的重點是在內部推動 Rust 的採用,包括構建內部基礎設施以及與 Rust 生態系統和社群進行互動。
 

Rust 連續六年被 Stack Overflow 評為“最受歡迎的語言”,它也因比其他流行語言更難學習而聞名,那些擅長 Python 但由於感知到的學習曲線而猶豫是否需要嘗試 Rust?
Rust 並不難學,而是 Rust 迫使您將其應用到程式碼中的原則。如果您正在使用 Python 編寫程式碼,以您的示例為例,該語言存在大量問題,您無需考慮就可以逃脫 - 也就是說,直到它們稍後回來咬您為止。無論是由於動態型別導致的錯誤、僅在重負載期間出現的併發問題,還是由於缺乏仔細的記憶體管理而導致的效能問題,您都在進行反應式開發。您首先構建一些有效的東西,然後在發現問題時週而復始地解決問題。
Rust 是不同的,因為它迫使你更加主動。今年來自 RustConf 的一個恰當引用是 Rust“首先給你帶來宿醉頭疼反應”——作為開發人員,你被迫對你的程式的執行時行為做出明確的決定,並且你被迫確保相當大的錯誤不會出現存在於您的程式中,所有這些錯誤都在編譯器編譯原始碼之前就能發現。這是開發人員需要學習的東西,以及在編譯時除錯的相關技能,而不是在執行時除錯和發現各種錯誤。
正是開發過程的這種變化導致了大​​部分(儘管不是全部)Rust 更陡峭的學習曲線。這是一個非常真實和重要的教訓。我也懷疑這將是一個非常有價值的教訓,隨著行業越來越關注透過形式驗證等方式保證正確性,這隻會在這個方向上進一步推動開發人員體驗。例如,當我現在用 Java 編寫程式碼時,我更加了解該程式碼的正確性和效能影響,因為從某種意義上說,Rust 教會了我如何更好地推理程式碼的這些方面。
 

 Rust 比 C 和 C++ 有兩個主要優點
 Rust 比 C 和 C++ 有兩個主要優點:人體工程學和安全性。
對於人體工程學,Rust 採用了許多傳統上與高階語言相關的機制,這些機制使得編寫簡潔、靈活、(大部分)易於閱讀且不易誤用的程式碼和介面變得更容易——像代數資料型別這樣的機制、模式匹配、相當強大的泛型和一流的功能。這些反過來讓編寫 Rust 感覺不像我們考慮C等系統程式設計時經常想到的那樣 - 低階程式碼只處理原始指標和位元組 - 並使該語言對更多開發人員更容易上手。
至於安全性,Rust 在型別系統中編碼了更多關於程式碼、訪問和資料的語義的資訊,這允許在編譯時檢查其正確性。執行緒安全和獨佔可變性等屬性在 Rust 的型別級別強制執行,編譯器不會讓你弄錯。Rust 的強型別系統還允許透過型別狀態程式設計將 API 設計為抗誤用,這在 C 等不太嚴格的語言中很難實現。

其他點選標題

相關文章