成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微軟首席工程師:Rust 將面臨十大挑戰

開發
微軟首席工程師 Nick Cameron 發布了一篇博客,指出了他認為現在和未來幾年 Rust 將面臨的十大挑戰,并提出了一些初步的解決方案想法。
微軟首席工程師 Nick Cameron 發布了一篇博客,指出了他認為現在和未來幾年 Rust 將面臨的十大挑戰,并提出了一些初步的解決方案想法。目前,Nick Cameron 主要負責該公司 Rust 相關的工作;曾經,他還是 Rust 核心團隊的成員。

Nick 指出,現如今 Rust 正處于一個良好的發展局面;受歡迎程度越來越高、貢獻者越來越多,還在一些重要領域進行了應用。但在這個充滿變化的時代,從一個研究項目到一個新的、快速變化的語言再過渡到一個流行的、成熟的項目,是一個困難的演變過程。

“在這里,我想描述一下我認為現在和未來幾年 Rust 面臨的十大挑戰。我有一些解決方案的想法,但它們都是大而難的問題,沒有簡單的答案,所以真正的解決方案都需要迭代、精力和創造力。我的重點是核心項目;社區和生態系統面臨許多挑戰(例如,如何使用 Rust 制作 GUI,或者如何讓更多的 crates 進入 1.0),我認為這些挑戰必須主要由社區來解決。”

具體內容如下:

治理挑戰

1、如何引導開發并保持 Rust 的開放性?

開源工作中,在什么是對項目最有利的,以及什么是志愿貢獻者想做的之間總存在著一些矛盾。現在,隨著 Rust 社區逐漸發展壯大且 Mozilla 結束直接支持,Rust 中的這種緊張關系似乎也在日益加重。盡管有很多人從事基本的維護工作,但往往人手不足;一些重要領域也缺乏資源、缺乏引導貢獻的戰略工作或努力。

Nick 認為,在某些方面,采用自上而下的方法可能會更容易;但此舉也或將導致 Rust 失去作為開源項目所擁有的一些優勢。最大的挑戰是確保在完成重要但不吸引人的工作的同時,同時又不失去項目中使其令人敬畏的部分特性。Nick 表示,他們目前正在努力解決一些具體問題,包括:

  • 優先完成眼前的工作而不是開始新工作,
  • 優先考慮工具、庫和非技術工作以及語言和編譯器,
  • 優先考慮影響較小、成本較低的工作,這些工作總體上可能會產生很大的影響(超過大型、迷人的工作)。

“與這一挑戰相關的是在面對增長時保持 Rust 的基本特征。特別是,項目如何發展并接受新的貢獻者和領導者(以及隨之而來的不可避免的變化)而不忽視 Rust 的核心使命?隨著觀察者(和評論者)數量的增加,我們如何在討論和決策中繼續保持公開和透明?”

2、多樣性和包容性

Rust 的多樣性狀況很糟糕。盡管在成為一個包容性項目方面 Rust 做的可能還不錯,但還是有諸多貢獻者因為某些消極原因而不得不離開了該項目;避免倦怠也是包容性的一部分。

“包容性的一個重要方面是能夠容納各種意見。如果我們只有在每個人都同意的情況下才能相處,那么我們就不可能多元化或包容。雖然我們對共識的偏好在某些領域對我們很有幫助,但它也帶來了問題。我們避免沖突而不是解決沖突的文化是不健康的,并導致治理功能失調。這些真的很難解決!但我們必須優先解決它們,即使它們很困難,有時也很痛苦。”

3、避免低效流程的僵化

Nick 稱,過去的幾年里在 Rust 飛速發展的同時,其流程和組織卻并沒有跟上步伐。在任何與治理或流程有關的事情上,都存在著巨大的變革慣性。即使現有的流程有大量的摩擦,但除了在此之上進行調整之外似乎也無可奈何。“我們已經積累了如此多的組織債務,以至于需要進行徹底的變革,但進行這種變革將是非常困難的。”

他認為,問題的核心是項目不愿意接受 “管理”(人員管理、項目管理、產品管理)作為項目領導的重要組成部分。這些事情可以獨立于技術領導,但需要真正的權力委派(不僅僅是工作委派)。該項目面臨的挑戰是接受委托,支持這些活動,并引入更好地支持該項目的新流程。

生態系統挑戰

4、Navigating the crate ecosystem

Rust 在最小標準庫和 “batteries included” 之間取得了很好的平衡,原因在于其有一個繁榮的生態系統和易于使用的軟件包管理器。然而,有關 crate 生態系統一直是個棘手的問題。存在很多 crates,要找到適合的則需要付出很多努力,或者說要很好地參與到社區中去。隨著越來越多不是社區積極參與者用戶的出現,以及 crate 數量的增加,這將成為一個更大的問題。

5、The async ecosystem

異步編程對于 Rust 目標的許多領域都很重要,且與 Rust 的編程模型配合得很好。然而,其生態系統在不同的運行時有些分裂;雖然有在進行相關的改進工作,但卻進展緩慢,最終成功與否也未能確定。“風險在于我們最終會將東西帶入標準庫,這些東西并沒有得到社區的廣泛接受,我們最終會得到一個比我們開始時更糟糕的生態系統。”

技術挑戰

6、如何在不失去其 core focus 的情況下使語言更具廣泛吸引力?

Nick 認為 Rust 在其現有成功基礎上仍有很大的增長空間。目前的很多軟件都是用更側重性能的語言編寫,Rust 對安全、人體工程學和性能的關注則可以制造更好的產品并提高生產力。然而相對而言 Rust 學習難度和成本都太高,讓 Rust 更容易學習和使用可能會擴大其影響力。

“我不認為支持 GC、對 Rc<RefCell<T>> 類型使用含糖語法或添加一堆語法糖是解決方案。我們必須在不失去 Rust 以系統編程為核心的優勢的情況下讓事情變得更簡單。減少對 explicit lifetimes 的需求,使 borrow checker 更強大,不要使 trait system 過于復雜,關注用戶體驗,避免成為一種臃腫的語言,這些都會有所幫助。也許我們會發現可以顯著簡化所有權和生命周期的新 abstractions?”

7、內存模型和不安全代碼

安全性是 Rust 主要特色之一,也是許多人使用它的動力。因此需要能夠為從事不安全工作的程序員提供更多支持和更好的體驗。要做到這一點,則需要對 Rust 的內存模型有更清楚的了解,然后開發語言特性、庫和工具。

幸運的是,這個領域有學術研究、出色的社區工作、MIRI、不安全代碼指南等等。不幸的是,這是一個非常復雜和困難的領域,許多外圍人士的意見會減慢進度,并增加相關人員的工作難度。Nick 指出,出于政治和技術原因,一些可能真正影響大的更改根本無法進行。

8、發展標準庫

標準庫除了單調增長之外沒有其他方法可以發展(可以棄用但永遠不會刪除,并且無法更改)。就其本身而言,這將導致標準庫變得越來越龐大和混亂。但也有二階效應:必須對穩定性采取極其保守的態度,除了 “stable forever” 和 “僅在 nightly 可用且完全可能發生變化” 之外,API 沒有其他可能的狀態。

相關地,標準庫是一個 all or nothing deal(技術上也有 liballoc)。除了有一個更細化的版本管理解決方案外,更細化地使用標準庫,而不僅僅是核心庫或所有的標準庫,也是有益的。

9、Big compiler changes

Rustc 現在是一個非常龐大的軟件。它有很多固有的復雜性(Rust 是一種復雜的語言,在快速編譯的同時提供良好的錯誤信息是非常困難的),很多大型軟件的常見問題以及大量的技術債務。存在一些重大挑戰,尤其是在編譯時間方面(其中增量編譯和并行編譯是兩種正在進行中的方法),而這些都被證明是難以實現的工作;未來想要做出重大改變只會變得更加困難。幸運的是,編譯器團隊有能力、精力充沛且資源充足。但是,要對 rustc 進行大的、高影響的更改仍然具有挑戰性。

10、Macros

Macros 是語言中最不完善的部分之一。Declarative macros 引入了一種全新的子語言;Procedural macros 則很笨重,需要大量依賴并且難以掌握。所有的宏都與編譯器(編譯時間、增量編譯、錯誤信息)和工具(IDEs、rustdoc 等的各種問題)配合得很差。

“我認為這是一個巨大的挑戰(而不僅僅是另一個可以處理的語言特性)的原因是,這些問題是分散的和困難的。(可能)沒有良好的解決方案,只有大量的工程和設計工作。許多問題(例如,macro hygiene)需要社區中不存在的專業知識。宏的優先級也不夠高(畢竟它們本質上是有效的),也沒有足夠的魅力來吸引貢獻者。”

展望

Nick 最后總結稱,他列出了十個所謂 “大” 的 Rust 問題,可能會讓人感覺有點消極;但這確實都是現實中所面臨的挑戰。幸運的是,項目內部的人都知曉這些問題的存在,并在積極地解決中。

“盡管任何解決方案都很困難,但我認為所有這些挑戰都有可行且現實的解決方案。如果我們能夠專注于解決這些問題(當然還有其他所有的日常挑戰),那么我認為 Rust 將繼續發展并取得成功。”

詳情可查看博客全文。

本文轉自OSCHINA

本文標題:微軟首席工程師:Rust 將面臨十大挑戰

本文地址:https://www.oschina.net/news/210809/ten-challenges-for-rust


責任編輯:未麗燕 來源: OSCHINA
相關推薦

2014-02-09 14:40:59

2010-04-21 09:14:36

微軟

2020-11-05 13:57:38

CIO網絡安全

2020-01-14 14:38:30

技術研發指標

2021-04-30 08:00:00

數據工程師開發工具

2017-04-18 09:46:31

機器學習工程師算法

2018-08-15 15:09:36

云計算挑戰

2021-01-14 10:54:03

IT管理者業務運營疫情

2010-12-02 13:10:54

陳本峰IT博客大賽IT博客

2016-10-18 08:45:26

2018-10-09 10:00:31

區塊鏈信息技術加密貨幣

2013-09-02 09:56:54

云服務企業亞馬遜

2022-06-16 11:02:18

IT領導者首席信息官

2019-07-04 11:33:21

信息安全安全IT

2023-08-27 14:02:28

GPU大模型

2013-07-30 12:49:20

2020-07-23 07:43:04

工程師開發技術

2010-07-21 09:21:40

微軟趣聞

2023-09-14 19:15:21

2010-04-08 09:49:22

Windows Pho微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕免费观看 | 免费观看成人性生生活片 | 天天干天天玩天天操 | 毛片一级片 | 久久人体| 欧美a在线看 | 不卡一区二区三区四区 | 性欧美精品一区二区三区在线播放 | www.操.com| 粉嫩国产精品一区二区在线观看 | 91成人精品| 男人天堂视频在线观看 | 日韩在线观看 | 国产精品一区二区三区久久久 | 一级少妇女片 | 一区二区中文字幕 | 一区二区三区在线看 | 99久久国产综合精品麻豆 | 岛国av一区二区三区 | 91在线精品一区二区 | 国产在线一区观看 | 日韩视频观看 | 成人免费看片又大又黄 | 日韩视频中文字幕 | 欧美一区二区三区 | 一本一道久久a久久精品综合蜜臀 | 国产精品久久久久久久模特 | 亚洲在线电影 | 成年人在线观看视频 | 国产精品一区在线观看 | 成人片免费看 | 久久久国产精品视频 | 欧美一级黄视频 | 小川阿佐美pgd-606在线 | 91操操操 | 国产日韩一区二区 | 精品不卡 | 成人性生交大片免费看中文带字幕 | 91免费在线| 亚洲精品视 | 亚洲乱码国产乱码精品精98午夜 |