是什麼幹掉了 Linux 桌麵?
掛載 /home 目錄的硬盤壞掉了,所以我必須更換一塊硬盤。由於機器在我桌子底下,我必須拔掉所有的線,把機器拿出來,更換硬盤,再把所有東西插上去。這是個標準流程。插上電源,插上鍵盤,插上鼠標,但是當輪到音頻線的時候,我跳過了。為什麼需要音頻線呢?萬一又有什麼東西壞了,我還得再拔一次。
前幾天我跟連線雜誌的編輯 Klint Finley 聊天。他寫了一篇文章叫做 《OSX Killed Linux》。最開始的話題是關於我對 Gnome3,Unity 還有 Xfte 這幾個 shell 之間的比較。
我個人挺滿意 Gnome Shell,我覺得 Gnome 團隊做了很偉大的工作,特別是 Gnome 的設計師可以調整 UI 並做一些擴展而不需要祈求別人去為他們寫代碼。
Linux 桌麵錯在哪裏?
在我看來,Linux 桌麵的問題根源是開發者文化。Linus,除了作為內核開發者以外,還在很多年以前設定了社區的基調。他忽略了設備驅動的兼容性。從內核的角度來講,他們也許很有理由這麼做,並且強製業界按照他們的規則來玩。但是做桌麵的開發者並沒有如此強大的能力。
社區的態度總是帶有工程師的完美主義:我們不希望被廢除的代碼還在代碼樹中,我們不想一直保留糟糕的設計,我們需要純粹的漂亮的設計……
我們做到了。
我們廢除 API 因為有更好的實現方式。我們移除功能,因為這個實現已經不再有效,理由可以是安全漏洞,也可以是不符合我們新的風格。
我們替代了操作係統的核心組件,卻沒有很好的過渡方法。我們引入了兼容層,但卻不能很好的工作,或者沒有人維護。當我們麵對“this does not work”這樣的問題的時候,我們的回答是“you are doing it wrong”。
還有一個問題是沒有任何兩個 Linux 的發行版一致同意哪些核心組件是必須的。要麼就是計劃和步調不一致,要麼就是重複實現相同的功能。
Linux 內核標準化的努力始終沒有成功。假如你是領先的發行版,那麼不兼容就是你的競爭力,是你獲取市場份額的武器的,你會自廢武功麼?
總結:a. 事情改變的太快;b. 不同發行版的不兼容。
這兩點破壞了整個生態係統,第三方的開發者不願意為 Linux 桌麵開發軟件。你會盡最大的能力支持最流行的發行版,甚至最流行的三個發行版。到最後你發現六個月後你的軟件不工作了。
支持 Linux 桌麵對很多獨立開發者來說門檻非常高。
到目前為止,在 Linux 世界裏的我們依然堅信我們可以通過開源的方式創造一切,例如 spreadsheets,文字處理工具,設計工具等等。我們做的還不錯。
Linux 是軟件包管理的先鋒實踐者,包括大部分的高級軟件更新係統。從我們的目標和文化來講,我們做的不錯。
但是我們忽略了大局。我們在這個過程中疏遠了所有第三方的開發者。像 Apple AppStore 這樣的生態係統在目前的 Linux 上是不可能實現的。
OSX 的崛起
當 OSX 發布的時候,它是一個非常複雜的 Unix 係統,古老的內核,糟糕的用戶界麵,極差的兼容性。慢慢的,Apple 解決了這些問題。
實用主義者漸漸的改變了他們的目標從“an world run by open source” 改為 “the open web”。還有一些人發現每六個月折騰一次聲卡或者顯卡驅動就為了在 Linux 上看個電影不值得。人們慢慢遷移到 OSX。
很多黑客也遷移到 OSX。它是一個漂亮的 Unix,有正常工作的聲卡,PDF 閱讀器,視頻解碼器等等。很多人願意拿可配置性來換取穩定性。
作為我自己來講,我愛上了 iPhone,所以日常使用 Mac 也成為必須。作為 Linux 桌麵的一員,我為遷移到 OSX 感到了深深的罪惡感。
我們做錯了什麼
向後兼容性,以及不同發行版之間的兼容性。這不是一個有趣的問題,沒有人願意去做這樣的工作。每個人都想創新,想要創造 Linux 的下一個重大功能。
所以 Linux 就成了理想主義者的樂園,用來創造最好的係統,而不用擔心枯燥的細節例如向後兼容性。
與此同時,你仍然可以在 Windows 8 上運行2001年發布的 Photoshop。你也可以在 Mountain Lion 上運行老的 OSX 軟件。
在今年二月份的時候,我參加了 FOSDEM ,我的兩個好朋友非常興奮的向我介紹他們的計劃,一個新的係統,將要強製很多應用必須修改才能運行。他們有一個非常美好的願景,解決一個我不曾意識到的問題,也許沒有任何用戶在乎的問題。
從那天開始,我不在為愛上 OSX 而感到罪惡。
2012年9月2日更新
很顯然,這篇文章的標題引來了很多誤解,所以我決定說明一下。
我的這個標題的意思是:Linux 在消費者桌麵操作係統比賽中失敗了。它仍然會成為很好的工程師平台(這也是為什麼我會更換家裏電腦的硬盤)。是的,我知道很多朋友正在使用 Linux 作為桌麵,並且用的很好。
但是,我們失去了成為主流消費者係統的機會。也就是說沒有人會建議非技術人員使用安裝 Linux 的電腦(除非你有特殊的目的)。
我們曾經是有機會的。最好的機會是 Vista 失敗的那時候。但是當時我們在鬧內訌。有不少人當時寫了文章討論這個問題。
目前市麵上的 Linux 桌麵版本都是有史以來最好的版本。Ubuntu 和 Unity,Fedora 和 GnomeShell,REHL 和 Gnome 2,Debian 和 Xface 還有 KDE。我們仍然有四種不同的桌麵 API,半打流行卻又不兼容的發行版,每個發行版都有各自的輔助係統,不同的打包係統和依賴係統。
為這些快速變化的平台開發和維護應用是 非常大的挑戰。
Linux 在其他領域很成功:服務器和移動設備。但是在桌麵上我們失敗了。 Linux Hater 博客發表了一係列文章講述這個問題 Greatest Hates。
能解決這個問題的唯一的方法就是選擇一個發行版,一套組件作為基礎,廢除所有其他所有係統,所有人都為這一個 Linux 做貢獻。不論是 Canonical 的 Ubuntu, Red Hat 的 Fedora 還是 Debian,或者一個新的組合,我們都不會達成一致意見,直到世界末日。
最後更新:2017-04-02 15:14:53