Ubuntu放棄Unity,極大打擊Linux必勝信心
這幾天看到 Ubuntu 放棄 Unity 和 Mir 開發(fā),轉(zhuǎn)向 Gnome 作為默認(rèn)桌面環(huán)境的新聞,作為一個(gè)Linux十幾年的老兵和Linux桌面的開發(fā)者,內(nèi)心頗感良多。
Ubuntu 做為全世界Linux界的桌面先驅(qū)者和創(chuàng)新者,突然宣布放棄自己多年開發(fā)的Unity, 相當(dāng)于在桌面領(lǐng)域,直接放棄了戰(zhàn)斗向微軟投降,不僅僅是Linux桌面的悲哀,更是對于全球Linux黑客堅(jiān)信Linux必勝信心的極大打擊。

曾經(jīng)的Ubuntu粉絲
我還記得2006~2007年,那時(shí)候我還在成都寫手機(jī)游戲,當(dāng)時(shí)年少輕狂的我,一直幻想自己要做最牛掰的開發(fā)者,就像科幻電影里面的黑客一樣,無所不能。那時(shí)候雖然Windows玩的很溜,但是一直都在核心技術(shù)外徘徊,不知道如何達(dá)到個(gè)人目標(biāo)。
上學(xué)的時(shí)候玩過 RedHat 6.0, 也裝過 KDE/Gnome 的桌面環(huán)境,但是系統(tǒng)中的各種問題,比如無法使用輸入法、中文字體配置很差,甚至因?yàn)轱@卡驅(qū)動(dòng)的原因都無法正常開機(jī),所以Linux對于當(dāng)年的我來說,就像神話一樣,只有頂級黑客才能玩的轉(zhuǎn)的系統(tǒng)。
直到后面用了 Ubuntu 6.10 和 Ubuntu 7.04, 當(dāng)時(shí)的Ubuntu可以說是非常驚艷,原來RedHat和SUSE在桌面端的各種細(xì)節(jié)問題一掃而光,裝上系統(tǒng)以后就可以直接用,而且還可以非常容易的安裝應(yīng)用軟件來深入學(xué)習(xí)Linux??梢哉f是Ubuntu帶領(lǐng)我真正的入門了Linux, 經(jīng)過很多年的深入學(xué)習(xí)Linux, 到后來在Linux上開發(fā)Emacs和Haskell相關(guān)的項(xiàng)目,直至后面創(chuàng)業(yè)做 deepin 操作系統(tǒng)。
從我個(gè)人來說,對Ubuntu系統(tǒng)以及背后的開發(fā)者都是懷著無比的敬畏和崇拜。
我看這么多年 Ubuntu 的發(fā)展
Ubuntu從當(dāng)年最佳的Linux桌面操作系統(tǒng)到今天宣布放棄自己研發(fā)的Unity桌面,已經(jīng)有13年歷史了,在我看來主要有以下幾個(gè)階段:
最初的驚艷
Ubuntu最初的發(fā)展目標(biāo)就是把原來Linux系統(tǒng)需要手動(dòng)操作的基本配置,比如字體、輸入法和顯卡驅(qū)動(dòng)等問題內(nèi)置到操作系統(tǒng)中,用戶不用安裝系統(tǒng)后還需要跟亂碼、中文輸入以及顯示等問題斗智斗勇, 可以說那個(gè)時(shí)代的Ubuntu是解決了當(dāng)時(shí)Linux普及的幾個(gè)重要問題,把Linux系統(tǒng)從當(dāng)時(shí)只有開發(fā)者才能玩轉(zhuǎn)的高手系統(tǒng)普及到普通的電腦愛好者就可以折騰使用。
酷炫的Compiz管理器
我相信很多Linux愛好者都驚嘆于當(dāng)年 Compiz 這個(gè)3D窗口管理器能夠達(dá)到的酷炫效果,比如3D旋轉(zhuǎn)桌面、拖動(dòng)窗口的果凍效果、一把火燒掉窗口的效果… 特別是同時(shí)代的Windows系統(tǒng)都還是非常原始的2D效果,甚至XP的窗口連窗口陰影都還沒有的時(shí)候。當(dāng)時(shí)的Linux系統(tǒng)的,特別是Compiz吸引大部分用戶去嘗試Linux系統(tǒng),即使最后大家僅僅只是因?yàn)楹闷婊蚴峭嫱?,也大大增?qiáng)了Linux系統(tǒng)的曝光率。
從另外一方面,Linux從當(dāng)年Compiz發(fā)展十年以后,反而是那些簡單特效甚至沒有特效的Linux系統(tǒng)得到最高的用戶量,原因我覺得主要有兩個(gè):
- PC這種生產(chǎn)力的工具最重要的是高效,非??犰诺奶匦чL時(shí)間用,反而會(huì)極大干擾用戶視覺,進(jìn)而影響用戶對內(nèi)容的專注力,而且時(shí)間長了也很容易引起用戶的視覺疲勞,反而是Mac那種恰到好處的輕微動(dòng)畫讓用戶感到優(yōu)雅和舒服, 這方面Linux發(fā)行版 Elementary OS 做的要好很多
- 任何操作系統(tǒng)需要長久留住用戶,還是需要靠優(yōu)秀的人機(jī)交互設(shè)計(jì)和豐富的應(yīng)用來留住用戶,操作系統(tǒng)只有給用戶帶來真實(shí)的價(jià)值,讓用戶工作更高效和生活更快樂,用戶才會(huì)長期堅(jiān)持下去,光靠酷炫的動(dòng)畫吸引,用戶一旦視覺疲勞以后,最終還是會(huì)放棄Linux, 因?yàn)橐粋€(gè)操作系統(tǒng)不能解決用戶日常遇到的各種問題,在用戶心中最多就是一個(gè)好玩的玩具而已
Gnome3 vs Unity
在 2011 年底, Gnome 發(fā)布了它最新的 Gnome3 系統(tǒng), 當(dāng)時(shí) Gnome3 以酷炫的特效加上 JavaScript 的插件體系而吸引了開源社區(qū)開發(fā)者的興趣,特別是 Gnome3 內(nèi)置 GJS 引擎,可以直接在桌面環(huán)境中編寫 JavaScript 插件后直接 reload 即可更新桌面環(huán)境的功能和視覺效果,還有吊炸天的 inspector 特性,可以直接通過鼠標(biāo)點(diǎn)擊界面后定位到對應(yīng)的代碼位置,再加上 GJS 可以從屏幕頂部打開一個(gè)類似 quake terminal 的下拉調(diào)試環(huán)境,在調(diào)試環(huán)境中直接像腳本語言那樣實(shí)時(shí)列出任何對象的屬性和方法,立即改立即生效。
上面這些開發(fā)者特性,在那時(shí)候 Google 滿天吹噓 Html5/JavaScript 的美好未來的大環(huán)境下,對于開發(fā)者有極大的誘惑力,很多開發(fā)者都奔著 Gnome3 這些類似 Web 的開發(fā)方式而去,并貢獻(xiàn)了大量好玩的插件。
在 Gnome3 之前, Ubuntu 一直都在用 Gnome2 桌面環(huán)境,其實(shí) Gnome3 在 2011 年發(fā)布之前已經(jīng)規(guī)劃了2年,從當(dāng)時(shí)的宣傳來說是下一代桌面環(huán)境,2009, 2010年Gnome3還在社區(qū)發(fā)布了大量吊炸天的預(yù)覽視頻。作為當(dāng)時(shí)桌面系統(tǒng)先鋒的 Ubuntu 也非常期待能用上 Gnome3。 而無奈 Gnome3 一次又一次跳票,最后Ubuntu實(shí)在等不及了,就在 Gnome2 桌面環(huán)境后臺(tái)服務(wù)的基礎(chǔ)之上,開發(fā)了自己的 Unity UI。
當(dāng)時(shí)社區(qū)也因?yàn)?Unity 和 Gnome3 的很多設(shè)計(jì)理念類似譴責(zé)Ubuntu在進(jìn)行分裂行為。
Unity 產(chǎn)品的特點(diǎn)主要定位在幾點(diǎn):
- HUD 的左上角搜索設(shè)計(jì),快速搜索應(yīng)用和很多插件提供的搜索結(jié)果,這一點(diǎn)和 Gnome3 的Launcher插件體系非常像,通過插件,可以搜索除應(yīng)用外的更多搜索結(jié)果(比如天氣、在線視頻、計(jì)算器結(jié)果等)
- 任務(wù)欄固定在左邊,對寬屏更加優(yōu)化,相對于程序員有更多的縱向空間
- 全局菜單,通過合并頂部欄和窗口標(biāo)題欄,進(jìn)一步節(jié)省縱向空間
我個(gè)人并不喜歡這些面向開發(fā)人員(而不是面向普通用戶)的設(shè)計(jì),但是撇開個(gè)人的主觀設(shè)計(jì)喜好外,我認(rèn)為Unity 是相對于 Gnome3 更成熟的產(chǎn)品,Unity 的很多改動(dòng)都是針對 PC 桌面系統(tǒng)的真實(shí)痛點(diǎn)來改進(jìn)的,特別是一些程序員的用戶很喜歡 Unity 諸多設(shè)計(jì)。而不是像 Gnome3 那樣一味的追求平板用戶體驗(yàn),極大降低了PC桌面用戶的習(xí)慣和易用性, Gnome3的槽點(diǎn)我后面詳細(xì)說。
不論從商業(yè)公司的獨(dú)立性發(fā)展考慮還是產(chǎn)品質(zhì)量負(fù)責(zé)的角度,我都是非常支持 Ubuntu 當(dāng)時(shí)獨(dú)立開發(fā)自己Unity 桌面環(huán)境的行為,Unity 確實(shí)在隨后的幾年證明了自己的產(chǎn)品質(zhì)量和設(shè)計(jì)細(xì)節(jié)都比 Gnome3 要好很多。
Wayland vs Mir
在 Gnome3 和 Unity 發(fā)展的同時(shí),Intel的雇員 Kristian H?gsberg 正在領(lǐng)導(dǎo)開發(fā)新的顯示服務(wù)器。Wayland相對于古老的X11來說最大的提升是,Gtk/Qt 這些圖形庫進(jìn)行圖形繪制時(shí),不用像X11那樣發(fā)送繪制消息到XServer來進(jìn)行繪制,而是由Client自己進(jìn)行圖形繪制,Wayland只用擔(dān)任圖層混合器的作用。這樣不但減少了X Client和X Server之間不必要的通訊,而且因?yàn)橛蒀lient自己進(jìn)行渲染,所以很多畫面撕裂和閃屏的現(xiàn)象從原理上就避免了。
大家可以看一下下面的兩張架構(gòu)圖來理解兩者的差別:


Wayland 因?yàn)橐獜氐讖募夹g(shù)架構(gòu)上顛覆Linux幾十年X11的渲染方式,不論從架構(gòu)設(shè)計(jì)還是代碼實(shí)現(xiàn)上都會(huì)非常復(fù)雜,不但要開發(fā)協(xié)議本身,還需要開發(fā)適合Wayland的混合器和窗口管理器,最后導(dǎo)致Wayland 1.0穩(wěn)定版一再跳票。
而Ubuntu在獨(dú)立開發(fā)Unity桌面環(huán)境的同時(shí),也仿造了Wayland的架構(gòu)開發(fā)了自己的Mir顯示服務(wù)器,除了等不及Wayland穩(wěn)定之外,更重要的是Ubuntu要為了它的下一步宏偉計(jì)劃 ”Ubuntu Touch” ,按照Mark的設(shè)想,Mir不僅僅要像Wayland那樣從原理上提升Linux圖形渲染效率,而且Mir還得擔(dān)負(fù)起手機(jī)和電腦融合的使命,可以讓Ubuntu Touch的手機(jī)在插上顯示器底座時(shí),手機(jī)的應(yīng)用通過Mir的支持,可以直接在外接顯示器上顯示手機(jī)應(yīng)用窗口,最終達(dá)到“當(dāng)你手機(jī)放到底座時(shí)就是電腦,拿走就是手機(jī)”的設(shè)想。
不論Wayland還是Mir,雖然底層架構(gòu)都非常先進(jìn),但是為了兼容現(xiàn)有的X11程序,它們分別開發(fā)了 XWayland 和 XMir 用于在新的顯示服務(wù)器協(xié)議上支持現(xiàn)有的大多數(shù) X11 程序(主要是Gtk2/Qt3/Qt4開發(fā)的大多數(shù)應(yīng)用)。
具有諷刺意味的是,Wayland和Mir本來就是要解決 X11 那種不適合現(xiàn)代PC場景繁瑣的通訊協(xié)議,甚至很多開發(fā)者為了技術(shù)的潔癖都在大力安利 Wayland/Mir ,但是最后 XWayland 和 XMir 本身的兼容實(shí)現(xiàn)卻比 X11 的實(shí)現(xiàn)更加“惡心”和繁瑣,包括Mir的開發(fā)者最后都放棄 XMir 的開發(fā)。
正是因?yàn)閃ayland/Mir這樣的技術(shù)無法徹底解決和大部分原本就基于X11協(xié)議而開發(fā)的應(yīng)用的兼容性問題,最后導(dǎo)致基于Wayland/Mir開發(fā)的桌面系統(tǒng)從 ”解決渲染性能問題“ 轉(zhuǎn)變到 “無法運(yùn)行很多現(xiàn)有Linux應(yīng)用” 這一個(gè)更加讓用戶難以接受的結(jié)果。這也是后面基于Mir開發(fā)的新版Unity難產(chǎn)的重要原因。