Microsoft:我們不會為了 Rust 而「放棄」C#

 21CTO

儘管最近有關於微軟減少其自家C#語言的使用,以支持Rust語言的消息不斷傳出,但這家公司表示它仍然致力於支持C#。

這項消息來自MSPoweruser的Rafly Gilang看到微軟的招募訊息,它在尋找熟悉Rust的架構師幫助在Rust中重寫使用C#(.net序列中的程式語言)建構的核心元件。

 

 

 

 

 

 

 

 

網址:https://jobs.careers.microsoft.com/global/en/job/1633482/Principal-Software-Architect

其職位描述是指導現有大規模 C# 雲端服務向 Rust 程式碼的技術過渡。 此舉被視為是Microsoft採用Rust實現全球平台服務現代化和優化的更廣泛努力的一部分。 Rust 語言提供記憶體安全性和效能。

C# 不會無處可去

Microsoft承認它對 Rust 的各種用例感興趣,但 C# 不會被取代。 相反,Rust 只是該公司武器庫中的語言。

微軟的發言人這樣說:

「在 Microsoft,我們使用各種程式語言來開發並向客戶交付產品和服務。C#仍然是Microsoft高度重視的語言,我們致力於其持續成長和發展」。

C#是一種通用的高階程式語言,由Anders Hejlsberg設計。 Anders Hejlsberg是Microsoft「自吹自擂「的技術研究員、軟體工具製造者和程式語言創作者。 Microsoft 於 2000 年發布了 C#。

而 Rust 是一種多範式、通用的程式語言,強調效能、類型安全性和並發性。 Rust 於 2015 年問世,被視為一種更現代的程式語言。 Rust 基金會是此程式語言的管理者。

Rust基金會的一位代表說:

「因為Microsoft是Rust基金會白金會員的創始成員,我們的團隊自成立以來一直致力於Rust程式語言的發展和未來的成功。儘管如此,我們並不認為Microsoft對Rust 的承諾表明C# 被’放棄’ ,正如最近的報導和評論所暗示的那樣。

Microsoft尋求填補的職位角色是該公司的Substrate App Platform小組,該開發小組是Microsoft 365核心平台開發團隊的一部分。

」生鏽的愛「

如今,Rust 程式設計師的需求開始變得很大,因為越來越多的組織因其安全性和效能而轉向該語言。

Omdia分析師Brad Shimmin說:

「這就像人們在說『嘿,我們為什麼要用Rust 重寫Linux 核心的一部分?』這些都是挺大的問題,因為與Python之類的東西相比,Rust對開發者並不友好,但 作為一種通用語言,與C語言相比,它有一些重要的優勢。

Rust 在最新的流行程式語言 TIOBE 排行榜中排名第 18位,而 C# 排名第5。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

同時,2023 年 Stack Overflow 調查將 Rust 列為最受推崇的語言,因為去年使用它的開發人員中有超過 80% 希望今年再次使用它。 2022 年 Stack Overflow 調查報告顯示了 Rust 的類似結果。

Brad Shimmin也說:

「你可以編寫與C# 一樣快的裸機程式碼,而不必擔心伴隨該語言的記憶體’陷阱’,我認為對於更廣泛的應用程式中的特定項目和模組,Rust 絕對是一個不錯的選擇,尤其是在 效能和健壯性被提上日程的情況下。 發行版一樣。

事實上,就性能和健壯性而言,Rust 是一個不錯的選擇。

「我想這是一種更好、更有效的編碼和管理資源的方式——Rust 的價值在於它是被編譯的,它管理內存,而不是C++,你管理內存(安全問題),但它很 快,C# 管理記憶體(垃圾收集器),但它是字節碼動態編譯,沒有那麼快或節省空間,“

Rust 管理記憶體(新格式,而不是垃圾回收器),並且對其進行編譯,使其更快、更有效率。 這主要對在 Office 365 等雲端平台上運行的東西有價值。

關於預算

針對Microsoft 經常修改Azure中執行的服務代碼。 微軟MVP和區域總監,Campbell&Associates的創辦人Richard Campbell這樣表示:

「我懷疑他們熱衷於優化該程式碼,因為這會花掉他們部門的預算」。

Campbell 指出,這些程式碼最初是用 C# 編寫的,因為可以快速開發並進入市場——只有當它變得熱門時,才會考慮 Rust 可以帶來的那種極端的效能最佳化。 只有當服務需求量很大時,微軟才會考慮這種優化——如果很少人使用它,那就不值得了。

「當你追求峰值最佳化時,你會傾向於使用低階語言——那種『接近金屬』的語言,這樣你就可以盡可能地節省每一個處理週期。C# 是一種很棒的語言,但它 存在於託管運行時中,該運行時針對可靠性和易用性進行了優化。 – 通常是C++。

而相關的權衡是,C++程式碼更難編寫和調試,並且需要非常熟練的人來編寫高度優化的程式碼。

Campbell 說:「Rust 代表了新一代的低階程式語言,它使得在該層級創建高品質的程式碼變得更加容易。

一個錯誤?

然而,對於一家軟體公司來說,僅僅用 Rust 重寫其程式碼庫可能是一個錯誤。

Brad Shimmin這樣說:

「首先,有能力的 Rust 開發人員比那些精通 C#、React 等工程師更難找到,其次,如果出現大規模的變化,Rust 中的一些記憶體安全限制可能會隨著時間推移而變得難以維護。

但是,他說可以很容易想像Microsoft為什麼要這樣做。

「這與 Linus Torvalds 允許 Rust 進入 Linux 核心的理由相同:效能和穩定性,」這就是 Linus 從驅動程式開始的原因。 它們就在祼機金屬上工作,而且是高度模組化的。 用Rust很合適。 就像用 Python 編寫Web應用程式一樣,它也非常適合資料科學專案。

Google 也提高了 Rust 賭注

同時,Microsoft並不是唯一一家密切關注 Rust 的大公司。 如果你關注21CTO,本月早些時候,Google承諾向Rust基金會提供100萬美元,以提高C++和Rust程式語言之間的互通性。 (相關連結:Google向 Rust 基金會捐贈 100 萬美元,改善 Rust 與 C++ 的互通性)

雖然這個專案被稱為“Interop Initiative”,但其目標本質上更加聚焦,讓“組織慢慢地將當前的C++遷移到Rust”。

同樣的情況,關注記憶體安全是一個核心問題。

Lars Bergstrom 在Ggoogle 是 Android 平台工具和函式庫的總監,也是 Rust 基金會董事會主席。 他在一篇部落格文章中這樣寫道:

“雖然 Rust 可能不適合所有產品應用程序,但優先考慮與 C++ 的無縫互通性將加速更廣泛的開發者社區採用,從而與提高內存安全性的行業目標保持一致,”

作為具有網路安全背景和基礎設施安全局 (CISA)的 局長 Jen Easterly 最近倡導在 Android 中使用 Rust 和 Google 核心的實現,作為組織和平台緩解記憶體安全漏洞的關鍵方式。 據CISA稱,大約三分之二的已知軟體漏洞是一類被稱為「記憶體安全」漏洞的弱點,這些漏洞是引入了與電腦記憶體存取方式相關某種類型的漏洞。

此外,Google一直是 Rust 實施的先驅。 谷歌表示,迄今為止,在 Android 的 Rust 程式碼中發現的記憶體安全漏洞為零。 雖然Google在Android中使用Rust的成長最為明顯,但該公司仍在繼續擴大其在更多應用程式中的使用,包括客戶端和伺服器硬體。

Microsoft 的「生鏽」歷史

事實上,Microsoft對 Rust 的興趣已經不是一兩天了。

早在 2020 年,微軟就表示逐步轉向 Rust 來建立其基礎設施軟體,遠離 C/C++。

2022 年,Azure 技術長Mark Russinovich 就在Twitter(現在稱為X)上發文說:「說到語言,是時候停止在C/C++ 中啟動任何新專案了,並將Rust 用於需要非GC 語言 的場景。

雖然然 Rust 的學習曲線很陡峭,Azure團隊更喜歡 Rust 而不是 Go,因為 Rust 能夠發現 Go 無法發現的錯誤。

去年,Russinovich 在平台上發文說:“如果你在 Windowns 11 Insider 體驗頻道上,你就會在 Windows 核心中第一次嚐到 Rust 的滋味!”

 

This entry was posted in News.

发表评论

邮箱地址不会被公开。 必填项已用*标注


*

在线客服系统