2012/07/02

Linux Succeeded Thanks to Selfishness and Trust

BCC 前陣子刊載 Linus Torvalds 的訪談稿,其中有個回應如下:

@GeKaTiek

然而值得討論的是,Linus 的說法,恐怕無法為他的論點提出有力的支持。上面讀來,Linus 認為,開源之所以能貢獻於社會公益,乃是因為程子們「追求寫程式的樂趣」,然而,顯而易見的,那些待在封閉的公司當中的人,就無法追求這種樂趣麼?或者說,真的只有開源才能體現這種樂趣麼?顯然不是的。
我們其實可以從當中窺探到所謂樂趣背後的可望,應該是受人景仰。於是,自私地追求樂趣的下場,程式碼越寫越「讓人看不懂」,就好像很厲害一樣、給別人看程式碼的心態就成為「炫耀」,於是大家追逐這種自私的結果,使得程式碼的品質下降、難以維護,更關鍵的是,如同 Linus 說的,「不是只有我有這種想法」,於是沒有人真的要讀你的 code,因為「大家都想自己來」,在這種自私的驅動下,開源只會更糟,不會更好。也正因為亞當斯密看透這種驚駭的思維(別忘了,他除了《國富論》之外,還有另外一本巨著《道德情操論》)我們才能在現代發現名言的新詮釋:因為屠夫與釀酒師、麵包師父自私自利,於是我們只能吃到黑心食品。
真正推動開放世界能夠持續進步的,還是得回到本初的心意:「樂」於分享。不可諱言,因為追求分享本身帶來的樂趣,這種「自私XD」,才是促使開放能夠持續前進的動力。

Linus 並不是第一次接受訪問,他已經多次闡述「當初會在 Usenet 公佈自己作品的初衷」,我也相信當中並沒有太多了不起的念頭。當他意識到 BBC 的提問想要導引出「某種預期規劃」時,他便順勢「扯到更一邊」去,如果你了解科學研究社群的文化,就會知道開源只是必要的程序之一,它跟自私或公益都沒太大直接關係。我猜 Linus 體諒 BBC 記者並不是科學圈的人,才懶得提這段原因。

自私追求樂趣的下場,會讓程式碼越寫越亂嗎? 首先,讓自己去讀一套具有上萬行程式碼的軟體,然後試著加上自己喜歡的功能,最後問自己是否能體驗到樂趣? 答案通常是否定的。於是,大家都想自己來囉,所以開源還是只會更糟? 看看這年頭,是否每個人都想實作自己的 kernel 吧 ^^

我在好久以前問過 Eric Raymond 這個問題,他的答案至今仍然有效:軟體的品質來自程式員願意投注的心力。當程式員形成社群,願意長期投注心力時,軟體的品質就更容易獲得提昇。形成社群的關鍵,又在於「信任」,只靠少數程式員自爽來支撐的軟體,很難長期提昇品質。

比較少人去理解:同樣是開源社群,GNU/Linux/BSD 就展現很不同的文化和發展模式,光憑這個實例,就能知道開源並不是影響軟體品質的重要因素,當然,開源肯定是培養信任的重要基礎之一。進一步地看,同樣是使用 GPL 的 GNU 和 Linux,仍然呈現不同的社群文化,可以窺見 license 也只是形塑社群文化的一部份因素。Linus Torvalds 在意別人是否公平地對待 contribution,Richard Stallman 在意別人是否公平地對待 credit,顯然地,說教式地要求公平,成效總是有限。

Linus 嘴裡的「樂趣」,就是他現在仍在參與及帶領的程式員社群,他們可以在社群裡持續追求程式員的聖杯:共同累積最棒的創意和實作。時至今日,Linux kernel 大約每隔三個月推出新版,包括超過 1,000 位核心程式員的協同心力,如果每一行程式碼都要讀過,恐怕很難有樂趣可言。如果 Linux kernel 全然變成某個公司的產品,那麼這項樂趣很可能就會變質或消失。那怕你是 FSF, IBM, Apple, Linux Foundation,都不能影響這個初衷,Linus Torvalds 並不希望有個委員會來決定 kernel 的方向,他信任的是那群在意軟體品質的程式員們,同時,他也自我要求,不讓信任他的程式員們感到擔心,有天 kernel 的發展方向會被特定單位把持。它變成一個全球規模的信任關係。

No comments: