日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

多年來,我一直在參與 Rust 和 Rust 社區。我的大部分工作都與創建用于在 Rust 中構建 GUI 工具包的基礎設施有關。然而,我發現我對這種語言越來越失望,我現在太渴望 C++ 的穩定與成熟了!

1、構建系統:Rust 生態小家子氣

Rust 生態系統的局限性之一是 Cargo 構建系統和包管理器的近乎單一文化。雖然在某種程度上使用了其他構建系統(包括集成到更大的多語言項目時的Bazel),但它們并沒有得到工具的很好支持。

相比之下,在 C++ 中,構建系統有很多選擇,允許每個開發人員選擇最適合他們需要的一個。一個非常常見的選擇是 CMake(CMake是一個開源、跨平臺的工具系列,旨在構建、測試和打包軟件,通常用于使用簡單的平臺和編譯器獨立的配置文件控制軟件編譯過程),但也有 Meson、Blaze 及其變體,當然也總是可以求助于 Autotools 并進行制作。如果我們要編譯 AIX 和 DEC OSF/1 AXP 等 Unix 系統,后者尤其有用。如果這些都不夠,還有很多其他選擇,包括 SCons,毫無疑問,我們會定期創建新的選擇。

我們還沒有為 Linebender 項目確定構建系統,但很可能是 CMake,并計劃評估其他系統和遷移,也許是 Meson。

Linebender:包含許多諸如druid、xilem等許多流行的Rust存儲庫。

2、安全:三個原因放棄Rust

這一變化最具爭議的方面可能是放棄了 Rust 語言的安全保證。但是,出于三個原因,我認為這在實踐中不會成為大問題。

首先,我認為自己是一個足夠優秀的程序員,我可以避免編寫有安全問題的代碼。當然,我曾負責過一些 CVE(包括Android 中的字體解析代碼),但我從那次經歷中吸取了教訓,并且有信心在未來避免此類錯誤。

其次,我認為內存安全問題的危險被夸大了。Linebender 項目主要關注 2D 圖形,部分是游戲,部分是用于創建 GUI 應用程序的組件。如果 GUI 程序崩潰,也沒什么大不了的。如果錯誤是由于我們用作依賴項的庫引起的,我們的客戶會明白這不是我們的錯。內存安全錯誤與邏輯錯誤和其他錯誤沒有根本區別,我們只會在它們出現時修復它們。

第三,C++ 語言正在向更安全的方向發展。我們可以使用現代 C++ 技術來避免原始指針的許多危險(盡管字符串視圖可以比它們的支持字符串更長壽,并且 UI 中使用的閉包可以有非常有趣的生命周期模式)。C++ 核心指南很有用,即使它們在違規中受到尊重。而且,正如下一節所討論的,語言本身有望得到改進。

3、語言演化:Rust沒有根本性的新功能

C++ 的一個顯著特征是新功能的快速采用,現在每 3 年有一個新版本。C++20 為我們帶來了模塊,這是一項創新的新功能,我期待著很快就能真正實現這一功能。展望未來,C++26 可能會擁有堆棧協程、嵌入二進制文件內容以初始化數組的能力、安全的基于范圍的 for 循環,以及許多其他好東西。

相比之下,Rust 的創新步伐變得更加穩健。它曾經非常快速,并且異步一直是一項重大努力,但最近登陸的特性(例如通用關聯類型)更像是使現有特性的組合按預期工作,而不是帶來任何根本性的新功能;即將推出的“type alias impl trait”與之類似。在這里,很明顯,Rust 因承諾不破壞現有代碼(由版本機制制定)而受阻,而 C++ 可以自由地在每個新版本中實現向后兼容性破壞性更改。

C++ 有更令人興奮的變化值得期待,包括 Herb Sutter cppfront 提出的潛在新語法,甚至是新的 C++ 兼容 Carbon 語言。

幸運的是,我們在 C++ 社區中擁有出色的領導能力。C++ 之父 Stroustrup 關于安全的論文《A call to action: Think seriously about “safety”; then do something sensible about it 》是一份非常值得一讀的文檔,顯示出對 C++ 面臨的問題的深刻理解,并提出了一個引人注目的未來路線圖。

C++之父去年12月6日發表有關安全的文章

4、社區:Rust 社區有點專橫

我將以關于社區的一些想法作為結束。我盡量不花太多時間在社交媒體上,但我聽說 Rust 社區可能非常專橫,不斷要求用 Rust 重寫項目,并詆毀所有其他編程語言。我會很高興擺脫它,并且相信 C++ 社區會更好、更友好。特別是,C++ subreddit 以其幽默感而聞名。

Rust 社區還以其行為準則和其他促進多樣性的政策而聞名。我堅信編程語言應該不受政治影響,嚴格關注技術本身。在計算機科學領域,我們已經超越了偏見和歧視。我理解某些身份群體可能希望獲得更多代表權,但我認為沒有必要。

5、結論

Rust 是一個很好的實驗,有些方面我會深情地回顧,但現在是時候將 Linebender 項目變成一種成熟的、生產就緒的語言了。我期待與 C++ 社區中的其他人進行富有成效的協作。我們正在尋找幫助 C++ 重寫的人。

原文鏈接:https://raphlinus.Github.io/rust/2023/04/01/rust-to-cpp.html

分享到:
標簽:Rust
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定