Rust可以做C/C++所有低階工作嗎? - Reddit

banq發表於2022-03-10

有什麼應用或功能是Rust不能做的,而C/C++卻可以?

是否有什麼東西是你不能用Rust程式語言實現的,比如說你能不能和cpu核心的顯示卡音效卡聯絡

 

與C++相比,Rust有一些東西不支援,個人遇到的兩個是:

也許/可能還有更多,特別是如果你算上那些不穩定的東西。我認為這些特性是很重要的,但是沒有這些特性,你當然可以用Rust構建幾乎所有C++的東西,儘管可能有一些變通。

另一方面,Rust給了你C++不能給你的東西。借款檢查器、不安全的程式碼隔離、對每一個可變引用的限制、更易於使用的構建和依賴性管理,這只是其中幾個重要的例子。

對於那些說Rust可以做所有C++/計算機可以做的事情的人,因為有內聯asm。在我看來,這是個很糟糕的藉口。

當然,有人可以發明一種新的語言並只實現內聯asm。

但是這個人是否會創造出一種與C++功能相當的語言?在我看來,不會。

 

其他還有:

  • 為非常奇特的目標進行編譯。除了缺少編譯器支援,Rust也很難支援uintptr_t和size_t不同的目標,或者不使用8位位元組定址記憶體和奇怪的互斥寬度的目標。另外Rust目標上的浮點支援必須使用IEEE 754 binary32和binary64浮點型別。C和C++支援所有這些。
  • 與一些C語言API的介面。Rust不支援位域型別,針對C的位域是相當棘手的,但並非不可能。
  • 花哨的編譯選項。尤其是C有一系列Rust不支援的編譯選項,比如fast-math。
  • Rust 目前也不支援 16 位浮點,這已成為神經網路的重要效能優化。

相關文章