近日,Linus Torvalds 與 VMware 首席開源官 Dirk Hohndel 關(guān)于 Linux 內(nèi)核維護未來的討論引起了技術(shù)圈的關(guān)注。Linus 認為,在他們這批 Linux 內(nèi)核維護者老去之后,很難再找到新的繼任者,因為在很多年輕開發(fā)者看來 “ Linux 內(nèi)核項目并不那么有趣 ”。
內(nèi)核開發(fā)令年輕人感到無趣
在與 Dirk 的談話中,Linus 認為 Linux 內(nèi)核開發(fā)對大多數(shù)人來說是無聊的。“ 我說過內(nèi)核很無聊,但我的意思是從某種意義上說,許多新技術(shù)應(yīng)該比內(nèi)核開發(fā)更有趣。但是對我和其他內(nèi)核開發(fā)者來說,沒有什么能夠比與底層硬件交互的內(nèi)核開發(fā)更有趣的了,因為這能真正控制所有將在計算機中發(fā)生的事情。所以內(nèi)核對我來說并不是很無聊,但是我想大多數(shù)人應(yīng)該會認為它們很無聊?!?/p>
該談話很快就轉(zhuǎn)到了一個令人不安的問題上:既然現(xiàn)在對于內(nèi)核開發(fā)感興趣的人越來越少,那么當 Linux 內(nèi)核在當前一代的維護者老去之后,社區(qū)的未來該怎么辦?
目前,Linux 內(nèi)核維護者主要還是即將年滿 51 歲的 Linus 和一些 50 或 60 后的老程序員?!?在某個時候,Linux 社區(qū)需要開始考慮交接變革,屆時我們該怎么辦?” Dirk 問。
對此 Linus 本人倒是頗為樂觀,他認為目前整個 Linux 內(nèi)核社區(qū)其實還不算老?!昂芏嘈氯诉€不到 50 歲,他們通常是從事真正工作(給項目貢獻代碼)的人。而那些已經(jīng)在社區(qū)里近三十年的老人,比如我和一些早期的項目參與者,我們的主要精力已經(jīng)放在了項目的維護和管理上。”
維護者難尋
“我們確實有不少編寫代碼的人,但缺少維護者。” 在 Linus 看來,Linux 內(nèi)核項目未來交接的難點在于尋找一個自己的繼任者?!?事實證明,我們現(xiàn)在很難找到合格的新維護者。因為成為內(nèi)核維護者,你必須一直存在,這意味著你每天都要在電腦前閱讀來自全球各地的電子郵件,對郵件做出反應(yīng),就像我這 30 年來做的一樣,從不間斷。我們現(xiàn)在很難找到真正看待他人代碼,并在上游嚴格把關(guān)每一個提交,判斷它們能否合并到我們的主干代碼上的人。這是我們面臨的最主要的問題?!?Linus 說。
還有一個問題是維護者必須花費很長的時間才能獲得整個社區(qū)的信任。Linus 說:“這不僅是其他維護者的信任,也是所有代碼貢獻者的信任……這需要時間。30 年前,當我們剛開始做這個項目時,我們其實并不需要什么信任。只要你出現(xiàn)在社區(qū)里,就能參與進來,我們一起把這個東西做好。但現(xiàn)在有很多人依賴著 Linux 內(nèi)核,你不能像我們曾經(jīng)那樣做一些瘋狂的事情?!?/p>
“ 我不想被 Linus 噴 ”
作為一個在世界范圍內(nèi)舉足輕重的開源項目,Linux 內(nèi)核項目正面臨著開發(fā)者老齡化、維護者難尋的局面。而針對這次討論,國外的一些開發(fā)者也在論壇上表達了自己的看法。很多人認為,造成這一局面在一定程度上歸咎于 Linus 與外界溝通的態(tài)度。
“維護者難尋?提這問題是認真的嗎,我想不會有人愿意收到這樣的答復(fù) —— ‘這也算是一個 BUG?你已經(jīng)成為內(nèi)核維護者多長時間了?還沒有學會內(nèi)核維護的第一條規(guī)則?我再也不想收到這種明顯的垃圾,像白癡一樣的提交…… ’ —— 當時看到這樣的回復(fù)真的讓我很震驚。” 一位網(wǎng)友引用了此前 Linus 在郵件列表中公開的一段回復(fù),指出 Linus 在人際溝通中的惡劣態(tài)度是很多人對這項工作望而卻步的關(guān)鍵因素。
跟帖的網(wǎng)友認為,在一段正常的工作關(guān)系中,上級領(lǐng)導(dǎo)對員工的支持往往比責備更有利于項目的進展?!拔页姓J Linus 至今為止所取得的一切成就,但如果有人按照上述的溝通方式與我的團隊溝通,那我一定會糾正這個人的態(tài)度再開始工作。盡管 Linus 有著比絕大多數(shù)老板都聰明的大腦,但他的態(tài)度和那些狗屎老板一樣的爛?!?更何況 Linus 還不是任何人的領(lǐng)導(dǎo),沒有人愿意被一個從未見過面的人劈頭蓋臉地公開數(shù)落。
也有理性的開發(fā)者表示,盡管 Linus 的嘴巴 “很笨拙”,但不可否認要做好這項工作真的很難。這名開發(fā)者認為 Linux 內(nèi)核項目目前存在的問題是學習門檻太高,缺乏曲線平滑的學習資料?!?雖然我同意大多數(shù)人會因為害怕像狗屎一樣被 Linus 拒之門外,但這對于我們中一些臉皮比較厚的人來說,這其實倒也無所謂。我自己作為一個年齡比較大的技術(shù)人員,我可以理解 Linus 的憤怒來自何處,他需要保護成千上萬的 Linux 用戶;也能理解為什么年輕的技術(shù)人員可能將其視為純粹的侵略性。我喜歡能夠在內(nèi)核級別進行開發(fā),但是相關(guān)的學習資源卻是稀缺且通常難以理解的。我已經(jīng)用各種不同的語言編寫了 20 多年的代碼,但現(xiàn)在我仍然不知道 Linux 內(nèi)核開發(fā)該從哪里開始才能對項目做出有用的貢獻。”
僅有文檔還不夠
建立由淺及深、完善的學習文檔和示例是一個項目吸引新人才加入所必需的,Linux 內(nèi)核項目也是如此。但是以 Linux 內(nèi)核項目如今的體量,要做出一份完美的文檔將是一個非常艱難的工作。一位已經(jīng)退休的開發(fā)者認為,如今的 Linux 內(nèi)核項目的上手難度和幾十年前相比已經(jīng)呈指數(shù)倍增長?!?當我退休時,我為我的項目留下了詳細的文檔和示例偽代碼,據(jù)我估計,這些代碼,文檔和示例偽代碼將使開發(fā)團隊足足工作 8 個月才能完全接手項目。顯然,Linux 內(nèi)核的文檔和示例代碼帶來的工作量將遠超這一數(shù)字。而我剛開始編程那會,在占用 2kW 以下功率的 16 位微處理器上處理機器代碼程序,我可以理解最少的文檔并了解整個過程。但現(xiàn)在,考慮在程序中使用 C 語言進行極其復(fù)雜的處理并帶有各種引用和與其他事物的關(guān)系協(xié)同工作,我甚至完全不知道該從哪里開始思考。對一個新人開發(fā)者來說,要完全掌握 Linux 內(nèi)核的全貌是一個巨大的、艱難的過程?!?/p>
也就是說,Linux 內(nèi)核項目要吸引更多年輕開發(fā)者的加入,所需要解決的問題已經(jīng)不僅僅是文檔,管理一切事務(wù)的組織機構(gòu)是必須的?!皢栴}必須是 Linus 是否創(chuàng)建了一個自我維持和管理的成熟體系來將整個事情整合在一起?!?由淺及深的教程資料,年輕人才的招募等等,這些工作將需要社區(qū)里具有出色的組織和人際交往能力的人才能實現(xiàn),而不是光靠代碼可以解決的問題。
很難想象,當 Linus 這批程序員老去時,Linux 將走向何方?
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1361瀏覽量
40193 -
Linux
+關(guān)注
關(guān)注
87文章
11213瀏覽量
208737
原文標題:Linux 內(nèi)核維護者難尋:“我不想被 Linus 噴”
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論