時隔 25 年重訪 Linus:流量時代的“技術大師”
Linus Torvalds 於 1991 年建立了 Linux 作業系統核心,之後始終堅持在技術第一線。他開發的 Linux 和 Git 兩個專案深刻影響了軟體行業。
同時影響軟體界的還有他的言語。他的很多話,一些成為程式設計師模仿的物件,一些又是媒體炒作的素材。我們在爭論中用“Talk is cheap, Show me the code”來反駁別人,同時也熱衷於看媒體群嘲 Linus。當最近紅帽聯合創始人在時隔 25 年後第二次採訪他時,Linus 表示他討厭媒體,說他的言論在社交軟體和媒體中不斷分享和誇大,匿名的方式更是加重了網路暴力, “25 年前大家可不是這樣對待我的” 。
被盯著的技術大師
作為開源界的神級人物,他的一言一行都被時代記錄。甚至有一 維基頁面 專門儲存了他近 30 年的語錄。
其中有幾個時間點尤其引發爭議。去年 3 月以色列安全公司 CTS-Labs 突然釋出公告,聲稱 AMD Zen 架構處理器中存在一系列安全漏洞,但沒有遵循 90 天靜默期的行業慣例,只給了 AMD 24 小時的時間,就公佈了漏洞細節。Linus 對於這種反常做法也是出離憤怒:“看起來,IT 安全行業被重新整理了底線。我之前覺得整個安全行業已經夠墮落的了,但沒想到還能如此無恥”。2018 年 1 月 2 日,英特爾曝出的 CPU 設計漏洞事件。針對 Spectre 漏洞,Linux 作業系統不斷更新修復程式。Linus 公開炮轟英特爾提供給 Linux 的 Spectre 修復程式是“完全無用的垃圾”。2007 年,他發現用 C++ 實現 Linux 核心程式碼並不是最優選擇,於是對 C++ 的表現表示強烈的不滿:“C ++ 是一個可怕的語言”。
他也罵開發者提交不安全的程式碼,也曾在攝像機前對 Nvidia 不及時提供驅動的行為比劃中指…。大多數情況下,Linus 憤怒的原因都是關於技術,這些行為也並非是沒有理由的,甚至可以說某種程度上是中肯的。但這些事件不斷的在網路上被評論和發酵,每次發言都在多年來不斷的被提起,Linus 也逐漸以“尖酸刻薄”的印象聞名。
他極度熱愛技術,也極度在意他的核心專案,曾表示只想做技術,不想處理技術以外的事情,不關心是否是用“人文關懷的管理方式”。但人們開始對他表示的相當憤怒,一位因特爾頂尖 Linux 程式設計師發表博文表示自己不願意為不尊重人的社群服務了;一位開發者在峰會現場詰問 Linus對他發表的不尊重別人的言論有何看法…
外部刺激加內部矛盾,最終導致這位只想“關心技術”的頂級程式設計師不得不宣佈離開社群進行反思。但他作為社群“靈魂人物”,得保證 Linux 核心的每個版本都被正確的釋出;甚至去年 9 月溫哥華核心維護者峰會也差點因他不能出席而取消。這不禁讓人聯想到“只想讀書”的中國“流浪大師”,不情願的被聚焦在攝像機前,不過沈巍能躲開,而技術社群卻離不開 Linus。
Linus 不得不表示服從,雖然他說“只想尊重那些值得尊重的人”,但他還是公開對過去的言行表示道歉,並調整自己的行為。不久後 Linus 宣佈迴歸,Linux 基金會隨之也正式制定了修訂後的行為準則:採用 Code of Conduct(CoC)行為準則,以取代之前的 Code of Conflict 衝突解決方案。
以一己之力寫出 Linux,被應用到現在千千萬萬手機、伺服器等裝置中,Linus 以技術服眾,多年都被評為世界最有影響力的人之一。他在前幾天 再次 接受紅帽聯合創始人 Robert Young 採訪時,兩人談到了過去 25 年的變化,談到了工作的理念,談到了 Linux 的未來,也談論了社交網路。Linus 說:“ Twitter、Facebook、Instagram 之類的社交媒體是一種病,鼓勵了不良行為!“,“在網際網路上,沒有人能聽到你的言外之詞“。
然後這一條資訊,又成了眾多媒體的炒作核心:
訪談: Linus Torvalds 與 Robert Young
Robert Young:很高興有機會和你聯絡。你和你的家人都好嗎?你孩子現在一定大學畢業了吧。Nancy 和我,還有我們的三個女兒現在都挺好的。我們的大女兒 Zoe,當我和 Marc 創辦 Red Hat 時她才 11 歲,現在就要生下她的老二了,也就是說我早成姥爺了。
Linus Torvalds:
我的孩子們還沒有完成大學學業呢,我的大女兒 Patricia 要到今年 5 月份才唸完大學,但小女兒 Celeste 還在念高中畢業班,所以呢,再過六個月後我們就該成為空巢老人了。
我三個孩子都做得挺好的,至於我成為祖父,恐怕還得等上幾年才有可能。
Bob:1994 年當我第一次採訪你的時候,你是否認為到 2019 年時,您還會保持這種狀態嗎?
Linus:
我認為啊,在當時的 1994 年,讓我倍感驚訝的是,我那時最新的專案已經不僅僅是“做一些有趣的事情,直到它完成了我所需要的一切,然後我再找別的事情做”這樣的專案。當然了,那時候它還處於開發的早期階段,但它可是花了我好幾年的時間才開發出來的東西,而且也已經融進了我的生活。
所以我想說的是,不是說我一定要再做上幾十年,而是它已經成了我生命中的一個坎,如今我已邁過去。我從來就沒有真正為 Linux 制定過長期計劃,我原本打算想的是“得過且過”的生活,而不是要考慮未來五到十年以後的事情。
Bob:關於實現夢想的危險,有這麼一句名言:當你被人問到你對 Linux 的未來有什麼期許,你經常開玩笑說是“統治世界”。現在,你和更廣泛的開源 / 自由軟體社群已經實現了這一目標,那麼,能說說你的下一個目標是什麼呢?
Linus:
好吧,我已經很久不開什麼“統治世界”的玩笑了啊。因為隨著世界的推移,這個似乎不再是玩笑了。但它終歸是一句玩笑話,並不是我或其他任何開發者真正做我們所做的事情的原因。它就是關於怎麼樣才能開發更好的技術,怎麼樣面對有趣的挑戰。
而這一切在核心層面上從來就沒有真正變過。只是所有的細節都變了,比如說,現在和以前相比,硬體就已經發生了巨大的變化,我們遇到的問題也與以前非常不同了,我的角色也和當初相比大相徑庭。但是,“做得更好,並有著有趣的挑戰”這點從來就沒有變過。
比如說吧,在 1994 年我主要是一名開發人員。當然,我是主要的維護者,儘管我花了很多時間來合併補丁,但我也主要編寫自己的程式碼啊。現在,我已經很少寫程式碼了。我寫的程式碼通常是虛擬碼或示例補丁,通過電子郵件發給真正的開發者。我不願意將自己稱為“經理”,因為我並沒有真正做過什麼年度評審或預算之類的事兒(感謝上帝!),但我絕對是一個技術帶頭人,而不是一個真正的程式設計師,這在過去的許多年裡都是如此。
所以真正的大局並沒有改變,但我的角色,以及所有的細節,很顯然與 1994 年大不相同。
Bob:問一下,再過一個下 25 年,你和你這個程式碼庫將會在哪裡呢?
Linus:
哈,到那時候,我就 75 歲了,我懷疑自己還能不能天天參與其中。但考慮到我已經這樣做了近 30 年,也許,到那時候我還會繼續關注這個專案。
好訊息是,我們確實擁有一個非常可靠的開發者基礎,因此,我從來不擔心“Linus 會在哪裡”這樣的問題。當然,核心開發人員衰老後會怎麼樣,人們已經談論這個話題很長時間了,但這並不是因為我們有新的繼任者,而是因為我們周圍仍然有很多人,已經在一起很長時間了,並且仍然喜歡這樣做。
我曾經認為,也許一些全新的、令人興奮的作業系統,總有一天會出現並取代了 Linux(嘿,早在 1994 年,我可能還會以為 Hurd 會這麼做!),但這樣的局面並沒有出現,這不僅僅是因為我們已經做了很長的時間,並且仍然做得很好,我也開始意識到,開發一個新的作業系統,要比我想象的困難得多了。這確實需要很多人付出大量心血,而 Linux 的優勢——當然也是開源的優勢——在於,你可以在所有其他人的努力之上進行構建。
因此,除非在計算領域發生一些絕對巨大的變化,否則,我認為 Linux 將在未來 25 年內做得相當好。我之所以這麼說,並不是因為程式碼本身的任何特定細節,簡而言之,從根本上說,是因為得益於開發模式和問題空間。
到那時,我可能會變得不再那麼活躍,很多程式碼都會被更新、被替換,但我認為,這個專案還將會繼續存在下去。
Bob:這麼多年來,為了讓你滿意,你和核心團隊是不是一直在更新核心程式碼?25 年來不斷擴充套件的 Linux 程式碼庫,是否有必要或者迫於某種壓力來重寫呢?也許用比 C 語言“更為現代”的語言來重寫?
Linus:
多年來,我們已經對大多數子系統進行了多次大規模的重寫,當然並不是一次性就全部重寫,而且有很多程式碼最終都變成了沒人真正想要修改的東西(最常見的原因是它們都是那些很少有人真正使用的古老硬體的驅動程式,但我們仍然提供支援)。但是,對於整個核心來說,大型統一原始碼庫的優勢之一就是,當我們需要進行一些較大的更改時,我們可以這樣做。可能有一些核心之外的驅動程式等(包括原始碼和二進位制檔案),但我們一直有一個策略,如果它們不是核心相關的,那麼對開發來說就沒什麼影響。所以,我們可以在必要的時候進行徹底的改變。
至於 C 語言,沒有比這更好的了。我們已經為新的、改進的特性更新了核心原始碼(在我們這樣做的這幾年裡,C 語言本身也發生了變化),而且我們還在 C 語言上添加了各種擴充套件,如用於額外的型別檢查、執行時驗證以及強化等,但總的來說,除了一些小細節之外,語言是完全相同的。
老實說,你說的那個用比 C 語言更現代的語言來重寫,看起來不太可能,因為人們在活動開發中,看到的那種語言並不適合用於底層系統程式設計。這種語言是為了更容易地用花哨的使用者介面等建立使用者應用程式,很顯然不想做核心需要做的事情,比如底層手動記憶體管理。
我可以想象,會有一些“框架”語言來生成驅動程式或類似的東西,而且在我們內部實際上也有我們自己的簡化“語言”來進行配置,我們也確實在構建過程中使用了一些其他語言,所以 C 語言並不是我們使用的唯一語言。但到目前為止,這是它的大部分內容,這就是“核心本身”所寫的內容。
Bob:你選擇的硬體裝置是什麼樣子的?有沒有那種很貴的、大牌的 Linux(或任何)膝上型電腦?平板電腦或者手機有嗎?
Linus:
我的主要開發用的機器是一個非常普通的 PC 工作站。這是一臺組裝機,用了很多年。這沒有啥特別的,實際上,我已經兩年沒有對它做任何大的改動了,所以它甚至都沒有啥特別的。我在家裡的主要要求實際是基本上完全安靜,除了那幾個風扇,沒有什麼活動的部件了(所以沒有那種旋轉的磁碟)。
在旅途上(幸好不是經常這樣),我的主要需求是要有一個好的螢幕、足夠輕薄。我中意的是筆記本帶上充電器才重 1 公斤,老實說,我還沒有找到這種筆記本,但目前對我來說最好的折衷方案是 XPS13。
Bob:目前看來 Linux 在桌面上的成功似乎不是在個人電腦桌面而是通過安卓在裝置桌面上,對此,你有什麼看法?
Linus:
呃,傳統的個人電腦顯然不再像以前那樣占主導地位了。即使你有一臺個人電腦(即使它還在跑 Windows 或 OS X),很多人主要通過網路瀏覽器和一些隨機的應用程式來使用它。當然,還有那種“工作站”使用者,這是我個人一直想象的那種桌面。儘管它仍然很重要,但它似乎並沒有像當年的個人電腦那樣推動市場發展。強大的桌上型電腦似乎主要是用於開發、遊戲、或媒體編輯。那種“casual”(譯註:指臨時的、非正式的,不按常規、固定模式做事,隨意性強)桌面似乎更像是瀏覽器,而且常常只是一個平板電腦或一部手機。
當然,Chrome 在這方面的表現似乎也不錯。但是,是的,在每天與 Linux 打交道的人中,Android 顯然佔了很大一部分。
【Bob 注:嚴格意義上的“dominant”(統治),這可能是公平的。但是,儘管最近幾年個人電腦的總出貨量有所下降,但從 1994 年到 2014 年,個人電腦市場的累計增長如此之快,即使在今天個人電腦市場發展緩慢的情況下也是如此。與 1994 年相比,全球每年購置的個人電腦數量仍然是 1994 年的四到五倍。】
Bob:如果你必須解決關於網路世界的一個問題,那會是什麼呢?
Linus:
沒有啥技術性的問題。但是,我絕對特別討厭現代的“社交媒體”,那些 Twitter、Facebook、Instagram 等。這些都是毒瘤,似乎助長了人們的不良行為。
我認為其中部分內容也是通過電子郵件共享的,我之前就說過:“在網際網路上,沒人能聽出來你的微秒。”(On the internet, nobody can hear you being subtle)如果你沒有跟某人面對面交談,而且還錯過了所有正常的社交線索時,你就很容易錯過幽默和諷刺,但也很容易忽視對方的反應,所以你會陷入罵戰,通過面對面交流的話,可能不會那麼容易出現這種情況。
但是電子郵件仍然有用。你仍然還需要投入精力去撰寫電子郵件,通常還會有一些乾貨(比如技術方面的或者其他方面的)。整那些什麼“點贊”、“分享”等這些玩意兒都是垃圾。沒有努力,也沒有質量控制。事實上,這一切都與質量控制背道而馳,具有最低的共同目標、標題黨、以及試圖助長戾氣的東西,通常都是道德暴行。
再加上個匿名,真他媽的噁心。當你甚至不把你的真名寫在垃圾上(或者你分享、點讚的垃圾上)時,它確實一點幫助都沒有。
其實我就是那種認為匿名被高估的人。有些人將隱私和匿名混為一談,認為這兩者是相輔相成的,而保護隱私則意味著你需要保護匿名。要我說,這是一派胡言。如果你是一個告密者,匿名當然很重要,但如果你無法證明你自己的身份,那你在社交媒體平臺上進行辱罵、搞惡意攻擊時,就不應該被公眾看到,而且你也不應該對這樣的資訊點贊或分享。
嗯,咱不抱怨了哈。我就不玩任何社交媒體(不過我曾經嘗試過 G+,因為上面的那些人不是那種沒有頭腦的普通人,但顯然從來沒有去過任何地方),但這仍然讓我感到大為光火。
Bob:我們將發行的這一期《Linux Journal》主要關注兒童和 Linux 的方面,你有什麼建議可以給年輕的程式設計師或電腦科學專業的學生嗎?
Linus:
其實吧,這種問題你就最不該問我了,因為我從小就對數學和計算機感興趣,在上大學之前,那些都是我自學的。我所做的這一切,都是我自動自發的,所以,我真的不知道該如何回答人們說的“我應該怎麼做”時所面臨的問題,因為我根本就沒經歷過你說的這些問題。
Bob:咱倆第一次見面是在 DEC 展會上,那時候正是你第一次來訪美國,Jon maddog Hall 和 DEC 資助了你。
Linus:
我想,實際上那是我第二次來美國。第一次來美國是去猶他州普洛佛旅行,與 Novell 討論 Linux(為了 Novell 內部的一個專案,後來變成了 Caldera)。
不過話說回來,是的,DECUS 的會展(是在新奧爾良嗎?也許我記錯了)是我最早到美國旅行的地方之一。
Bob:我問你啊,當你回到赫爾辛基時,你是如何處理所有錯過的電子郵件呢?因為你的回答讓我很吃驚,從那以後,我就一直在引用你的話。你只是說你會把積壓的電子郵件傳送到 /dev/null。我被震撼到了,當時我問你:“如果你的收件箱裡有重要的電子郵件怎麼辦?”你當時聳了聳肩,告訴我:“如果這封電子郵件真的很重要的話,對方還會再發一遍的。”可能是任何人給我最為自由的建議了。你現在還遵循這樣處理電子郵件的理念嗎?
Linus:
這還是有點道理的,但與此同時,我也改變了我的工作流程,這樣旅行就不會像以前那樣打亂我的工作了。所以,這些天來我經常努力使人們沒有注意到我在出遠門。如果我預計一兩天之內我上網不便(世界上某些地方還會存在這種情況,尤其是如果你是一名潛水員的話),我會提醒人們。但大多數時候,我可以在世界任何地方工作。我試著(有時會失敗)給我的行程安排時間,這樣它們就不會出現在我的 Merge 視窗中,而這正是我收到最多 Pull 請求的時候。
所以現在我把所有的電子郵件都留在雲端,這使得我更容易在機器之間切換,這意味著,當我在旅行時,以及使用我的膝上型電腦時,不會再像以前那樣下載所有電子郵件到本地機器時那樣痛苦了。
而且不只是我的電子郵件這樣,事實上,幾乎所有的核心開發最終都是通過 git 進行分發的,這也意味著它不再是我所使用的機器的問題,而且同步比我以前通過電子郵件單獨處理補丁要容易多了。
不過,我那個“如果這封電子郵件很重要,對方會重新發送的”的觀點仍然有效。人們都知道,我差不多全年無休,如果我幾天內沒有對 Pull 請求做出反應,這仍然意味著它可能會被埋沒在我那浩煙如海的電子郵件中,人們會給我一封后續郵件來詢問我。
但它實際上比過去少了很多。回想 1994 年的時候,我就沒有那麼勞累過度,離開一週的時間也沒啥大不了的,但是,在接下來的幾年裡,情況變得越來越糟了,以至於我們以前基於電子郵件和補丁的工作流程,意味著我有時不得不跳過補丁,因為我沒有時間來處理它們,我知道人們還會重新發送補丁的。
那些快樂的日子已經過去了。BitKeeper 對我來說有很大的不同,即使不是所有的維護者都喜歡它(或使用它)。而現在 Git 意味著我不再通過電子郵件來獲得成千上萬的補丁,我電子郵箱裡的收件箱也不像以前看起來那麼槽了,因此,我更容易繼續追蹤了。
順便說一句,也許比“如果這封電子郵件很重要,對方會再次傳送的”規則更重要的是我執行最久的另一條規則:如果我不必回覆,那我就不回覆。如果我收到一封郵件,而我的反應是別人可以處理它,我就會忽略這封郵件。一些忙碌的電子郵件使用者會設定自動回覆“抱歉,我會嘗試最終收到你的郵件。”於我而言,我只是忽略了任何與我無關的事情。我這麼做是因為我覺得我不能鼓勵人們給我發更多的電子郵件。
所以,我收到很多電子郵件,但實際上我根本就沒有回覆過。從一個非常真實的意義上講,我的大部分工作就是掌控全域性,知道發生了什麼事情。所以我看到很多電子郵件,但我通常不會寫太多。
Bob:1995 年 5 月,在華盛頓特區 Linux 使用者組會議上,由 Don Becker 組織的一次演講中,你中途停了下來,向聽眾詢問是否有人知道芬蘭 - 瑞典男子曲棍球世界錦標賽的比分。作為在場加拿大人的象徵,我可以向你保證,芬蘭贏得了那場比賽。說到這個話題,芬蘭最近贏得了世界青少年錦標賽,對你來說一定很有趣。或者,你會為美國歡呼嗎?
Linus:
呵呵,曲棍球可是芬蘭的國球啊(與瑞典比賽讓它更個性化——我的母語是瑞典語,但說到國籍,我是芬蘭人)!但我並不是體育迷。我遷到美國並不意味著我學會了棒球和足球,它只是意味著曲棍球不再是“我周圍的人也關心”的內容了。
Bob:我們中的許多人都很欽佩你在有關 Linux 技術決策的公開辯論中直言不諱的態度。其他人並不喜歡你直率的辯論風格。隨著時間的推移,你認為自己會不會或多或少有了外交辭令?
Linus:
如果要說有什麼變化的話,我想我應該是變得更安靜了。我倒是不會認為我變得“更外交化”,但也許是更有自知之明,我正試圖變得不再那麼強勢。
部分原因是人們對我的解讀方式和過去不同,它曾經是一個更加自由的環境,我們是一群極客,玩得很開心。而今天,這環境已經不太一樣了。一方面,它再也不是針對個人了:我們現在有成千上萬的人蔘與開發,這還是隻計算實際傳送補丁的人,而不是所有圍繞補丁工作的人。一方面,人們“用另一種方式來解讀我”的原因是,他們以 1994 年沒有的方式認真對待我。這絕對不是對我當時沒有收到重視的抱怨,恰恰相反,更讓我抱怨的是人們現在對我太過認真了,我不能再說傻話、做傻事了。
因此,我仍然會召集人們(尤其是公司)來做一些蠢事,但現在我必須知道,這可是新聞啊。而且我還會指責一些公司,可能十年後仍然會被人們記得。無論是否值得,它很可能都不值得。
Bob:你還有什麼要評論的嗎?無論是公開的還是其他的方式?
Linus:
我從來就沒想過要傳播什麼“資訊”,所以……你懂的。
參考連結: https://www.linuxjournal.com/content/25-years-later-interview-linus-torvalds