官术网_书友最值得收藏!

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)“最受喜愛編程語言”的殊榮。

013-01

圖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這些獨有的特性。

主站蜘蛛池模板: 耒阳市| 禹州市| 阿拉尔市| 灵川县| 大足县| 调兵山市| 玛曲县| 临颍县| 盘锦市| 长治市| 龙山县| 康乐县| 天津市| 科技| 华阴市| 遵义县| 英德市| 商都县| 亳州市| 通化县| 芷江| 平南县| 泸定县| 兴文县| 金平| 伊宁市| 元氏县| 乌鲁木齐市| 湘阴县| 抚顺市| 城固县| 新疆| 高密市| 城口县| 榕江县| 吉木乃县| 安远县| 外汇| 四平市| 疏附县| 绥滨县|