- Rust編程:入門、實戰(zhàn)與進階
- 朱春雷
- 767字
- 2021-04-30 12:37:21
1.1 Rust語言簡介
Rust語言誕生于2006年,原本是Mozilla員工Graydon Hoare的私人項目。Mozilla于2009年開始贊助這個項目,并于2010年對外公布。Graydon Hoare認(rèn)為,未來的互聯(lián)網(wǎng)除了需要關(guān)注性能,更需要關(guān)注安全性和并發(fā)性。因此,他對Rust語言的期望是:必須更加安全、不易崩潰;不需要垃圾回收機制,不能為了內(nèi)存安全而引入性能負(fù)擔(dān);擁有一系列相互協(xié)作的特性,使得程序更容易編寫、維護和調(diào)試。總之,一切都是為了讓開發(fā)者寫出更安全、更高效的代碼。在Stack Overflow 2020開發(fā)者調(diào)查報告中,Rust獲得“最受喜愛編程語言”第一名,如圖1-1所示。這是Rust連續(xù)五年蟬聯(lián)“最受喜愛編程語言”的殊榮。

圖1-1 Stack Overflow 2020開發(fā)者“最受喜愛編程語言”評選
計算機編程語言經(jīng)歷了從機器語言到匯編語言再到高級語言的演進,但一直以來始終有一個難題存在,那就是如何編寫出內(nèi)存安全的代碼。近年來,由內(nèi)存安全以及內(nèi)存緩沖區(qū)溢出所導(dǎo)致的密鑰泄露、拒絕服務(wù)和遠程代碼執(zhí)行漏洞等相關(guān)問題頻發(fā)。
簡單來說,內(nèi)存安全是不出現(xiàn)內(nèi)存訪問的錯誤。使用未初始化內(nèi)存、引用空指針、釋放指針后再次使用、重復(fù)釋放指針、緩沖區(qū)溢出等都會導(dǎo)致內(nèi)存訪問錯誤。Rust語言的獨到之處就是為了保證內(nèi)存安全,建立了嚴(yán)格的內(nèi)存管理模型——所有權(quán)系統(tǒng)和類型系統(tǒng),通過其嚴(yán)格的編譯器來檢查代碼中的每個變量和引用的每個內(nèi)存指針,為每個變量建立了清晰的生命周期。一旦超出生命周期,變量就會被自動釋放,從而不需要垃圾回收機制。每個被分配的內(nèi)存都有一個獨占其所有權(quán)的指針。當(dāng)該指針被銷毀時,其對應(yīng)的內(nèi)存才會被釋放。這樣,Rust從語言層面保證了程序的正確性,讓開發(fā)者在編譯階段就能識別出內(nèi)存不安全的錯誤。
除了安全性,Rust還追求高效開發(fā)。泛型和trait系統(tǒng)使其具備了強大的抽象表達能力。同時,為了保證程序的健壯性,Rust還設(shè)計了簡單又精致的錯誤處理機制,讓開發(fā)者可以從更細(xì)的粒度對非正常情況進行合理處理。后面的章節(jié)會逐步探索Rust這些獨有的特性。
- Visual C++程序設(shè)計學(xué)習(xí)筆記
- 程序員數(shù)學(xué):用Python學(xué)透線性代數(shù)和微積分
- Android Development with Kotlin
- Django Design Patterns and Best Practices
- Mastering Rust
- Python漫游數(shù)學(xué)王國:高等數(shù)學(xué)、線性代數(shù)、數(shù)理統(tǒng)計及運籌學(xué)
- 深度學(xué)習(xí):Java語言實現(xiàn)
- Quantum Computing and Blockchain in Business
- 輕松上手2D游戲開發(fā):Unity入門
- 智能搜索和推薦系統(tǒng):原理、算法與應(yīng)用
- MINECRAFT編程:使用Python語言玩轉(zhuǎn)我的世界
- AV1視頻編解碼標(biāo)準(zhǔn):原理與算法實現(xiàn)
- 交互式程序設(shè)計(第2版)
- 例說FPGA:可直接用于工程項目的第一手經(jīng)驗
- Python數(shù)據(jù)預(yù)處理技術(shù)與實踐