Linus Torvalds: The mind behind Linux
2016年2月 TED Talk , Linux之父Linus Torvalds.
呆萌嬌羞至尊寶,火力全開段子手。
TED官方?jīng)]有提供中文字幕,忍不住翻譯出來,Just for fun!
開場:神之總部
0:12(主持人)Chris Anderson:
這是一件多么奇怪的事情。你的軟件-Linux,運行在許多計算機(jī)上,它可能控制了大部分互聯(lián)網(wǎng)。另外我想還不包括15億部活躍的Android設(shè)備。你的軟件運行在所有這些設(shè)備上面。某種程度上說真是不可思議。你一定有驚人的軟件總部來控制它們。我想是這樣的——當(dāng)我看到這張照片的時候,我驚呆了。我的意思是說,這就是Linux的全球總部嗎?
0:42 (滿堂歡笑)
0:44 (鼓掌)
0:48 Linus Torvalds: 它真的看起來不怎么酷。我不得不說,這張照片最有趣的部分,人們最容易關(guān)注的部分,是那個走步機(jī)。它是我的辦公室最有趣的部分,而且我實際上從來不用它。我相信這兩件事是有聯(lián)系的。
1:08 我走路的方式……我不想有外部的刺激。你可以看到,墻上的顏色是淺綠色。我聽說,精神病院的墻上也用這些顏色。
1:26 (滿堂大笑)
1:28 它們是寧靜的顏色,在某種程度上不會刺激你。
1:34 那些你不能看到的東西是計算機(jī),圖上你只能看到顯示屏,但是我主要擔(dān)心的是我的計算機(jī)——它的體型和功率都不夠大,盡管我希望那樣——但它必須保持絕對安靜。據(jù)我所知,有些為Google工作的人,在家里就擁有自己的小型數(shù)據(jù)中心,我不這樣做。我的辦公室應(yīng)該是你見過最乏味的。我獨自呆在一片寧靜之中。如果貓走近來,它會坐在我的大腿上。我希望能聽到貓的呼嚕聲,而不是計算機(jī)的風(fēng)扇聲。
2:12 CA: 所以基于這樣的工作方式,是非常驚人的,你能夠運營如此龐大的技術(shù)帝國——它是一個帝國——所以這就是一個驚人的證明,關(guān)于開源的力量。
話題一:Linux
2:24 跟我們說說你是怎么理解開源 ? 開源是怎樣引導(dǎo)Linux開發(fā)的?
2:32 LT: 我的意思是說,我依然一個人工作。真的-我一個人在我的家里,通常是穿著睡衣。當(dāng)攝影社出現(xiàn)時,我得打扮,然后穿上衣服。
2:42 (笑)
2:44 其實這就是我過去工作時的情況。我的意思是說,我開啟Linux的時候也是這樣的。我開啟Linux的時候,它并不是一個團(tuán)隊合作的項目。它只是作為眾多的、為我自己服務(wù)的一系列項目之一,在一定程度上是因為我需要最終成果,但是更多的原因在于我只是喜歡編程而已。所以它的目標(biāo),25年之后,我們依然沒有到達(dá)。事實上,我只是為自己在尋找一個項目,這里無關(guān)開源,事實上,我完全沒有這個目標(biāo)。
3:20 接下來發(fā)生的事……項目成長起來,變成了某些你希望向人們炫耀的事情。事實上,比這還要復(fù)雜,“哦,快來看我做了什么!” 請相信我——它當(dāng)時并沒有那么美好。在那個階段,它的源碼是開放的,但是背后沒有使用一種開源方法,類似于我們今天改進(jìn)項目的手段。它更類似于,“看吶,我已經(jīng)在上面工作半年了,我希望能收到一些意見。”
3:59 這時另外一些人開始跟我接洽。在赫爾辛基大學(xué),我有一個朋友,來自開源的一個分支——它后來被稱為“自由軟件”——確切的說,他介紹了一種概念給我,聽我說,你能使用流行的開源許可證。對此,我想了一會兒。我確實對商業(yè)的因素參與進(jìn)來感到擔(dān)憂。我的意思是說,當(dāng)人們開始參與的時候,這是一個值得憂慮的事情,他們擔(dān)心一些人趁機(jī)搗亂他們的工作,不是嗎? 于是我決定了,“這到底是怎么回事” --
4:43 CA: 與此同時,正如你所想的那樣,有些人貢獻(xiàn)了一些代碼,“噢,這太有趣了,我從來沒有想過可以這樣。這樣竟然可以讓項目獲得改進(jìn)。”
4:52 LT: 開始的時候,人們并不是貢獻(xiàn)代碼,人們更多的是貢獻(xiàn)想法。事實上也有一些人看了一眼你的項目——并且我敢肯定別的一些事也是如此,但是關(guān)于代碼部分千真萬確——有一些人對你的代碼感興趣,到一定程度上就會給你反饋信息,給你提出想法。對我來說這一點至關(guān)重要。
5:16 那時我21歲,因此我很年輕,但是我已經(jīng)用一半的人生來編程了,本質(zhì)上說。
在此之前完成的每一個項目都是出于個人目的,這完全出乎我的意料——當(dāng)人們開始評論、開始對你的代碼提供反饋信息的時候。甚至于當(dāng)他們開始反饋代碼,那時我想,作為最重大時刻之一,我說,“我愛其他人!” 不要誤會——我其實不是一個人。
5:45 (笑)
5:48 我真的不是愛其他人—
5:51 (笑)
5:52 但是我愛計算機(jī),我喜歡和其他人通過電子郵件交流,因為這種方法可以為你提供某種緩沖。但是我也喜歡那些發(fā)表評論、在我的項目中獲益的人。Linux項目使得這些事數(shù)不勝數(shù)。
6:08 所以是否有一個時刻,在項目構(gòu)建過程中你發(fā)現(xiàn),它突然開始失控了,這時你想,“稍等下,實際上這可能關(guān)系重大,不僅僅是作為個人項目獲得好的反饋,而是在整個技術(shù)世界出現(xiàn)一種爆炸式的發(fā)展” ?
6:24 LT: 事實并非如此。我是說,對我來說這不是一個大問題,真正的大問題不是說Linux變得龐大,而是它變小了。對我來說,項目變得龐大意味著不只是我一個人,而是10個,或者100個人參與進(jìn)來——那確實變大了。然后所有的其它事情都變得緩慢了。從100人發(fā)展到一百萬人并不是一筆大買賣——對我來說。好吧,我的意思是,也許對你來說是——
6:50 (笑)
6:51 如果你希望出售你的成果,它就是一筆大買賣——不要誤會我的意思。
如果你對技術(shù)感興趣,對這個項目感興趣,大部分的工作其實是發(fā)展社區(qū)。當(dāng)社區(qū)逐漸成長起來,就不像只有我一個人的時候了,“喔,它起飛了!” 因為它——我的意思是——相對而言,發(fā)展社區(qū)需要很長的時間。
話題二:Git
7:12 CA: 我訪談過的所有技術(shù)專家們,無一例外都極力贊揚(yáng)你,你改變了他們的工作方式。不僅僅是Linux,還有Git,用于軟件開發(fā)的管理系統(tǒng)。簡單跟我們談?wù)凣it,你在這個項目里的角色是怎樣的。
7:29 LT:我們曾經(jīng)遇到的問題之一就是,剛開始的時候,當(dāng)你的項目的參與人數(shù)從10個或者100個增長到10,000個的時候,——我的意思是,我們剛剛在內(nèi)核項目上就遇到了這種情況,每一個單獨的發(fā)行版本都有1000人參與,每兩、三個月就要發(fā)布更新。他們中的許多人并不需要做很多工作。許多人只是做了非常、非常小的變更。
8:00 但是為了維持這個過程,你不得不維護(hù)大規(guī)模的變更。我們經(jīng)歷了一個非常痛苦的過程。而且這還只是整個項目中,源代碼維護(hù)的部分。CVS曾經(jīng)是用來管理代碼最通用的工具之一,我非常討厭CVS,并且拒絕使用它,每一個體驗過其它純粹、有趣工具的人都討厭它。
8:30 CA: (笑)
8:31 LT:我們曾經(jīng)身處困境之中,當(dāng)時有成千上萬的人希望參與到項目里面來,但是在很多情況下,我自己就是臨界點,有了Git之后我就可以突破這個臨界點,我可以和成千上萬的人一起工作。
8:46 所以 Git 是我的第二個大項目,而它只是被創(chuàng)造用來服務(wù)我自己維護(hù)第一個大項目。我其實就是這樣工作的。我編程不是為了——好吧,我編程只是為了有趣——但是我希望能為一些有意義的事編程,我完成的每一個獨立的項目,都已經(jīng)變成某些我需要的——
9:08 CA: 實際上,Linux 和 Git 這類東西的出現(xiàn)只是一個意外結(jié)果,你其實并沒有希望它們能為這么多人服務(wù)。
9:17 LT: 當(dāng)然。是的。
9:18 (滿堂歡笑)
9:19 CA: 這很驚人。 LT: 是的。
9:21 (鼓掌)
話題三:憶童年
9:22 到目前為止,作為曾經(jīng)改變技術(shù)形態(tài)的人,你已經(jīng)不止一次而是兩次,我們試圖理解你什么能夠做到這一點。你給我們提供了一些線索,但是……這里有一張你小時候的照片,拿著一個魔方。你曾提到說,在只有10或11歲的時候,你已經(jīng)成為程序員,相當(dāng)于你人生的一半。
9:42 你是那種計算機(jī)天才嗎,正如你所知,übernerd,你是學(xué)校里的全能明星嗎?你小時候是什么樣的?
9:51 LT: 呃,我想我屬于那種典型的書呆子。我的意思是,我那時不是一個喜歡社交的人。那是比我小的兄弟。我可以肯定地說,那時我對魔方的興趣比對小兄弟大。
10:05 (滿堂歡笑)
10:06 我更小的妹妹,沒有在這張照片上,當(dāng)我們召開家庭會議的時候——那不是一個龐大的家庭,但是我有幾個兄弟姐妹,——她會提前完成家庭作業(yè)。例如,當(dāng)我進(jìn)入房間之前她會說,“好的。那是so-and-so …” 因為我不是——我是一個極客。我沉浸在計算機(jī),沉浸在數(shù)學(xué),沉浸在物理學(xué)。我擅長這些。我不認(rèn)為自己是故意顯得與眾不同。很顯然,我妹妹說過,我最大的異常特征是我從不參與眾人的行動。
10:46 CA:好吧,那我們就來討論這點,因為這很有趣。你不從眾。所以這不是關(guān)乎成為一個極客,也不關(guān)乎成為一個聰明人,這是關(guān)于固執(zhí)?
10:56 LT: 那確實關(guān)于固執(zhí)。那關(guān)乎,就像,開始做某些事情的時候,并不會說,“好吧,讓我們來做些別的事——看,當(dāng)當(dāng)當(dāng)當(dāng)!”
11:09 我想在我人生中的其它部分也是如此。我曾經(jīng)在硅谷生活了7年多。在硅谷,我為同一家公司全職工作。這是難以置信的。這不是硅谷的工作方式。硅谷的共識是人們需要在不同的職位上跳來跳去。但那不是我這樣的人的風(fēng)格。
11:36 CA:但是實際在Linux的開發(fā)過程中,固執(zhí)的性格有時也會讓你和其他人的關(guān)系陷入緊張狀態(tài)。談?wù)勥@點吧。這是維持構(gòu)建質(zhì)量的必要因素嗎?你是如何來判斷事態(tài)發(fā)展?
11:53 LT:我不確認(rèn)它是否完全必要。回到剛才說到的 “我不是一個善于社交的人,”——有時候我也……我這樣說吧,有時“我的淺薄”會影響其他人的感受,有時你剛才所說的情況會傷害其他人。并且,我并不以此為榮。
12:17 (鼓掌)
12:18 但是,與此同時,有些人告訴我說我應(yīng)該更友好一些。然后我試圖向他們解釋說,也許你們是友好的,也許你應(yīng)該更好斗些,他們和我一樣變得不友好了。
12:37 (滿堂歡笑)
12:39 我試圖表達(dá)的想法是大家是不一樣的。我不是一個社交達(dá)人;這不是我特別為之自豪的事情,但這是我的一部分。并且我真心覺得,開源理念之一就是非常鼓勵不同的人一起合作。我們不見得需要互相喜歡對方——并且有時我們真心互相瞧不上。真的——我是說,有非常、非常熱烈的爭論。 但是你能夠,事實也確是如此,你會發(fā)現(xiàn)——你不必特意消除分歧,這只是因為你們感興趣的事情不同。
13:12 回到我早期說過的觀點:我擔(dān)心商業(yè)人士會利用你的工作,它已經(jīng)發(fā)生,并且很快會發(fā)生,那些商業(yè)人士是非常、非常可愛的人。他們完成了我完全不感興趣的事情,他們完全是基于不同的目標(biāo)。他們使用開源的方式只是我剛好不想走的路。但是因為項目是開源的,所以商業(yè)人士可以那樣做,這實際上使得大家可以完美并存。
13:41 事實上,我認(rèn)為它們的工作方式相同。你需要有善于和人溝通的交流者,像那些熱情和友善的人——
13:49 (滿堂歡笑)
13:51 我真想把你拉進(jìn)開源社區(qū)。但不是每個人都做得到。那樣就不是我了。我關(guān)心技術(shù)。也有些人關(guān)心圖形界面。我不會去做圖形界面來拯救我的人生。我是說,如果我被困在島嶼上,同時唯一的脫困方式是做一個漂亮的圖形界面,那我肯定會死在那兒的。
14:11(滿堂歡笑) (哈哈哈哈哈哈)
14:12 需要有不同風(fēng)格的人,我也不是為了找借口,我只是嘗試做一些解釋。
話題四:論品味
14:17 CA: 當(dāng)我們上周交流的時候,你談到自己有一些別的特質(zhì),有些我發(fā)現(xiàn)真的非常有趣。你管它叫品味。
14:24 我這里剛剛拿到一些圖片。我想這是一個例子,關(guān)于在代碼領(lǐng)域缺乏好的品位,這個品位更好,那個能立刻看出來。這兩個代碼之間有什么區(qū)別?
void remove_list_entry(entry)
{
prev = NULL;
walk = head;
// Walk the list
while (walk != entry){
prev = walk;
walk = walk->next;
}
//Remove the entry by updating the
//head or the previous entry
if(!prev)
head = entry->next;
else
prev->next = entry->next;
}
void remove_list_entry(entry)
{
//The "indirect" pointer points to the
// *address* of the thing we'll update
indirect = &head;
//Walk the list,looking for the thing that
//points to the entry we want to remove
while ((*indirect) != entry)
indirect = &(*indirect)->next;
// .. and just remove it
*indirect = entry->next
}
14:39 LT: 這個——這里有多少人真的寫過代碼?
14:44 CA: 天哪!
14:46 LT: 我向你說明一下,每一個舉起手的人,已經(jīng)完成的動作,我們稱之為單向鏈表。它的調(diào)用——這里,第一種方式不代表好的品位,當(dāng)你開始編程的時候,完成動作是基于它被告知如何做。而且,你不得不去理解這段代碼。
15:03 對我來說最有趣的部分是最后的if語句。因為發(fā)生的事情在一個單向鏈表里面——這是試圖從列表里移除一個已經(jīng)存在的實體——第一個或者中間的實體,這里是不同的。因為如果它是第一個實體,你不得不將指針移到第一個。如果它在中間,你不得不將指針移動到它的前一個實體。所以它們是兩種完全不同的情況。
15:32 CA: 所以那個更好。
15:33 LT: 這個更好。它沒有這個if語句。其實它不是真的很要緊——我不期望你能理解為什么它沒有這個if語句,但是我希望你能理解,當(dāng)碰到一個問題,通過不同的方式可以被重寫,以至于一個特殊的情形被移除,然后變成了一個常規(guī)的的情形。這就是好的代碼。但這是簡單的代碼。這是CS 101。這些不是重點——雖然,細(xì)節(jié)非常重要。
16:00 對我而言,我真正希望能在一起工作的人,他們的標(biāo)志是有好的品位,怎么說呢。。。我舉這個其實不相關(guān)的、愚蠢的例子,因為它太小了。好的品位要比這些范圍大得多。好的品位是關(guān)于真的能看見大格局,并且本能地知道做事情的正確方式。
16:23 CA: 好的,所以我們把這些卡片都放在一起。你有品位,在某種程度上,這對于軟件界人士意義深刻。你是——
16:32 (滿堂歡笑)
16:34 LT: 我想它對這里的一些人意義深刻。
話題五:論遠(yuǎn)見
16:38 CA: 你是一個非常聰明的計算機(jī)程序員,同時你極端地固執(zhí)。但肯定有一些事情除外。我是說,你已經(jīng)改變了未來。你一定有能力看到那些未來的宏偉藍(lán)圖。你是一個有遠(yuǎn)見的人,對嗎?
16:52 LT: 實際上,在TED的最近兩天,我感覺略有不適,因為這里有很多眼睛盯著你,不是嗎?其實我不是一個有遠(yuǎn)見的人。我甚至沒有一個5年計劃。我是一名工程師。并且我覺得它真的——我是說——我非常開心和所有人一起,盯著云彩和星星,說,“我想要去那兒。” 但是我看了看地面,我只想去修復(fù)那些坑,它們就在我眼前,我快要掉下去了。我就是這樣的人。
17:21(歡呼)
17:22(鼓掌)
話題六:評論特斯拉和愛迪生
17:24 CA: 上周我們談到的兩個家伙。你如何評價他們?
17:31 LT: 好的,其實這是科技界的老段子,對比特斯拉和愛迪生,特斯拉是有遠(yuǎn)見的科學(xué)家、有瘋狂創(chuàng)意的人。人們愛特斯拉。我是說,特別那些以特斯拉冠名公司的人們。
17:47 (滿堂歡笑)
17:50 另外一個人是愛迪生,是一個常常被批評為乏味的人,并且——我的意思是,他最有名的格言,“天才等于百分之一的靈感加上百分之九十九的汗水。” 而且我是屬于愛迪生陣營的,盡管人們不是一貫都喜歡他。因為如果你的確對比這兩個人,特斯拉在那個時代抓住了一些創(chuàng)意,但是,是誰實際上改變了這個世界? 愛迪生也許不是一個很好的人,他做過一系列事情——他也許沒有那么高智商,也不夠有遠(yuǎn)見。但是我想我更像愛迪生而不是特斯拉。
18:36
CA: 我們TED本周的主題是夢想——宏偉的,醒目的,大膽的夢想。你還真是這些夢想的解毒藥。(藥不能停啊,哈哈)
18:42 LT: 我正在試圖給這些夢想降降溫,是的。
18:44 CA: 非常好。
18:45 (滿堂歡笑) 我們熱烈歡迎你,熱烈歡迎你。
話題七:開源&商業(yè)&未來
18:50 類似Google和許多其它一些公司,利用你的軟件,據(jù)估算,大概賺了 10億美元。這惹你生氣了嗎?
18:56 LT: 不。不,它沒有惹我生氣,有幾個原因。其中之一是,我干得很好。我真的干得很好。
19:03 但是其它原因是——我是說,如果沒有全力投入到開源,并且真得放開手,Linux永遠(yuǎn)也不可能是現(xiàn)在的樣子。并且它帶來的一些經(jīng)歷我真的不喜歡,如公眾談話,但是與此同時,這也是一種經(jīng)驗。相信我。因此,有一系列事情的發(fā)生是我保持快樂,我想我做出了正確的選擇。
19:29 CA: 開源的理念——就是這些——現(xiàn)在開源的理念在全世界都充分發(fā)揮作用了嗎,或者說它還可以做得更多,還有哪些事是可以做的?
19:43 LT: 關(guān)于這方面,我有兩個想法。時至今日,開源機(jī)制能夠運轉(zhuǎn)良好,其中一個緣故是代碼可以將所有的事情都轉(zhuǎn)化為黑和白。通常這樣利于作出決定,這樣做是正確地,這樣做是不好的。代碼要么執(zhí)行,要么不執(zhí)行,因此意味著更少的爭議空間。盡管我們有許多爭議,對嗎?在很多其它領(lǐng)域——我是說,人們討論的關(guān)于開明政治之類的事情——有時就很難說得這么簡單,是的,你也能將同樣的原則應(yīng)用到其它領(lǐng)域的一些地方,因為黑色和白色一起不只是變成灰色,而是很多不同的顏色。
20:35 很顯然,開源理念在科學(xué)領(lǐng)域已經(jīng)掀起一場復(fù)古運動。科學(xué)一開始就是這樣的。但是后來科學(xué)變得非常封閉,伴隨著非常昂貴的期刊以及其它一些東西。但是開源理念在科學(xué)領(lǐng)域掀起了一場復(fù)古運動,比如arXiv和open journals(開放、自由的學(xué)術(shù)成果發(fā)布平臺)。Wikipedia 也改變了這個世界。還有其它的很多案例,我相信將來還會有更多。
21:04 CA:但是你不是一個有遠(yuǎn)見的人,所以還輪不到你來給它們命名。
21:08 LT: 不是的。
21:09 (滿堂歡笑)
21:10 該輪到你們來創(chuàng)造它,對嗎?
21:12 CA: 的確如此
21:13 Linus Torvalds, 感謝你對 Linux ,對互聯(lián)網(wǎng)的貢獻(xiàn),感謝你對Android的貢獻(xiàn)。
21:19 感謝你來到TED ,感謝你的坦率,感謝你的真誠。
21:22 LT: 謝謝。
21:23 (鼓掌)
Linus Torvalds: The mind behind Linux
Filmed February 2016 at TED2016
0:12
Chris Anderson: This is such a strange thing. Your software, Linux, is in millions of computers, it probably powers much of the Internet. And I think that there are, like, a billion and a half active Android devices out there. Your software is in every single one of them. It's kind of amazing. You must have some amazing software headquarters driving all this. That's what I thought -- and I was shocked when I saw a picture of it. I mean, this is -- this is the Linux world headquarters.
0:42
(Laughter)
0:44
(Applause)
0:48
Linus Torvalds: It really doesn't look like much. And I have to say, the most interesting part in this picture, that people mostly react to, is the walking desk. It is the most interesting part in my office and I'm not actually using it anymore. And I think the two things are related.
1:08
The way I work is ... I want to not have external stimulation. You can kind of see, on the walls are this light green. I'm told that at mental institutions they use that on the walls.
1:26
(Laughter)
1:28
It's like a calming color, it's not something that really stimulates you.
1:34
What you can't see is the computer here, you only see the screen, but the main thing I worry about in my computer is -- it doesn't have to be big and powerful, although I like that -- it really has to be completely silent. I know people who work for Google and they have their own small data center at home, and I don't do that. My office is the most boring office you'll ever see. And I sit there alone in the quiet. If the cat comes up, it sits in my lap. And I want to hear the cat purring, not the sound of the fans in the computer.
2:12
CA: So this is astonishing, because working this way, you're able to run this vast technology empire -- it is an empire -- so that's an amazing testament to the power of open source.
2:24
Tell us how you got to understand open source and how it lead to the development of Linux.
2:32
LT: I mean, I still work alone. Really -- I work alone in my house, often in my bathrobe. When a photographer shows up, I dress up, so I have clothes on.
2:42
(Laughter)
2:44
And that's how I've always worked. I mean, this was how I started Linux, too. I did not start Linux as a collaborative project. I started it as one in a series of many projects I had done at the time for myself, partly because I needed the end result, but even more because I just enjoyed programming. So it was about the end of the journey, which, 25 years later, we still have not reached. But it was really about the fact that I was looking for a project on my own and there was no open source, really, on my radar at all.
3:20
And what happened is ... the project grows and becomes something you want to show off to people. Really, this is more of a, "Wow, look at what I did!" And trust me -- it was not that great back then. I made it publicly available, and it wasn't even open source at that point. At that point it was source that was open, but there was no intention behind using the kind of open-source methodology that we think of today to improve it. It was more like, "Look, I've been working on this for half a year, I'd love to have comments."
3:59
And other people approached me. At the University of Helsinki, I had a friend who was one of the open source -- it was called mainly "free software" back then -- and he actually introduced me to the notion that, hey, you can use these open-source licenses that had been around. And I thought about it for a while. I was actually worried about the whole commercial interests coming in. I mean, that's one of the worries I think most people who start out have, is that they worry about somebody taking advantage of their work, right? And I decided, "What the hell?" And --
4:43
CA: And then at some point, someone contributed some code that you thought, "Wow, that really is interesting, I would not have thought of that. This could actually improve this."
4:52
LT: It didn't even start by people contributing code, it was more that people started contributing ideas. And just the fact that somebody else takes a look at your project -- and I'm sure it's true of other things, too, but it's definitely true in code -- is that somebody else takes an interest in your code, looks at it enough to actually give you feedback and give you ideas. That was a huge thing for me.
5:16
I was 21 at the time, so I was young, but I had already programmed for half my life, basically. And every project before that had been completely personal and it was a revelation when people just started commenting, started giving feedback on your code. And even before they started giving code back, that was, I think, one of the big moments where I said, "I love other people!" Don't get me wrong -- I'm actually not a people person.
5:45
(Laughter)
5:48
I don't really love other people --
5:51
(Laughter)
5:52
But I love computers, I love interacting with other people on email, because it kind of gives you that buffer. But I do love other people who comment and get involved in my project. And it made it so much more.
6:08
CA: So was there a moment when you saw what was being built and it suddenly started taking off, and you thought, "Wait a sec, this actually could be something huge, not just a personal project that I'm getting nice feedback on, but a kind of explosive development in the whole technology world"?
6:24
LT: Not really. I mean, the big point for me, really, was not when it was becoming huge, it was when it was becoming little. The big point for me was not being alone and having 10, maybe 100 people being involved -- that was a big point. Then everything else was very gradual. Going from 100 people to a million people is not a big deal -- to me. Well, I mean, maybe it is if you're --
6:50
(Laughter)
6:51
If you want to sell your result then it's a huge deal -- don't get me wrong. But if you're interested in the technology and you're interested in the project, the big part was getting the community. Then the community grew gradually. And there's actually not a single point where I went like, "Wow, that just took off!" because it -- I mean -- it took a long time, relatively.
7:12
CA: So all the technologists that I talk to really credit you with massively changing their work. And it's not just Linux, it's this thing called Git, which is this management system for software development. Tell us briefly about that and your role in that.
7:29
LT: So one of the issues we had, and this took a while to start to appear, is when you ... When you grow from having 10 people or 100 people working on a project to having 10,000 people, which -- I mean, right now we're in the situation where just on the kernel, we have 1,000 people involved in every single release and that's every two months, roughly two or three months. Some of those people don't do a lot. There's a lot of people who make small, small changes.
8:00
But to maintain this, the scale changes how you have to maintain it. And we went through a lot of pain. And there are whole projects that do only source-code maintenance. CVS is the one that used to be the most commonly used, and I hated CVS with a passion and refused to touch it and tried something else that was radical and interesting and everybody else hated.
8:30
CA: (Laughs)
8:31
LT: And we were in this bad spot, where we had thousands of people who wanted to participate, but in many ways, I was the kind of break point, where I could not scale to the point where I could work with thousands of people.
8:46
So Git is my second big project, which was only created for me to maintain my first big project. And this is literally how I work. I don't code for -- well, I do code for fun -- but I want to code for something meaningful so every single project I've ever done has been something I needed and --
9:08
CA: So really, both Linux and Git kind of arose almost as an unintended consequence of your desire not to have to work with too many people.
9:17
LT: Absolutely. Yes.
9:18
(Laughter)
9:19
CA: That's amazing. LT: Yeah.
9:21
(Applause)
9:22
And yet, you're the man who's transformed technology not just once but twice, and we have to try and understand why it is. You've given us some clues, but ... Here's a picture of you as a kid, with a Rubik's Cube. You mentioned that you've been programming since you were like 10 or 11, half your life.
9:42
Were you this sort of computer genius, you know, übernerd, were you the star at school who could do everything? What were you like as a kid?
9:51
LT: Yeah, I think I was the prototypical nerd. I mean, I was ... I was not a people person back then. That's my younger brother. I was clearly more interested in the Rubik's Cube than my younger brother.
10:05
(Laughter)
10:06
My younger sister, who's not in the picture, when we had family meetings -- and it's not a huge family, but I have, like, a couple of cousins -- she would prep me beforehand. Like, before I stepped into the room she would say, "OK. That's so-and-so ..." Because I was not -- I was a geek. I was into computers, I was into math, I was into physics. I was good at that. I don't think I was particularly exceptional. Apparently, my sister said that my biggest exceptional quality was that I would not let go.
10:46
CA: OK, so let's go there, because that's interesting. You would not let go. So that's not about being a geek and being smart, that's about being ... stubborn?
10:56
LT: That's about being stubborn. That's about, like, just starting something and not saying, "OK, I'm done, let's do something else -- Look: shiny!"
11:09
And I notice that in many other parts in my life, too. I lived in Silicon Valley for seven years. And I worked for the same company, in Silicon Valley, for the whole time. That is unheard of. That's not how Silicon Valley works. The whole point of Silicon Valley is that people jump between jobs to kind of mix up the pot. And that's not the kind of person I am.
11:36
CA: But during the actual development of Linux itself, that stubbornness sometimes brought you in conflict with other people. Talk about that a bit. Was that essential to sort of maintain the quality of what was being built? How would you describe what happened?
11:53
LT: I don't know if it's essential. Going back to the "I'm not a people person," -- sometimes I'm also ... shall we say, "myopic" when it comes to other people's feelings, and that sometimes makes you say things that hurt other people. And I'm not proud of that.
12:17
(Applause)
12:18
But, at the same time, it's -- I get people who tell me that I should be nice. And then when I try to explain to them that maybe you're nice, maybe you should be more aggressive, they see that as me being not nice.
12:37
(Laughter)
12:39
What I'm trying to say is we are different. I'm not a people person; it's not something I'm particularly proud of, but it's part of me. And one of the things I really like about open source is it really allows different people to work together. We don't have to like each other -- and sometimes we really don't like each other. Really -- I mean, there are very, very heated arguments. But you can, actually, you can find things that -- you don't even agree to disagree, it's just that you're interested in really different things.
13:12
And coming back to the point where I said earlier that I was afraid of commercial people taking advantage of your work, it turned out, and very quickly turned out, that those commercial people were lovely, lovely people. And they did all the things that I was not at all interested in doing, and they had completely different goals. And they used open source in ways that I just did not want to go. But because it was open source they could do it, and it actually works really beautifully together.
13:41
And I actually think it works the same way. You need to have the people-people, the communicators, the warm and friendly people who like --
13:49
(Laughter)
13:51
really want to hug you and get you into the community. But that's not everybody. And that's not me. I care about the technology. There are people who care about the UI. I can't do UI to save my life. I mean, if I was stranded on an island and the only way to get off that island was the make a pretty UI, I'd die there.
14:11
(Laughter)
14:12
So there's different kinds of people, and I'm not making excuses, I'm trying to explain.
14:17
CA: Now, when we talked last week, you talked about some other trait that you have, which I found really interesting. It's this idea called taste.
14:24
And I've just got a couple of images here. I think this is an example of not particularly good taste in code, and this one is better taste, which one can immediately see. What is the difference between these two?
14:39
LT: So this is -- How many people here actually have coded?
14:44
CA: Oh my goodness.
14:46
LT: So I guarantee you, everybody who raised their hand, they have done what's called a singly-linked list. And it's taught -- This, the first not very good taste approach, is basically how it's taught to be done when you start out coding. And you don't have to understand the code.
15:03
The most interesting part to me is the last if statement. Because what happens in a singly-linked list -- this is trying to remove an existing entry from a list -- and there's a difference between if it's the first entry or whether it's an entry in the middle. Because if it's the first entry, you have to change the pointer to the first entry. If it's in the middle, you have to change the pointer of a previous entry. So they're two completely different cases.
15:32
CA: And that's better.
15:33
LT: And this is better. It does not have the if statement. And it doesn't really matter -- I don't want you understand why it doesn't have the if statement, but I want you to understand that sometimes you can see a problem in a different way and rewrite it so that a special case goes away and becomes the normal case. And that's good code. But this is simple code. This is CS 101. This is not important -- although, details are important.
16:00
To me, the sign of people I really want to work with is that they have good taste, which is how ... I sent you this stupid example that is not relevant because it's too small. Good taste is much bigger than this. Good taste is about really seeing the big patterns and kind of instinctively knowing what's the right way to do things.
16:23
CA: OK, so we're putting the pieces together here now. You have taste, in a way that's meaningful to software people. You're --
16:32
(Laughter)
16:34
LT: I think it was meaningful to some people here.
16:38
CA: You're a very smart computer coder, and you're hellish stubborn. But there must be something else. I mean, you've changed the future. You must have the ability of these grand visions of the future. You're a visionary, right?
16:52
LT: I've actually felt slightly uncomfortable at TED for the last two days, because there's a lot of vision going on, right? And I am not a visionary. I do not have a five-year plan. I'm an engineer. And I think it's really -- I mean -- I'm perfectly happy with all the people who are walking around and just staring at the clouds and looking at the stars and saying, "I want to go there." But I'm looking at the ground, and I want to fix the pothole that's right in front of me before I fall in. This is the kind of person I am.
17:21
(Cheers)
17:22
(Applause)
17:24
CA: So you spoke to me last week about these two guys. Who are they and how do you relate to them?
17:31
LT: Well, so this is kind of cliché in technology, the whole Tesla versus Edison, where Tesla is seen as the visionary scientist and crazy idea man. And people love Tesla. I mean, there are people who name their companies after him.
17:47
(Laughter)
17:50
The other person there is Edison, who is actually often vilified for being kind of pedestrian and is -- I mean, his most famous quote is, "Genius is one percent inspiration and 99 percent perspiration." And I'm in the Edison camp, even if people don't always like him. Because if you actually compare the two, Tesla has kind of this mind grab these days, but who actually changed the world? Edison may not have been a nice person, he did a lot of things -- he was maybe not so intellectual, not so visionary. But I think I'm more of an Edison than a Tesla.
18:36
CA: So our theme at TED this week is dreams -- big, bold, audacious dreams. You're really the antidote to that.
18:42
LT: I'm trying to dial it down a bit, yes.
18:44
CA: That's good.
18:45
(Laughter) We embrace you, we embrace you.
18:50
Companies like Google and many others have made, arguably, like, billions of dollars out of your software. Does that piss you off?
18:56
LT: No. No, it doesn't piss me off for several reasons. And one of them is, I'm doing fine. I'm really doing fine.
19:03
But the other reason is -- I mean, without doing the whole open source and really letting go thing, Linux would never have been what it is. And it's brought experiences I don't really enjoy, public talking, but at the same time, this is an experience. Trust me. So there's a lot of things going on that make me a very happy man and thinking I did the right choices.
19:29
CA: Is the open source idea -- this is, I think we'll end here -- is the open source idea fully realized now in the world, or is there more that it could go, are there more things that it could do?
19:43
LT: So, I'm of two minds there. I think one reason open source works so well in code is that at the end of the day, code tends to be somewhat black and white. There's often a fairly good way to decide, this is done correctly and this is not done well. Code either works or it doesn't, which means that there's less room for arguments. And we have arguments despite this, right? In many other areas -- I mean, people have talked about open politics and things like that -- and it's really hard sometimes to say that, yes, you can apply the same principles in some other areas just because the black and white turns into not just gray, but different colors.
20:35
So, obviously open source in science is making a comeback. Science was there first. But then science ended up being pretty closed, with very expensive journals and some of that going on. And open source is making a comeback in science, with things like arXiv and open journals. Wikipedia changed the world, too. So there are other examples, I'm sure there are more to come.
21:04
CA: But you're not a visionary, and so it's not up to you to name them.
21:08
LT: No.
21:09
(Laughter)
21:10
It's up to you guys to make them, right?
21:12
CA: Exactly.
21:13
Linus Torvalds, thank you for Linux, thank you for the Internet, thank you for all those Android phones.
21:19
Thank you for coming here to TED and revealing so much of yourself.
21:22
LT: Thank you.
21:23
(Applause)
表情包