Rust的標準庫為啥很小?
剛接觸 Rust 程式語言的人會問“為什麼標準庫中沒有隨機數生成/正規表示式/日期時間/序列化等基本功能?為什麼我需要為這些功能匯入質量未知的第三方庫? "
保持標準庫小型化的原因
- 向標準庫新增程式碼並不容易。它需要時間和精力來考慮命名、程式碼佈局和實現細節的利弊,還需要更多時間來解決所提出的問題。
- 一旦加入標準庫,就不可能將程式碼從標準庫中刪除。
- 需要時間來找到合適的介面。Rust是一種相對較新的語言。它引入了新的約束條件,使得尋找正確的介面變得困難。來自其他語言的先有技術可能沒有幫助。找到API的最好方法是釋出一個庫並根據反饋進行迭代。
- 當開發者可能沒有網際網路來尋找和下載第三方的依賴時,一個大型的標準庫是一個殺手鐧。但是有了網際網路+包管理器+包倉庫,下載依賴性就變得非常簡單了。Rust在1.0之前就已經有了這些東西,並從中受益。今天,所有公開的Rust程式碼都是用cargo構建的,併發布到crates.io。甚至更老的語言也在採用這種方法。與其向Python的大型標準庫新增請求,不如在文件中鼓勵使用者自己下載。
相關文章
- Rust 標準庫中的 async/await (async-std)RustAI
- Windows中Rust標準庫發現“BatBadBut”漏洞WindowsRustBAT
- 為什麼標準庫的模板變數都是inline的變數inline
- C++標準庫、C++標準模版庫介紹C++
- 標準庫之template
- python常用標準庫Python
- Go標準庫ContextGoContext
- C++標準庫C++
- 標準庫 fmt 包的基本使用
- Python標準庫(待續)Python
- python標準庫目錄Python
- golang標準庫之 fmtGolang
- C++標準庫:chronoC++
- C++標準庫:randomC++random
- C標準庫學習
- PHP 標準庫 SplStack 棧PHP
- swagger 的介面標題為啥無法顯示Swagger
- 手寫程式語言-如何為 GScript 編寫標準庫
- golang標準庫的分析os包(6)Golang
- Python標準庫中隱藏的利器Python
- Go標準庫flag包的“小陷阱”Go
- stm32標準庫和HAL庫的關係
- go語言標準庫 - timeGo
- go語言標準庫 - strconvGo
- go語言標準庫 - regexpGo
- go語言標準庫 - logGo
- c/c++ 標準庫 vectorC++
- C 標準庫 – ctype.h
- 標準庫~JSON物件詳解JSON物件
- 標準庫之 random 模組random
- Python標準庫06 子程式Python
- 【推薦】5個常用的Python標準庫!Python
- 標準庫 http 包的簡單實用HTTP
- 為啥要在 Authorization 標頭裡加個 Bearer?
- 如何入職遊戲公司,成為遊戲模型師,次世代PBR製作標準是啥?遊戲模型
- C++標準庫有四種智慧指標C++指標
- Golang標準庫學習—container/heapGolangAI
- Java與資料庫 —— JDBC標準Java資料庫JDBC