1. 繼放棄 C/C++ 后,微軟再組新團隊,欲將 C# 代碼改寫為 Rust!

        共 3677字,需瀏覽 8分鐘

         ·

        2024-04-10 18:55

        整理 | 蘇宓 出品 | CSDN(ID:CSDNnews)

        不止外部正在想方設法地基于 Rust 開發(fā)微軟產品的替代品,就連其內部,也在有意擴大 Rust 編程語言的采用率,以此替業(yè)務線上核心的 C# 代碼。

        dced78b1b6b73868f8fe3bb02f693555.webp

        6a4fe19cbeb8b167e64d487c19ab9103.webp

        微軟云服務向 Rust 代碼看齊

        這一次最新加入 Rust 浪潮的是來自 Microsoft 365 團隊。 根據其最新發(fā)布的招聘啟事顯示,微軟欲聘請全職的 Microsoft 365 首席軟件架構師,以此組建一個全新的團隊,專注于采用 Rust 編程語言作為現代化全球規(guī)模平臺服務以及更多領域的基礎。

        092b6f58cc06357be294d81a51e2e8b3.webp

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

        在其介紹中,該職位隸屬于 Substrate App Platform 組,這是 Microsoft 365 核心平臺組織的重要部分,構成了微軟云服務的支柱。

        “成功的候選人將是具有深厚 Rust 編程語言技能的人,或者愿意在短期內成為 Rust 專家,同時作為倡議領導團隊的成員,做出貢獻。職責包括指導 Rust 組件庫、SDK 的技術方向、設計和實現,以及將現有基于 C# 的全球規(guī)模服務重新實現為 Rust”,微軟寫道。

        342cad45e2cf90faa0b51c1fe21e72d8.webp

        微軟全系列采用 Rust

        要知道,這并不是微軟第一次擁抱 Rust 這門語言。早些時候, 微軟 Azure 首席技術官 Mark Russinovich 在推特上發(fā)文,呼吁業(yè)界淘汰 C / C++,應改用更加安全的 Rust 語言:

        說到語言,現在是時候停止用 C/C++ 啟動任何新項目了,在需要使用非 GC 語言的情況下使用 Rust。為了安全性和可靠性,業(yè)界應該宣布這些語言已被淘汰。

        18fe59fb43b0b9783b29020cbc431826.webp

        在去年微軟舉辦的 BlueHat 安全大會上,微軟宣布計劃用 Rust 重寫部分 Windows 內核,理由是它的現代性、易用性和整體清晰度。

        隨即微軟加快了推進「Rust 重寫一切」的步伐,后來也陸續(xù)有媒體爆料:微軟已經用 3.6 萬行 Rust 代碼改寫了 Windows 內核,放棄了 C/C++;同時其還在 Microsoft Career 網站上發(fā)布了多個招聘啟事,急需 Rust 精兵強將加入新的團隊。

        除此之外,2023 年 9 月,微軟在發(fā)布新的 Azure 量子開發(fā)套件(QDK)預覽版時,也透露了這一版本主要是用 Rust 編寫的,可以輕松地將本機二進制文件定位為 Rust 編譯器支持的任何平臺,并構建 WebAssembly(通過 wasm-bindgen)以在瀏覽器中運行,最終該套件速度提高了 100 倍,代碼大小減少了 100 倍。

        同時,微軟還是 Rust 基金會的白金會員,進一步鞏固了對該語言的承諾。

        針對這一趨勢,有外媒點評道,盡管微軟最近裁了不少人,但近期其在持續(xù)的招聘上加大了對 Rust 技術的透露,也向科技行業(yè)的工程師和專業(yè)人士傳遞了一個明確的信息:即在競爭日益激烈的就業(yè)市場中,適應并獲得新技能,如 Rust,變得至關重要。它還預示著行業(yè)中的一個重要趨勢,即越來越多的公司趨向于更安全、更高效的編程語言,如 Rust,用于其關鍵服務。

        9dfb45396e148630249ab699f02a7e61.webp

        Rust 為什么能成為香餑餑?

        當然不止微軟,Linux 之父 Linus Torvalds 也曾堅定地分享過:“Rust 還沒有真正成為下一個偉大的事物。但我認為,在明年,我們將開始集成驅動程序,甚至一些主要的子系統(tǒng)也將開始積極使用 Rust。因此,要讓它成為內核的重要組成部分,還需要數年時間。但它肯定會成為內核的一部分。

        同時,亞馬遜的云服務、Google 的 Android、Meta /Facebook 的高性能構建系統(tǒng)....無不沒有 Rust 的身影。除去大廠之外,幾個月前 Facebook 法國前端工程師、React Native 和 Prettier 的聯合創(chuàng)始人 Vjeux 在 Twitter 發(fā)帖,尋求有能力的開發(fā)者來使用 Rust 重寫前端代碼格式化工具 Prettier,并懸賞 1 萬美元。

        0c93a1f1c6dfed10fa1bdb2cd1ddee9a.webp

        從編程語言的關鍵特性上來看,Rust 受到這些公司青睞的原因主要有幾個方面:

        • 內存安全性: Rust 被設計為一種系統(tǒng)級別的編程語言,具有強大的內存安全性。它通過所有權系統(tǒng)、借用檢查器和生命周期系統(tǒng)等特性,防止了常見的內存錯誤,如空指針引用、數據競爭等。這使得 Rust 在開發(fā)中更容易編寫出安全且可維護的代碼,尤其在需要高性能和低級別控制的場景下。

        • 并發(fā)性能 :Rust 的所有權和借用系統(tǒng)使其在并發(fā)編程方面表現優(yōu)異。它允許開發(fā)者在不引入數據競爭的情況下編寫高效的并發(fā)代碼,通過借用檢查器(Borrow Checker)在編譯時檢查并發(fā)問題,而不是在運行時發(fā)生。

        • 系統(tǒng)編程 :Rust 在系統(tǒng)編程領域表現出色,因為它提供了對硬件的低級別控制,并且允許直接訪問內存,而且不需要運行時系統(tǒng)。這使得 Rust 成為編寫操作系統(tǒng)、嵌入式系統(tǒng)和其他需要高度控制的應用的理想選擇。

        • 跨平臺性: Rust 具有很好的跨平臺支持,可以輕松地在不同的操作系統(tǒng)上進行開發(fā)和部署。這使得 Rust 成為構建可移植和高性能應用程序的有力工具。

        • 與 WebAssembly(Wasm)的整合 :Rust 對 WebAssembly 有天然的支持,使得它成為構建客戶端和服務端的 WebAssembly 應用的良好選擇。這使得 Rust 在一些云計算和 Web 開發(fā)領域受到歡迎。

        8a57f2333cb7a353741ab9860edd4d1d.webp

        用 Rust 重寫代碼需要付出什么樣的代價?

        就微軟而言,也有不少網友不解,難道僅僅是因為性能問題,微軟難道就要大費周章地棄用 C# 代碼?但是 C# 也不像 Python/Ruby 那樣慢。

        對此,微軟官方并未做出任何進一步的技術分享,不過有位開發(fā)者的分析獲得了高贊,其表示:

        有趣的事,微軟首先決定用 Rust 重寫,然后再去聘請一位首席架構師。由于他們的目標是采用 Rust,我有一種感覺,這是對 Rust 進行非核心業(yè)務評估的舉措。正如其他人所指出的,為什么要用 Rust 替換 C# 呢?他們可能認為在預算內并值得為了評估而重寫成 Rust 代碼。我懷疑微軟沒有在不太關鍵的服務上進行技術評估之前,他們不會在所有業(yè)務中大規(guī)模轉向 Rust。而且這個項目不在美國,對我來說更加確認了這不是業(yè)務關鍵的項目。

        總體而言,對于 Rust 社區(qū)而言,這是個好消息,因為盡管微軟目前沒有用 Rust 替換他們的核心技術,但他們已經愿意在重要的底層服務上嘗試使用 Rust。

        還有用戶評論道:

        性能、無 GC、安全性,是微軟采用 Rust 的關鍵原因。一旦你擁有一個完成任務出色且相對成熟的微服務,優(yōu)化運行時特性而非實現速度是有道理的。此外,現在有更多的人在使用 Rust 構建項目,因此你有更多有經驗的開發(fā)人員和一個更加成熟的軟件包社區(qū)可以利用。

        最后,也并不是所有公司都適合用 Rust 來重寫業(yè)務代碼,業(yè)務代碼遷移也并非一朝一夕可以完成的事情,其中需要綜合技術、成本和人力資源等多方面的因素來考慮。

        你是否在項目嘗試過 Rust 語言?體驗如何?歡迎留言分享你的看法。

        參考:

        https://www.theregister.com/2024/01/31/microsoft_seeks_rust_developers/

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




        往期推薦


        我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯網公司工作,10多年技術研發(fā)與架構經驗!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網!著有《 Go語言編程之旅 》、開源圖書《 Go語言標準庫 》等。


        堅持輸出技術(包括 Go、Rust 等技術)、職場心得和創(chuàng)業(yè)感悟!歡迎關注「polarisxu」一起成長!也歡迎加我微信好友交流: gopherstudio

        瀏覽 37
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 亚洲免费视频在线观看 | 性欧美激情aa在线看 | 亚洲中文字幕无码五月天 | 久久久少妇高潮久久久久 | 无码中文字幕一区二区免费蜜桃 |