我想先說這是我的兩種主要語言。我對兩者都抱有充分的尊重,並計劃無論如何都專注於兩者。我知道這是一個具有挑戰性的問題,而且我是兩種語言的初學者。

我不是說那些你應該使用JavaScriptC#或其他東西的東西 - 儘管Rust實際上在這些方面也還不錯,並且一直在改進。我甚至沒有談論C ,儘管我認為最終我們也可能能夠進行這樣的對話。我特別斷言 Rust 可以與C++正面競爭。

也就是說,隨著我對 C++ 的了解越來越多,我也越來越了解我對 C++ 和一般程式設計的了解還有多少。從我的角度來看,受 Hindley-Milner啟發的類型系統與 Rust 所針對的資料操作類型的記憶體粒度控製完美匹配。我非常願意讓別人知道我為什麼錯了。

我最近發布了關於我實現的 Rust 樹的文章,其中包含了 Rust 限制性的解決方法,但我提到的第一個替代方案是unsafe 。當然,總是需要直接操作記憶體。許多標準庫工具本質上都是用unsafe Rust 實現的,編寫的安全 API 已經過才華橫溢的 Rust 團隊和整個 OSS 社群的審查。有許多lib*-sys包本質上是相同的東西。任何使用 C 的 FFI 都會包含unsafe原始指標。

這就是任何工具,無論是開源軟體還是專有工具,都被認為是“安全的”,對吧?聰明人都看出來了嗎?

我對模板的討論充滿敬意,但對我來說,它們是一個更笨重的Rust 特徵。您可以使用 Rust 特徵 + 巨集不能做的範本做什麼?說到這裡, OCaml中的FunctorJane Street為此工具提供了堅實的案例,甚至超越了 Haskell 或 C++。 OCaml 本身就是一種令人驚嘆的UNIX/Linux 程式語言。 C++ 已被鞏固,但新程式碼一直在編寫。我是否沒有理解 C++ 的強大之處?

拋開所有迷因,為什麼不用 Rust 編寫所有全新的適用領域軟體,並在需要的地方編寫 Rust 介面呢?

我知道C++預設施加的限制較少,允許人們超越人們更了解的機器。我不知道為什麼這會阻礙一種新的基礎語言的出現,這種語言是對我們現有語言的改進,以及為什麼 Rust 不是。

照片由 Edvin Johansson 在 Unsplash 上拍攝


原文出處:https://dev.to/deciduously/what-does-c-do-that-rust-doesn-t-4h2g


共有 0 則留言