成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rust是未來的5個理由

開發 前端
如果您正在尋找某種金屬面板業務,請讓我澄清一下:我所指的Rust是一種編程語言。

如果您正在尋找某種金屬面板業務,請讓我澄清一下:我所指的Rust是一種編程語言。

還在那里?

當我8歲開始學習編程語言時,世界處于不同的狀態,計算機更像是浪漫而神奇的盒子,而不是抖音如今使用的工具。

GW-Basic和C是我在可以直接訪問內存的時代從事計算機科學的第一門鏡頭,這是許多人的樂趣和他人的利益。 通過某些語言提供的合法構造,對操作系統內核進行野蠻攻擊是如此容易。

Rust是未來的5個理由

> If this picture makes you nostalgic you are old enough to continue reading. If not, keep reading :

我在學術界的這些年一直以在后端系統中大量使用C(更少使用C ++)以及在計算機科學中實現常見且更奇特的算法為特征。 我博士的歲月大躍進 其特點是大量使用C并指示編譯器減輕所有低級編程語言均會受到的討厭問題,即直接訪問內存。 因此,諸如忘記忘記已經釋放了內存(雙重釋放),超出數組限制的讀取/寫入(緩沖區溢出),指向和訪問無效內存等問題導致了我們所知的一些最嚴重的攻擊 迄今為止的計算機科學史。

那么這與Rust有什么關系呢?

事實上,Rust從字面上抹去了我大部分的博士學位。 一種新的編程范例。 而且我一點也不生氣。

在攻讀博士學位期間,我最雄心勃勃的目標(不僅是我的目標) 是要構建一個編譯器來自動修復內存的雙重釋放問題,緩沖區溢出和無效指針(有時甚至沒有通知開發人員最終要一遍又一遍地重復該討厭的錯誤-這是什么意思?)。

Rust做到了這一點:它通過引入一種新的方法將許多職責從開發人員轉移到了編譯器(對于Python程序員,編譯器就是您每次都寫得很好……Python便會放棄靈活性和性能。 編程范例。

在這樣的范例中,不可能有這些錯誤。 編譯器只會拒絕繼續并生成有問題的程序。 更加花哨的Rust編譯器的唯一副作用是,它肯定會使開發人員感到沮喪。 但是我沒有解決方案。 是時候再拿博士學位了?

Rust通過在編程語言設計中利用五個基本概念來提供如此出色的功能。 盡管有些緊密相關,但讓我簡要介紹一下它們。

借閱檢查器

Rust的借閱檢查器可確保引用(和指針!)不會超出它們指向的數據的壽命。 所有內存不安全的錯誤? 走了 "是的,但是伙計……我正在失去靈活性",您說嗎? 不用擔心,您仍然可以使用不安全的Rust。 如果您覺得自己應該承擔責任(并且您最好知道正在做的WTF),那就繼續吧,使代碼不安全并釋放一些超級功能。 好消息是,當您遇到錯誤時(伙計),您將確切知道在哪里查看。 還記得您寫過的并且感到如此自豪的不安全代碼嗎? 也許您想看看那里。

所有權

如果您不想整理房間,那么其他人(媽媽?)將不得不這樣做。 這將是有代價的(不要讓我去那里)。 為什么所有基于垃圾收集器的語言都比沒有垃圾收集器的語言慢,這是有原因的。 你猜怎么了? 所有權是一種編程范例,允許Rust以零成本跟蹤內存(并在不再使用時釋放內存)。 怎么樣? 通過改變程序員習慣于思考的方式(相信我,Rust迫使您思考的方式是正確的方式)。 瑣碎的

  1. let y = SomeType { field: String::from("hello") };  
  2. let x = y;  
  3. println!("{:?}", y); // This will fail. We no longer own y 

將y的所有權移到x。 這意味著在該語句之后不能使用y。 這個簡單的概念使編譯器可以為您管理內存并使房間保持無可挑剔的狀態。

并發

這是一個很大的。 特別是由于在多核上分布計算的總體趨勢。 Rust不僅使并發變得容易(還相對容易,有時語法是b!tch)。 所有權和鎖定機制的結合使Rust中的并發性變得無所畏懼。 通道強制執行線程隔離,并且數據受鎖保護,并且僅當持有鎖時才能訪問數據。 這樣可以防止意外共享狀態。 數據爭用是不可能的(編譯器只會拒絕生成可能導致數據爭用的代碼)。

可移植性

Rust編譯器基于LLVM構建,而LLVM可以為大量目標平臺生成機器代碼。 盡管此級別的可移植性還不如C / C ++大,但請記住Rust僅10歲(剛開始編程時比我大一點,多么可愛?)

速度與安全

如果要編譯器生成安全代碼,請準備放棄性能。 低級安全社區意識到有多少代碼檢測技術可以使您的軟件變慢(以至于許多人更愿意將不安全的代碼換成高性能代碼)。 使用Rust,您可以同時擁有兩者。 Rust是一種編譯語言。 與C / C ++和其他編譯語言所產生的機器代碼一樣,所產生的機器代碼也可以進行優化(并且隨著編譯器變得更加智能,其優化程度也會更高)。

至于速度,可以在此處找到不錯的Rust與C的比較,并在此處進行更詳細的說明。 只需考慮在慣用的Rust和慣用的C之間進行比較。不用說,糟糕的代碼性能不可能好,與選擇的語言無關。

當然,這篇文章并不能給Rust帶來公義,因為Rust提供了更多令人驚奇的東西。 盡管這是一種絕對要用于系統編程的語言,但是社區正以驚人的速度增長,并在純Rust中封裝了包和庫的crates.io出現了。 我要說的是有很多重復,很多圖書館似乎都被放棄了。 我相信這是由于許多開發人員和工程師最初的熱情所致,他們一直在對Rust進行測試。

盡管發表了一些出版物,尤其是有關緩解緩沖區溢出的低級對策的出版物,但我堅信Rust是未來的語言。 我還為使用Rust進行數據處理的項目做出了貢獻(人們在復制和粘貼Tensorflow模型之前必須做的事情,我期待著盡快發布它。

參考:https://medium.com/@frag/5-reasons-why-rust-is-the-future-3e23adf0803b

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2021-02-05 17:47:53

GraphQLAPI開發

2018-06-07 15:18:07

開源求職

2010-06-11 13:02:50

MySQL數據庫

2012-07-18 09:21:22

iPhone 5

2022-10-26 13:28:55

綠色建筑

2020-06-16 08:51:28

數據中心人工智能技術

2017-12-02 23:23:21

云計算企業云存儲

2012-07-04 13:08:58

軟件開發軟件編程

2019-07-08 13:25:16

5G智能手機用戶

2015-09-16 17:17:58

2023-05-29 16:25:59

Rust函數

2013-07-22 16:42:16

企業協作

2010-06-10 10:50:17

MySQL數據庫

2020-12-07 08:15:11

機器學習人工智能AI

2019-03-01 08:22:26

數據泄露網絡保險網絡安全

2021-01-13 13:29:06

文本編輯器Atom開源

2019-09-24 15:07:51

大數據存儲技術

2021-01-13 19:13:57

Atom文本編輯器

2011-12-22 11:12:49

Ubuntu操作系統

2021-05-21 10:28:37

Pulp容器注冊托管
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美大片在线观看 | 日日夜夜精品免费视频 | 欧美一级免费看 | 中文字幕一级 | 亚洲精品成人在线 | 亚洲专区在线 | 亚洲人在线 | 亚洲成人av | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 午夜视频网| 久久久国产一区二区 | 亚洲视频一区在线观看 | 亚洲精品丝袜日韩 | 日韩av在线免费 | 精品久久久久久久久亚洲 | 天天干天天谢 | 午夜小影院 | 亚洲精品第一页 | 国产亚洲精品精品国产亚洲综合 | 国产在线精品一区二区三区 | 日操操 | 亚洲精品国产一区 | 国产精品久久久久久久久久久久 | 91精品国产欧美一区二区成人 | 日本在线精品视频 | 国产精品一区二区三区四区 | 久久精品国产清自在天天线 | 九九99靖品 | 久久精品日产第一区二区三区 | 成人毛片网 | 国产成人综合亚洲欧美94在线 | 久久天天躁狠狠躁夜夜躁2014 | 亚洲精品久久久久久宅男 | 国产精品黄色 | 新疆少妇videos高潮 | 理论片87福利理论电影 | 日韩精品一区二区三区四区视频 | 免费毛片www com cn | 亚洲二区视频 | 日韩二三区 | av日韩一区 |