再談Android的許可證

阮一峰發表於2010-02-19

1.

兩週前,我寫了一篇《Android,開源還是封閉?》

其中有一些內容,我今天要做修正,還想談一些別的感想。

2.

在談具體的修正之前,我先來說說,那篇文章的一些情況。

那天白天,我在外面辦事,從手機上讀到Linux核心撤下所有Android程式碼的訊息,感到很震驚。晚上回家後,仔細讀完了相關報導,就一口氣寫了一些感想。寫完已經將近半夜12點。我改了幾個錯別字,直接把文章貼上網,然後就上床睡覺了。當時也沒多想,不覺得它和我的其他文章有何不同。

但是,第二天起床以後,我發現事情變得複雜了。那篇文章被轉貼到許多技術論壇和網路媒體,產生了很多回復和議論。要是早知道它會被那麼多專業開發人員讀到,我一定會寫得更謹慎。

更令我意外的是,超過半數的讀者,都在批評那篇文章。尤其是一些認識很久的朋友,也對它持負面看法。這令我反思,到底哪裡寫錯了?

節假日期間,我也在思考這個問題。下面就是一些結果。

3.

首先,我必須老老實實承認,那篇文章確實有重大錯誤。

別的不說,單單文章的標題就是錯的。我用《Android,開源還是封閉?》這樣的標題,暗示Android表面是開源系統,實質上是封閉系統。我的這種說法是錯的。

理由如下:

  * Android使用的是Apache許可證,這是一個開源許可證。

  * 它的所有原始碼都公佈在網上,你可以用來幹任何事情。

  * 對於不喜歡這個許可證的人,可以完全合法地把自己的Android程式,改為GPL許可證。

無論從表面還是從實質上看,Android都是一個開放的系統,不是封閉系統。所以,我指責Android是封閉系統,這是不正確的。

由於我把不正確的論斷作為那篇文章的基本論據,直接導致結論不可信。因此,文章遭到批評和鄙視,確實也是理所應當。

4.

不過,我的文章寫錯了,並不代表Google沒有做錯。你可以這樣想,如果Google的所作所為都是無可指責的話,那麼為什麼Linux核心開發小組會撤下它的程式碼呢?

這就是我今天想說的第二件事:Android的許可證選擇是有問題的。它的問題不在於系統是不是開放,而在於它造成了Linux的分裂。

為什麼Android分裂了Linux?

因為Google修改了Linux核心,使得Android與核心不相容。所有Android上的開源驅動,不經過修改,都無法用於核心,而Google又不願意修改。因此,核心開發小組只好把它撤下來,因為留著也沒用。

這就是Google最讓人不滿的地方。為了吸引外部程式設計師,它故意選擇Linux核心,而不是自己開發核心。但是開發出來的東西,只能用於Google的產品,不能用於核心。這種分裂行為的後果,就是把Linux社群削弱了。

為了便於思考,讓我來舉一個類比。

很久以前,有一幫很窮的程式設計師,在森林裡面打游擊、鬧革命。由於反革命力量實在太強大了,游擊隊屢戰屢敗,士氣低落。這時,有一個大佬宣佈要加入游擊隊,大家都很振奮,有了大佬的支援,革命有希望成功了。可是沒想到,大佬來了以後,宣稱他對革命的定義跟別人不一樣,要求別人跟著他鬧革命。雙方談判不成,大佬就帶走了一部分人,自己單幹了。所以,大佬加入革命以後,革命勢力反而變得更弱小了,還不如不加入呢。

同樣地,Android系統越發達,受益的只是Google和手機廠商,而不是Linux社群。後者因為程式設計師和廠商的流失,力量還會變得更加積弱。事實上,Android的推出,已經使得MaemoLiMo、以及其他基於Linux的手機系統,生存處境越發艱難。

可惜我沒有早點認識到這些。如果我從這個角度評價Android,那篇文章的錯誤就會少一些,也不會遭到那麼多反對意見了。

5.

在所有的批評中,有些不是針對那篇文章的具體內容,而是針對我個人的。

舉幾個典型的例子:

  * 他開始亂噴了!

  * 這個知道分子,又在賣弄自己不懂的東西了。

  * 此人大言不慚,就是一個不靠譜的妄人。

雖然我覺得,這些評價對我不太公平,但是我還是要謝謝這些朋友的指教。我願意虛心汲取教訓,以後寫文章一定更加嚴謹,減少錯誤。

6.

不過,我也想借這個機會澄清一些誤解。

我不知道,這些朋友是怎麼看待這個網誌的。我想問問他們,你們以為我為什麼要寫這個網誌?為了出名?為了賺錢?為了滿足虛榮心,顯示本人無所不知,很能寫?......

不,這些都不是理由。事實上,從任何利益的角度考慮,寫網誌都是很不值得的事情。一方面,這裡的任何一篇文章,寫作時間通常都需要2~6小時,而我寫了1000多篇,付出的時間和精力難以想像。另一方面,網站唯一的直接收入就是Google廣告,但是隻能剛好彌補主機和域名的費用,一點都沒有多餘。如果想出名和賺錢的話,我想一定有比這更輕鬆的方法吧。至於虛榮心,寫了這麼久,每天訪問量也只有幾千IP,我想聰明一點早該知難而退了。

我之所以還在寫,是因為我把這個網誌當作自己的學習筆記。不斷地積累新知識,思考、總結、記錄下來,令我感到一種學習的樂趣。所以,我希望大家知道一點,我的網誌首先是一個私人空間,不是公共媒體。有些人的網誌是為了向公眾發言,我的不是。

正是因為我把這裡看作一個私人筆記本,所以有時候寫作比較隨便,經常寫一些自己剛剛接觸到、沒有全面認識的東西。因為筆記裡記錄的,總是你需要學習的東西,而不是你已經學會的東西,對不對?另一方面,也是因為這是筆記,所以有時候我怕麻煩,沒有給出充分的論證和足夠的核對,就匆忙寫下自己的看法。但是,這不代表我不嚴謹和粗疏,我只是認為,個人筆記和公開發表的作品不一樣。如果是公開發表的論文,每句話都必須有依據,經得起考驗,而如果是筆記的話,那就不一定那麼嚴格了。這也是為什麼我公開發表的文章,遠遠少於網誌文章的原因之一。

當然,我不為自己的錯誤辯解,可以告訴大家,我比任何人都更嚴厲地對待自己的錯誤。我時刻願意聽取他人的批評,修正自己的錯誤,因為這是對我有利的。我只是希望大家知道,這個網誌的內容本來就不可避免地包含著錯誤,所以請不要因為文章中有錯誤,就對我這個人下評判。借用一句張五常的話,"要斬,就斬我的文章,不要斬我的人"。

7.

現在再回到Android的話題,我還有最後一點感想要說。

請先看一些網友對此次Linux核心撤下Android程式碼事件的評論:

  * Google是上市公司,它當然選擇對自己最有利的做法。

  * Linux核心是Google能找到的最便宜的核心,為什麼不用?

  * Google又沒違反License,還有什麼可說的。

  * 為什麼Android的程式碼非要回饋給Linux呢?奇怪的想法。

這些意見似乎認為Google的行為符合合約和"自利原則",因此無可指責。當然,我也同意,從這個角度看,Google沒有做錯。但是,如果換個角度,讓我們從"利他原則"的角度思考,會不會得到不一樣的結論呢?比如,Google這樣做是不是符合開源運動的理想?有沒有傷害到開源社群的利益?......

不過,我不打算在這個問題上深究下去。在一個不正義的第三世界人口大國,討論到底是"利己"重要,還是"利他"重要,實在是一個太艱難的問題。與其想要找到答案,還不如對自身命運嘆息。

令我真正憤怒的,是下面這樣的評論:

  * GPL這個病毒又作惡了!

  * 早覺得Linux像宗教。有時候在想,那個RMS駕崩了怎麼辦呢?五六十歲的人了,得個病死了很正常。

  * 我看RMS沒那麼容易掛,一般教主都是長命百歲的老妖怪。

我早就感到了,在中國的軟體業中,有一種針對自由軟體運動的仇恨。不是一般的反感,而是那種咬牙切齒、死而後快的真正仇恨。我想問問這些人,你們的仇恨是從哪裡來的?

自由軟體運動和它的創始人Richard Stallman,在沒有任何索取的前提下,向全世界無償奉獻出了高質量的軟體,全人類都受益於他們的程式碼,難道這樣的人應該被仇恨和詛咒嗎?你們的良心到哪裡去了?

自由軟體運動的理想,是讓地球上每一個人都能使用高質量的軟體,決不讓軟體成為阻擋人類自由的障礙。難道這樣的理想不值得讚美和追隨嗎?你們自己沒有這種理想,難道還想消滅別人的理想?難道你們非要把軟體做成他人的監獄,才感到心滿意足?

說到底,不過是因為自由軟體可以免費獲得,阻礙了這些人的發財夢,所以他們才會恨得這樣咬牙切齒。是的,地球上就是有這種人類,誰妨礙了他發財,他就想除掉你。只要自身的利益得到保障,他人的死活才無所謂呢。

正是由於這種自私的人的存在,才需要我們更堅定地支援自由軟體。許多人覺得Richard Stallman頑固得可笑,任何非GPL許可證的軟體一概拒絕,有必要嗎?但是你要知道,如果不是因為他這樣堅守原則,自由軟體運動絕對堅持不到今天。因為這個世界到處都是陷阱和爛泥,還有時刻準備著的陰謀家,所以你不能做一點妥協。你退讓了一步,整個陣地就全沒了。

8.

回想十年前,Windows 98正是如日中天,Windows XP即將上市,IE的市場份額超過90%,微軟公司多麼得不可一世,沒有人相信它會被擊敗。大家覺得,只要跟著微軟公司走,一定不會錯。那時的Linux,還只是很不成熟的駭客玩具,不要說桌面了,就連伺服器市場的份額也很小。那時,要是有人說,Linux一定會勝過Windows,大家都會覺得這是痴人說夢。

但是,十年過去了,發生了什麼?微軟公司依然強大,但已不是不可戰勝了;Linux已經躋身主流作業系統,裝有它的膝上型電腦在商場裡很容易買到;以Firefox為代表的開源瀏覽器,佔據了越來越多的市場份額,超過IE的時刻已經近在眼前了。這就是自由軟體的力量,不管你願意不願意,就像那副著名油畫的名字《自由引導人民》,就是這樣。

你敢想像,再過十年會發生什麼情況嗎?如果一邊是封閉軟體,另一邊是開源軟體,你賭哪一邊?相信我,跟隨自由的東西,絕對不會錯。歷史已經證明,並將繼續證明這一點。

所以,我還是要重複前一篇文章中的話:如果Android繼續走這種分裂Linux的道路,它不會成功的,不要說超過iPhone,再過二三年,它自己就會被別的開源手機作業系統取代。

(完)

相關文章