對Rust的不好看法 - chrisdone
這是我目前對 Rust 想法的一個小總結。我不知道我是否會在五年後回顧,看看我的觀點是否發生了變化
好的看法
Rust 的宏非常好。它們的作用類似於 Lisp 的宏,與 Haskell 的不同。
Rust 具有型別類(“traits”)和和型別(“enums”)和模式匹配這一事實非常有吸引力。使例項在包範圍孤立而不是模組範圍是一個非常好的決定。
我也喜歡它對記錄的處理。
它的標準庫在一些方面做得很好,比如將字串處理為 UTF-8。
區分可變性有其優點,很容易看出一個函式是“道德上”純的——如果不是實際上純的——這有利於閱讀。
糖好嗎?
Rust 使用了神奇的糖結構,編譯器會自動為你插入解引用、複製、克隆和刪除,它具有最初吸引人的“底層很簡單”的品質,但在實踐中這會導致錯誤的編譯錯誤:編譯錯誤是編譯器一種它為你生成的東西的抱怨,而不是直接抱怨寫的東西。
這可以與 Haskell 使用提供語法糖的 monad 進行比較。你引入的魔法越多,新手就越難學習和談論。
對高效記憶體表示的迷戀
人們試圖理解為什麼他們完全合理的程式碼不適合 Rust 嚴格的記憶體限制?
不是技術不好用,而是你用錯了。
在實踐中,人們只是希望能夠編寫一個樹狀型別,而不必與編譯器下棋。我預測垃圾收集器最終會在 Rust 中流行起來。
這既是 Rust 的主要目標——像 C 一樣,但安全——也是它的主要缺點。人們將時間浪費在永遠不會產生效果的瑣事上。
unsafe
unsafe 的使用有點令人不安,因為每個庫都有它。但這與使用 FFI 沒有太大區別。我不認為這是一個很大的缺點。
重寫謬誤
重寫謬誤
我看到很多“我們用 Rust 重寫 X 並且它變得更快”的帖子。我認為,如果您在考慮效能的情況下從頭開始重寫任何內容,您將看到顯著的效能改進。我懷疑 Rust 本身的需要程度,與具有某些效能潔癖的開發人員相比,哪個更主要?
“友好”社群
所有新的語言社群都很好。當事情無關緊要時,人們沒有理由生氣。
一旦人們對某事持有利害關係,那就是事情升溫和發脾氣的時候。您可以透過在其中編寫大量程式碼或在其上建立業務來獲得程式語言的股份。當您對一門語言的工作方式感興趣時,您對可能使您做的工作超出需要或限制您的目標的變化非常敏感。
我已經看到了 Haskell 的情況。2007 年左右,當我開始使用 Haskell 時,社群對任何事物都很友好,福音派的,開放的。人們為此稱讚它。每個人都感到很幸運能夠使用這種令人興奮的語言。今天,它更像任何其他社群。發生了什麼?人們開始真正使用 Haskell,僅此而已。
Rust 正在經歷同樣的事情,而且速度要快得多。這是避免 Rust 的理由嗎?不會。但是“友好”的社群也不是加入即將到來的語言的理由。
非同步問題很大
非同步引入了長時間的、激烈的討論。
Rust 的問題是它的使用者想要一個執行時,但想要一個沒有執行時的選項。結果一團糟。
總的來說,我認為 Go、Erlang 和 Haskell 在這裡做出了更好的選擇。垃圾收集器和綠色執行緒使程式設計師的工作效率更高。
作為通用語言
我覺得 Rust 被定義為一種“系統”語言,但它被用來編寫 Web 應用程式和命令列工具以及各種東西。
這有點令人失望,但也是可以預見的:你的語言越成功,就會有越多的人將你的語言用於它不適合的事情。
相關文章
- 對RESTful API的個人看法RESTAPI
- 對於Lumen和Laravel的看法Laravel
- 我對組隊學習的看法
- 我對部落格的理解和看法
- 對圖靈社群改版的小看法圖靈
- 對MVP和MVVM的一點看法MVPMVVM
- 我對軟體測試的看法
- 對 Guice Interceptor 的一點 自己 的看法GUI
- 一個Python開發者對鴻蒙的看法Python鴻蒙
- 我對中國科技行業的看法(譯文)行業
- 大佬對 WEB 自動化測試的看法Web
- 路人開發對測試人員的看法
- 談談我對996.icu的看法996
- 我對技術潮流的一些看法
- 益普索:全球對AI的看法和期望AI
- 對於iOS效能優化的一點看法iOS優化
- 各位談談對java web start的看法吧JavaWeb
- 我對"系統=流程+表單"的看法 (轉)
- 瑣碎的想法(三)對Java的批評的看法Java
- 聊一聊我對測試開發的看法
- Haters Gonna Hate (Eric Evans對NoSQL的冷靜看法)GoSQL
- 關於我對c#的一些看法C#
- 我對專案管理的一點看法1(轉)專案管理
- 我對專案管理的一點看法 2(轉)專案管理
- 我對Red Flag Desktop 5.0的個人看法(轉)
- rust-admin 對 Rust 的第一印象Rust
- 陳星漢:我希望改變人們對遊戲的看法遊戲
- 我對前端工程師這個職業的看法前端工程師
- 我對大家尋求oracle培訓的一點看法Oracle
- Java社群對Kotlin有什麼看法? - redditJavaKotlin
- 不知道各位對Flex有什麼看法?Flex
- 使用 Objective-C 一年後我對它的看法Object
- 對 IT 行業性別歧視的另一種不同看法行業
- 一個資深iOS開發者對於React Native的看法iOSReact Native
- 我對軟體架構的一些看法和思考架構
- 我對女生做程式設計師的一些看法程式設計師
- 就Tim Bray對JSON和XML的比較的幾點看法JSONXML
- 請各位對domino和websphere整合發表點看法Web