本文來自知乎翻譯:https://zhuanlan.zhihu.com/p/159457622?utm_source=wechat_session&utm_medium=social&utm_oi=626510042657198080&utm_campaign=shareopn
作者:袁承興 職業(yè)程序員,圖像算法工程師,團隊教練。
原文:Why Rust is the future of robotics
作者:Pierre Rouanet
--------------------------
Rust是一門比較新的編程語言,在2006年由Graydon Hoare啟動,2010年由Mozilla正式發(fā)布。速度極快的火狐量子瀏覽器就是用Rust開發(fā)的。過去幾年里,Rust憑借著許多超棒的特性,產(chǎn)生了很大的吸引力,尤其對機器人技術。
Rust吸收了像C和C++這些低級語言的特性運行速度極快且占用內(nèi)存少,同時具有很多高級語言的特性保障。它可以避免段錯誤、保證線程安全。需要特別指出的是Rust在保障所有這些安全特性和抽象特性的同時并不產(chǎn)生額外的開銷。它的座右銘:
Rust:快,可靠,高產(chǎn) 一石三鳥
基于上述,我們相信Rust是機器人技術的未來,它使開發(fā)者無所畏懼,去創(chuàng)建和執(zhí)行標準,去建立并依靠一個強大的社區(qū)。我們接下來會更詳細的解釋,在此之前先回顧下當今機器人技術中的嵌入式軟件困局。
嵌入式編程的困局
在嵌入式軟件中存在兩大難題:
很難寫出安全的代碼。C和C++的內(nèi)存使用不安全,易發(fā)人為錯誤。很多的bug源于緩沖區(qū)溢出,數(shù)據(jù)損壞,讀寫未分配的內(nèi)存。檢測和調(diào)試變得非常困難,很多攻擊和病毒便趁虛而入。你的項目越復雜,就會越難維護。換句話說,嵌入式程序員最擔心:添新功能,毀所有。
在嵌入式軟件中幾乎無法實現(xiàn)并發(fā),所以很難完成從玩具示例到量產(chǎn)的跨越。競爭條件,死鎖,數(shù)據(jù)損壞導致的bug調(diào)試起來本來就很復雜。對于嵌入式系統(tǒng)來說,開發(fā)環(huán)境相比基于OS的世界就更沒優(yōu)勢了。調(diào)試硬件中斷甚至會讓信心滿滿的嵌入式開發(fā)者感到恐懼。