這幾天看到 Ubuntu 放棄 Unity 和 Mir 開(kāi)發(fā),轉(zhuǎn)向 Gnome 作為默認(rèn)桌面環(huán)境的新聞,作為一個(gè)Linux十幾年的老兵和Linux桌面的開(kāi)發(fā)者,內(nèi)心頗感良多。
Ubuntu 做為全世界Linux界的桌面先驅(qū)者和創(chuàng)新者,突然宣布放棄自己多年開(kāi)發(fā)的Unity, 相當(dāng)于在桌面領(lǐng)域,直接放棄了戰(zhàn)斗向微軟投降,不僅僅是Linux桌面的悲哀,更是對(duì)于全球Linux黑客堅(jiān)信Linux必勝信心的極大打擊。
曾經(jīng)的Ubuntu粉絲
我還記得2006~2007年,那時(shí)候我還在成都寫(xiě)手機(jī)游戲,當(dāng)時(shí)年少輕狂的我,一直幻想自己要做最牛掰的開(kāi)發(fā)者,就像科幻電影里面的黑客一樣,無(wú)所不能。那時(shí)候雖然Windows玩的很溜,但是一直都在核心技術(shù)外徘徊,不知道如何達(dá)到個(gè)人目標(biāo)。
上學(xué)的時(shí)候玩過(guò) RedHat 6.0, 也裝過(guò) KDE/Gnome 的桌面環(huán)境,但是系統(tǒng)中的各種問(wèn)題,比如無(wú)法使用輸入法、中文字體配置很差,甚至因?yàn)轱@卡驅(qū)動(dòng)的原因都無(wú)法正常開(kāi)機(jī),所以Linux對(duì)于當(dāng)年的我來(lái)說(shuō),就像神話一樣,只有頂級(jí)黑客才能玩的轉(zhuǎn)的系統(tǒng)。
直到后面用了 Ubuntu 6.10 和 Ubuntu 7.04, 當(dāng)時(shí)的Ubuntu可以說(shuō)是非常驚艷,原來(lái)RedHat和Suse在桌面端的各種細(xì)節(jié)問(wèn)題一掃而光,裝上系統(tǒng)以后就可以直接用,而且還可以非常容易的安裝應(yīng)用軟件來(lái)深入學(xué)習(xí)Linux。可以說(shuō)是Ubuntu帶領(lǐng)我真正的入門(mén)了Linux, 經(jīng)過(guò)很多年的深入學(xué)習(xí)Linux, 到后來(lái)在Linux上開(kāi)發(fā)Emacs和Haskell相關(guān)的項(xiàng)目,直至后面創(chuàng)業(yè)做 deepin 操作系統(tǒng)。
從我個(gè)人來(lái)說(shuō),對(duì)Ubuntu系統(tǒng)以及背后的開(kāi)發(fā)者都是懷著無(wú)比的敬畏和崇拜。
我看這么多年 Ubuntu 的發(fā)展
Ubuntu從當(dāng)年最佳的Linux桌面操作系統(tǒng)到今天宣布放棄自己研發(fā)的Unity桌面,已經(jīng)有13年歷史了,在我看來(lái)主要有以下幾個(gè)階段:
最初的驚艷
Ubuntu最初的發(fā)展目標(biāo)就是把原來(lái)Linux系統(tǒng)需要手動(dòng)操作的基本配置,比如字體、輸入法和顯卡驅(qū)動(dòng)等問(wèn)題內(nèi)置到操作系統(tǒng)中,用戶不用安裝系統(tǒng)后還需要跟亂碼、中文輸入以及顯示等問(wèn)題斗智斗勇, 可以說(shuō)那個(gè)時(shí)代的Ubuntu是解決了當(dāng)時(shí)Linux普及的幾個(gè)重要問(wèn)題,把Linux系統(tǒng)從當(dāng)時(shí)只有開(kāi)發(fā)者才能玩轉(zhuǎn)的高手系統(tǒng)普及到普通的電腦愛(ài)好者就可以折騰使用。
酷炫的Compiz管理器
我相信很多Linux愛(ài)好者都驚嘆于當(dāng)年 Compiz 這個(gè)3D窗口管理器能夠達(dá)到的酷炫效果,比如3D旋轉(zhuǎn)桌面、拖動(dòng)窗口的果凍效果、一把火燒掉窗口的效果... 特別是同時(shí)代的Windows系統(tǒng)都還是非常原始的2D效果,甚至XP的窗口連窗口陰影都還沒(méi)有的時(shí)候。當(dāng)時(shí)的Linux系統(tǒng)的,特別是Compiz吸引大部分用戶去嘗試Linux系統(tǒng),即使最后大家僅僅只是因?yàn)楹闷婊蚴峭嫱妫泊蟠笤鰪?qiáng)了Linux系統(tǒng)的曝光率。
從另外一方面,Linux從當(dāng)年Compiz發(fā)展十年以后,反而是那些簡(jiǎn)單特效甚至沒(méi)有特效的Linux系統(tǒng)得到最高的用戶量,原因我覺(jué)得主要有兩個(gè):
- PC這種生產(chǎn)力的工具最重要的是高效,非常酷炫的特效長(zhǎng)時(shí)間用,反而會(huì)極大干擾用戶視覺(jué),進(jìn)而影響用戶對(duì)內(nèi)容的專(zhuān)注力,而且時(shí)間長(zhǎng)了也很容易引起用戶的視覺(jué)疲勞,反而是Mac那種恰到好處的輕微動(dòng)畫(huà)讓用戶感到優(yōu)雅和舒服, 這方面Linux發(fā)行版 Elementary OS 做的要好很多
- 任何操作系統(tǒng)需要長(zhǎng)久留住用戶,還是需要靠?jī)?yōu)秀的人機(jī)交互設(shè)計(jì)和豐富的應(yīng)用來(lái)留住用戶,操作系統(tǒng)只有給用戶帶來(lái)真實(shí)的價(jià)值,讓用戶工作更高效和生活更快樂(lè),用戶才會(huì)長(zhǎng)期堅(jiān)持下去,光靠酷炫的動(dòng)畫(huà)吸引,用戶一旦視覺(jué)疲勞以后,最終還是會(huì)放棄Linux, 因?yàn)橐粋€(gè)操作系統(tǒng)不能解決用戶日常遇到的各種問(wèn)題,在用戶心中最多就是一個(gè)好玩的玩具而已
Gnome3 vs Unity
在 2011 年底, Gnome 發(fā)布了它最新的 Gnome3 系統(tǒng), 當(dāng)時(shí) Gnome3 以酷炫的特效加上 JavaScript 的插件體系而吸引了開(kāi)源社區(qū)開(kāi)發(fā)者的興趣,特別是 Gnome3 內(nèi)置 GJS 引擎,可以直接在桌面環(huán)境中編寫(xiě) JavaScript 插件后直接 reload 即可更新桌面環(huán)境的功能和視覺(jué)效果,還有吊炸天的 inspector 特性,可以直接通過(guò)鼠標(biāo)點(diǎn)擊界面后定位到對(duì)應(yīng)的代碼位置,再加上 GJS 可以從屏幕頂部打開(kāi)一個(gè)類(lèi)似 quake terminal 的下拉調(diào)試環(huán)境,在調(diào)試環(huán)境中直接像腳本語(yǔ)言那樣實(shí)時(shí)列出任何對(duì)象的屬性和方法,立即改立即生效。
上面這些開(kāi)發(fā)者特性,在那時(shí)候 Google 滿天吹噓 Html5/JavaScript 的美好未來(lái)的大環(huán)境下,對(duì)于開(kāi)發(fā)者有極大的誘惑力,很多開(kāi)發(fā)者都奔著 Gnome3 這些類(lèi)似 Web 的開(kāi)發(fā)方式而去,并貢獻(xiàn)了大量好玩的插件。
在 Gnome3 之前, Ubuntu 一直都在用 Gnome2 桌面環(huán)境,其實(shí) Gnome3 在 2011 年發(fā)布之前已經(jīng)規(guī)劃了2年,從當(dāng)時(shí)的宣傳來(lái)說(shuō)是下一代桌面環(huán)境,2009, 2010年Gnome3還在社區(qū)發(fā)布了大量吊炸天的預(yù)覽視頻。作為當(dāng)時(shí)桌面系統(tǒng)先鋒的 Ubuntu 也非常期待能用上 Gnome3。 而無(wú)奈 Gnome3 一次又一次跳票,最后Ubuntu實(shí)在等不及了,就在 Gnome2 桌面環(huán)境后臺(tái)服務(wù)的基礎(chǔ)之上,開(kāi)發(fā)了自己的 Unity UI。
當(dāng)時(shí)社區(qū)也因?yàn)?Unity 和 Gnome3 的很多設(shè)計(jì)理念類(lèi)似譴責(zé)Ubuntu在進(jìn)行分裂行為。
Unity 產(chǎn)品的特點(diǎn)主要定位在幾點(diǎn):
- HUD 的左上角搜索設(shè)計(jì),快速搜索應(yīng)用和很多插件提供的搜索結(jié)果,這一點(diǎn)和 Gnome3 的Launcher插件體系非常像,通過(guò)插件,可以搜索除應(yīng)用外的更多搜索結(jié)果(比如天氣、在線視頻、計(jì)算器結(jié)果等)
- 任務(wù)欄固定在左邊,對(duì)寬屏更加優(yōu)化,相對(duì)于程序員有更多的縱向空間
- 全局菜單,通過(guò)合并頂部欄和窗口標(biāo)題欄,進(jìn)一步節(jié)省縱向空間
我個(gè)人并不喜歡這些面向開(kāi)發(fā)人員(而不是面向普通用戶)的設(shè)計(jì),但是撇開(kāi)個(gè)人的主觀設(shè)計(jì)喜好外,我認(rèn)為Unity 是相對(duì)于 Gnome3 更成熟的產(chǎn)品,Unity 的很多改動(dòng)都是針對(duì) PC 桌面系統(tǒng)的真實(shí)痛點(diǎn)來(lái)改進(jìn)的,特別是一些程序員的用戶很喜歡 Unity 諸多設(shè)計(jì)。而不是像 Gnome3 那樣一味的追求平板用戶體驗(yàn),極大降低了PC桌面用戶的習(xí)慣和易用性, Gnome3的槽點(diǎn)我后面詳細(xì)說(shuō)。
不論從商業(yè)公司的獨(dú)立性發(fā)展考慮還是產(chǎn)品質(zhì)量負(fù)責(zé)的角度,我都是非常支持 Ubuntu 當(dāng)時(shí)獨(dú)立開(kāi)發(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)開(kāi)發(fā)新的顯示服務(wù)器。Wayland相對(duì)于古老的X11來(lái)說(shuō)最大的提升是,Gtk/Qt 這些圖形庫(kù)進(jìn)行圖形繪制時(shí),不用像X11那樣發(fā)送繪制消息到XServer來(lái)進(jìn)行繪制,而是由Client自己進(jìn)行圖形繪制,Wayland只用擔(dān)任圖層混合器的作用。這樣不但減少了X Client和X Server之間不必要的通訊,而且因?yàn)橛蒀lient自己進(jìn)行渲染,所以很多畫(huà)面撕裂和閃屏的現(xiàn)象從原理上就避免了。
大家可以看一下下面的兩張架構(gòu)圖來(lái)理解兩者的差別:
Wayland 因?yàn)橐獜氐讖募夹g(shù)架構(gòu)上顛覆Linux幾十年X11的渲染方式,不論從架構(gòu)設(shè)計(jì)還是代碼實(shí)現(xiàn)上都會(huì)非常復(fù)雜,不但要開(kāi)發(fā)協(xié)議本身,還需要開(kāi)發(fā)適合Wayland的混合器和窗口管理器,最后導(dǎo)致Wayland 1.0穩(wěn)定版一再跳票。
而Ubuntu在獨(dú)立開(kāi)發(fā)Unity桌面環(huán)境的同時(shí),也仿造了Wayland的架構(gòu)開(kāi)發(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)用通過(guò)Mir的支持,可以直接在外接顯示器上顯示手機(jī)應(yīng)用窗口,最終達(dá)到“當(dāng)你手機(jī)放到底座時(shí)就是電腦,拿走就是手機(jī)”的設(shè)想。
不論Wayland還是Mir,雖然底層架構(gòu)都非常先進(jìn),但是為了兼容現(xiàn)有的X11程序,它們分別開(kāi)發(fā)了 XWayland 和 XMir 用于在新的顯示服務(wù)器協(xié)議上支持現(xiàn)有的大多數(shù) X11 程序(主要是Gtk2/Qt3/Qt4開(kāi)發(fā)的大多數(shù)應(yīng)用)。
具有諷刺意味的是,Wayland和Mir本來(lái)就是要解決 X11 那種不適合現(xiàn)代PC場(chǎng)景繁瑣的通訊協(xié)議,甚至很多開(kāi)發(fā)者為了技術(shù)的潔癖都在大力安利 Wayland/Mir ,但是最后 XWayland 和 XMir 本身的兼容實(shí)現(xiàn)卻比 X11 的實(shí)現(xiàn)更加“惡心”和繁瑣,包括Mir的開(kāi)發(fā)者最后都放棄 XMir 的開(kāi)發(fā)。
正是因?yàn)閃ayland/Mir這樣的技術(shù)無(wú)法徹底解決和大部分原本就基于X11協(xié)議而開(kāi)發(fā)的應(yīng)用的兼容性問(wèn)題,最后導(dǎo)致基于Wayland/Mir開(kāi)發(fā)的桌面系統(tǒng)從 ”解決渲染性能問(wèn)題“ 轉(zhuǎn)變到 “無(wú)法運(yùn)行很多現(xiàn)有Linux應(yīng)用” 這一個(gè)更加讓用戶難以接受的結(jié)果。這也是后面基于Mir開(kāi)發(fā)的新版Unity難產(chǎn)的重要原因。
Ubuntu Touch
就像每一個(gè)程序員都有一個(gè)黑客夢(mèng)一樣,每一個(gè)Linux開(kāi)發(fā)者都希望能用上純粹的Linux手機(jī)操作系統(tǒng),特別是Linux技術(shù)圈領(lǐng)域,大家更希望有一個(gè)面向開(kāi)發(fā)者可玩性更強(qiáng)的Linux手機(jī)操作系統(tǒng)。
Mark從2011年宣布開(kāi)發(fā)Ubuntu Touch到2015年第一只搭載Ubuntu的智能手機(jī)在歐洲上市,Ubuntu把大多數(shù)主力開(kāi)發(fā)都投入到Ubuntu Touch手機(jī)操作系統(tǒng)的開(kāi)發(fā)中,整整4年,世界上最好的Linux桌面開(kāi)發(fā)團(tuán)隊(duì)把4年的時(shí)間浪費(fèi)在開(kāi)發(fā)一個(gè)在PC、手機(jī)、平板和電視上擁有強(qiáng)迫癥般統(tǒng)一界面的Unity上,而且希望Ubuntu Touch能夠占領(lǐng)低端的智能手機(jī)操作系統(tǒng)市場(chǎng),或者像Mark說(shuō)的那樣在Android外給世界另外一個(gè)選擇。
這4年的時(shí)間,因?yàn)橹髁﹂_(kāi)發(fā)Ubuntu Touch的原因,Ubuntu桌面操作系統(tǒng)從原來(lái)的高速創(chuàng)新到鮮有改動(dòng),往往版本的發(fā)布就是軟件倉(cāng)庫(kù)更新加上壁紙更新就發(fā)布新版了,不再像原來(lái)一樣,每個(gè)版本都來(lái)易用性的提升和功能增強(qiáng)。
而且大家都知道,2011年~2015年這幾年正是安卓系統(tǒng)從起步到發(fā)展成全球移動(dòng)操作系統(tǒng)霸主的4年,Ubuntu閉門(mén)造車(chē)了4年到2015年發(fā)布第一臺(tái)Ubuntu Touch手機(jī)以來(lái),Ubuntu Touch手機(jī)在全球銷(xiāo)售慘淡,甚至無(wú)人問(wèn)津。
Ubuntu今天放棄自己開(kāi)發(fā)的Unity重要原因,就是因?yàn)閁buntu耗費(fèi)了公司所有資源在開(kāi)發(fā)一個(gè)用戶根本就不會(huì)買(mǎi)的手機(jī)操作系統(tǒng),Ubuntu Touch可以說(shuō)是Ubuntu最愚蠢的決策:
- 今天的手機(jī)和手機(jī)操作系統(tǒng)的發(fā)展就像當(dāng)年 Wintel 的PC時(shí)代一樣,芯片和硬件越來(lái)越快,硬件的快速迭代更新速度都快于軟件層面的優(yōu)化速度,就算最低端的手機(jī)性能甚至都比十幾年前電腦更快,而手機(jī)作為現(xiàn)代消費(fèi)品來(lái)說(shuō),用戶更關(guān)心的是手機(jī)是不是新款的,能否打游戲,美顏拍照功能是否更好?智能手機(jī)時(shí)代,大家不再對(duì)低端智能手機(jī)感興趣,所以“低端智能手機(jī)操作系統(tǒng)”本身就是一個(gè)偽命題
- 智能手機(jī)作為最方便的通訊和娛樂(lè)工具,能否打游戲和基本應(yīng)用是大家用一款手機(jī)最最最基本的要求了,可Ubuntu Touch不能玩游戲、不能上QQ和微信,只能打開(kāi)終端和一些網(wǎng)頁(yè)應(yīng)用,不要說(shuō)普通用戶,我想就連那些天天嚷嚷 ”我們需要一款Linux手機(jī)操作系統(tǒng)“ 的開(kāi)發(fā)者都不會(huì)用它
- 強(qiáng)迫癥般的統(tǒng)一設(shè)計(jì):在5寸大屏的手機(jī),整個(gè)任務(wù)欄切換全部在左側(cè),大家可以試一下,你在正常拿手機(jī)的情況下,能否方便的用大拇指去夠最左側(cè)的Launcher, 甚至還要在手機(jī)左側(cè)的頂部和底部上下移動(dòng)?把手指移動(dòng)到手機(jī)頂部左右移動(dòng)查看狀態(tài)欄(你的手指夠的到頂部嗎?然后再做左右運(yùn)動(dòng)?)也做為一個(gè)創(chuàng)新設(shè)計(jì)宣傳,這些反人類(lèi)的設(shè)計(jì)是我作為一個(gè)產(chǎn)品經(jīng)理非常無(wú)法忍受的,我經(jīng)常吐槽Ubuntu Touch: Ubuntu Touch的交互設(shè)計(jì)師平常要不就是把手機(jī)放到桌子上設(shè)計(jì)的(而不是單手體驗(yàn)一下),要不就是Ubuntu Touch手機(jī)是屏幕廠商開(kāi)的,Ubuntu Touch的很多交互設(shè)計(jì)都非常容易讓手機(jī)從手里面滑落
Ubuntu Touch不論從公司戰(zhàn)略、產(chǎn)品時(shí)機(jī)、應(yīng)用生態(tài)還是交互設(shè)計(jì)各方面來(lái)看都是非常愚蠢和非常失敗的產(chǎn)品,而這一切都要怪罪于Mark本人開(kāi)發(fā)者的產(chǎn)品思維和一意孤行,白白浪費(fèi)了世界頂尖開(kāi)發(fā)者的精力和理想。
FlatPak vs Snap
Linux桌面發(fā)展到今天依然無(wú)法和微軟以及蘋(píng)果系統(tǒng)本身競(jìng)爭(zhēng)的一個(gè)重要原因就是,Linux系統(tǒng)軟件包之間的依賴問(wèn)題,系統(tǒng)和應(yīng)用之間的緊耦合,應(yīng)用和應(yīng)用之間的依賴庫(kù)緊耦合,只要底層庫(kù)升級(jí)了,系統(tǒng)升級(jí)有可能會(huì)把應(yīng)用升級(jí)掛,一個(gè)應(yīng)用升級(jí)很有可能會(huì)導(dǎo)致另外一個(gè)應(yīng)用無(wú)法使用。
如果把系統(tǒng)所有的軟件包和應(yīng)用的依賴打印出來(lái),你會(huì)發(fā)現(xiàn)整個(gè)桌面Linux操作系統(tǒng)就像一張巨大的錯(cuò)綜復(fù)雜的蜘蛛網(wǎng),蜘蛛網(wǎng)的任何一環(huán)壞掉都會(huì)引起系統(tǒng)和應(yīng)用不穩(wěn)定甚至無(wú)法使用的問(wèn)題,同時(shí)應(yīng)用廠商為了開(kāi)源社區(qū)的諸多底層庫(kù)升級(jí)疲于奔命, 最后的結(jié)果是,Linux操作系統(tǒng)在底層5萬(wàn)個(gè)軟件包,2000多個(gè)應(yīng)用,700個(gè)精品應(yīng)用的時(shí)候,就已經(jīng)非常非常的不穩(wěn)定了,如果有一天Linux平臺(tái)有上十萬(wàn)個(gè)應(yīng)用的時(shí)候,系統(tǒng)和應(yīng)用一定是崩潰的,因?yàn)槿魏蔚讓拥募夹g(shù)革新都會(huì)帶來(lái)應(yīng)用廠商的應(yīng)用會(huì)失效或者因?yàn)锳PI不兼容最后無(wú)法運(yùn)行。
所以,為了迎接將來(lái)Linux操作系統(tǒng)應(yīng)用生態(tài)爆發(fā)的那一天,Linux操作系統(tǒng)必須像微軟和蘋(píng)果那樣,在系統(tǒng)和應(yīng)用之間構(gòu)建一條抽象API層,有點(diǎn)類(lèi)似微軟的 Win32 API和.Net 的意思,只要應(yīng)用遵守中間層的運(yùn)行時(shí)API和接口以及應(yīng)用之間做到互相隔離開(kāi),應(yīng)用升級(jí)就不會(huì)影響到其他應(yīng)用,系統(tǒng)底層做再多規(guī)模的底層庫(kù)革新,只要革新完以后保證中間層調(diào)用接口不要變,系統(tǒng)的升級(jí)就完全不會(huì)影響到應(yīng)用的穩(wěn)定。
舉一個(gè)最簡(jiǎn)單的例子,微軟從Windows XP開(kāi)始,操作系統(tǒng)底層技術(shù)一直在變,但是你會(huì)發(fā)現(xiàn)十幾年前應(yīng)用廠商為Windows XP開(kāi)發(fā)的應(yīng)用依然可以在Windows 10最新的操作系統(tǒng)上運(yùn)行,這種類(lèi)型的兼容性才是桌面應(yīng)用生態(tài)賴以生存的重要技術(shù)保障。
而Gnome開(kāi)發(fā)的FlatPak和Ubuntu開(kāi)發(fā)的Snap就是為了解決應(yīng)用之間的隔離而生的技術(shù),這兩個(gè)技術(shù)都通過(guò)Linux內(nèi)核的cgroups技術(shù),F(xiàn)latPak是通過(guò)OsTree來(lái)解決應(yīng)用多版本的問(wèn)題。通過(guò)把應(yīng)用之間隔離在沙盒之內(nèi),保證不同應(yīng)用之間或者應(yīng)用不同版本之間完全在文件系統(tǒng)上進(jìn)行隔離,這樣就徹底解決應(yīng)用之間升級(jí)互相影響的問(wèn)題,而且這兩種技術(shù)通過(guò)引入應(yīng)用程序運(yùn)行時(shí)的runtime接口,保證了系統(tǒng)和應(yīng)用之間有一個(gè)穩(wěn)定的接口,從側(cè)面也保證了系統(tǒng)和應(yīng)用之間的依賴分離。
FlatPak和Snap都能解決Linux系統(tǒng)依賴的問(wèn)題,F(xiàn)latPak的目標(biāo)是解決Linux桌面現(xiàn)有應(yīng)用的問(wèn)題,Snap則是為了解決Ubuntu Touch而生的。
聽(tīng)說(shuō)Mark希望Snap不但能夠運(yùn)行在Linux上,還能運(yùn)行到別的操作系統(tǒng)上。在我看來(lái)這也是一個(gè)錯(cuò)誤的選擇,微軟和蘋(píng)果找就有相關(guān)的成熟技術(shù),根本不需要snap, 反而是Linux才需要這樣的技術(shù),希望 Ubuntu 能夠把 snap 的技術(shù)發(fā)展壯大,有利于Linux操作系統(tǒng)的應(yīng)用生態(tài)。
Gnome是一個(gè)比Unity更差的選擇
從Ubuntu放棄Unity的那一刻起,Ubuntu已經(jīng)放棄桌面了。很多不了解桌面環(huán)境開(kāi)發(fā)的用戶會(huì)覺(jué)得Ubuntu不是回歸Gnome了嗎?應(yīng)該是開(kāi)源社區(qū)的好事啊?
桌面操作系統(tǒng)的用戶體驗(yàn)和交互細(xì)節(jié)息息相關(guān)的就是桌面環(huán)境,而Gnome3桌面環(huán)境從各方面來(lái)說(shuō)都不是面向普通用戶的高質(zhì)量產(chǎn)品。
核心開(kāi)發(fā)者更關(guān)心技術(shù)折騰, 不再關(guān)心產(chǎn)品質(zhì)量和API兼容性
Gnome好的地方是開(kāi)發(fā)了封裝了大量基于GObject的庫(kù),外部開(kāi)發(fā)者能夠快速基于這些GObject庫(kù)來(lái)開(kāi)發(fā)程序。
但是從開(kāi)發(fā)者的技術(shù)選型來(lái)說(shuō),比如最開(kāi)始做vala, gnome shell的時(shí)候做 GJS/JavaScript, 到最近討論用rust, 這些都可以看出Gnome3的開(kāi)發(fā)者更關(guān)注的是實(shí)現(xiàn)桌面環(huán)境后臺(tái)的編程語(yǔ)言和技術(shù)是否是最酷最新的,追求這個(gè)世界上最先進(jìn)的技術(shù)是每個(gè)開(kāi)發(fā)者的源動(dòng)力,但是Linux桌面這十幾年之所以發(fā)展停止不前的重要原因是:用戶喜歡一個(gè)開(kāi)箱即用、美觀和穩(wěn)定的桌面系統(tǒng),用戶不關(guān)心實(shí)現(xiàn)這些的后臺(tái)技術(shù)是否是最屌的。對(duì)于真正理想的研發(fā)團(tuán)隊(duì),或者真正的頂尖開(kāi)發(fā)者來(lái)說(shuō),編程語(yǔ)言和最新的開(kāi)發(fā)庫(kù)只是工具和程序表達(dá)方式而已,只要編程能力高,什么程序都是可以開(kāi)發(fā)的。
而Linux社區(qū)的開(kāi)發(fā)者,大多數(shù)開(kāi)發(fā)者本身都是喜歡折騰最新技術(shù)的,因?yàn)樽钚碌募夹g(shù)對(duì)于開(kāi)發(fā)者來(lái)說(shuō)可以學(xué)到很多新的知識(shí),他們?cè)谛碌木幊陶Z(yǔ)言和新的技術(shù)基礎(chǔ)之上能夠做出自己的東西,讓自己更有價(jià)值和快樂(lè),而這些都是非常自然的地方。但是我們應(yīng)該考慮在先進(jìn)技術(shù)的同時(shí),面向真正的桌面用戶做出穩(wěn)定可靠的產(chǎn)品。
Gnome3即使面向開(kāi)發(fā)者都是極度不友好的,整個(gè)桌面環(huán)境就完全在一個(gè)JavaScript的環(huán)境中,中間沒(méi)有任何整體的API設(shè)計(jì)和插件接口,Gnome3的插件作者都是通過(guò) Gnome Shell 調(diào)試器追蹤到一個(gè)JavaScript的Object對(duì)象,通過(guò)屬性鏈的方式魔改很多對(duì)象的屬性方式,最后來(lái)開(kāi)發(fā)出 Gnome3 的插件。不通過(guò)插件API接口,而是通過(guò)對(duì)象的屬性來(lái)編寫(xiě)的插件,導(dǎo)致只要 Gnome3 的核心代碼一改變,或者屬性鏈中的任一一個(gè)變量發(fā)生了變化,Gnome3插件就失效了,目前Gnome3在線插件的頁(yè)面也只有20%的插件能夠在最新版的Gnome3環(huán)境中安裝運(yùn)行。
Gtk+已經(jīng)無(wú)力和Qt抗衡
我個(gè)人作為Gtk+骨灰粉,也是Gtk2hs的核心開(kāi)發(fā)者,對(duì)Gtk+ 2000多個(gè)API以及很多GObject庫(kù)(比如vte,webkit,poppler等)都非常熟悉。但是自從Gnome3弄傷心以后(我曾經(jīng)寫(xiě)了12個(gè)Gnome3插件,1萬(wàn)多行代碼都因?yàn)镚nome3各種亂改API后升級(jí)失效),我對(duì)Gtk+的信心也隨之大大降低。
特別是Gtk+3這個(gè)被Gtk+/Gnome開(kāi)發(fā)者盛贊的版本,除了添加了一下 Overlay 的控件和CSS屬性功能外,再?zèng)]有大的功能改進(jìn)。反觀Qt, 從Qt4時(shí)代的各有千秋到Qt5的大幅度提升質(zhì)量和功能,包括最新的QML大大提升了圖形應(yīng)用程序的開(kāi)發(fā)(雖然QML對(duì)顯卡兼容性還是有點(diǎn)問(wèn)題)。
Gtk+的很多API至今多有很多隱藏的小技巧,需要多年的踏坑經(jīng)驗(yàn)才能完全掌握,而Qt本身的API設(shè)計(jì)要優(yōu)秀的多。
Gnome3 不是一個(gè)產(chǎn)品質(zhì)量的桌面環(huán)境
Gnome3 并不是一個(gè)產(chǎn)品質(zhì)量的桌面環(huán)境:
- JavaScript本身不適合作為桌面環(huán)境這種常駐程序的開(kāi)發(fā)語(yǔ)言,不論在執(zhí)行速度,特別是在內(nèi)存的控制上非常容易導(dǎo)致長(zhǎng)時(shí)間運(yùn)行不關(guān)機(jī),內(nèi)存越用越多的情況
- Gnome3除了窗口管理器mutter是單獨(dú)一個(gè)進(jìn)程外,所有的桌面模塊(任務(wù)欄、頂部條、啟動(dòng)器、工作區(qū))都是在同一個(gè)進(jìn)程中運(yùn)行,這樣就導(dǎo)致只要有任何插件發(fā)生錯(cuò)誤,整個(gè)桌面環(huán)境的所有模塊都會(huì)連帶崩潰而無(wú)法使用
- Gnome3的整個(gè)設(shè)計(jì)理念都是面向平板的,比如托盤(pán)區(qū)域默認(rèn)隱藏,任務(wù)欄要戳一下熱點(diǎn)才能顯示,啟動(dòng)器圖標(biāo)過(guò)于巨大等,這些設(shè)計(jì)都會(huì)嚴(yán)重的影響PC日常使用的習(xí)慣和易用性
所以Gnome3與其說(shuō)是不如Unity桌面環(huán)境(我相信Ubuntu的Mark也知道),還不如說(shuō)Ubuntu徹底放棄在桌面上的創(chuàng)新和主力研發(fā),徹底向微軟投降了。
開(kāi)源社區(qū) vs 商業(yè)產(chǎn)品
從最初的RedHat放棄桌面系統(tǒng),Suse和微軟深入合作,2016年Ubuntu移植Bash到Win10, 到如今Ubuntu放棄Unity和Mir后,這么多年,大家在開(kāi)源事業(yè)上努力奮斗,但是從最開(kāi)始的斗志昂然到如今的放棄,為什么開(kāi)源的桌面系統(tǒng)做不好呢?
我個(gè)人也在帶領(lǐng)團(tuán)隊(duì)開(kāi)發(fā)deepin操作系統(tǒng),這么多年開(kāi)發(fā)Linux桌面操作系統(tǒng)的經(jīng)歷,我個(gè)人對(duì)于開(kāi)源社區(qū)和商業(yè)產(chǎn)品的理解有幾點(diǎn):
Geek是這個(gè)世界的革命先鋒,但不能以Geek理念做產(chǎn)品
電腦極客在以飛快的速度在改變世界,正是有這些非常聰明的極客和開(kāi)源黑客,全世界的科技發(fā)展,特別是開(kāi)源技術(shù)的在最近十年獲得了極大的發(fā)展。
電腦極客在所有人的類(lèi)型是非常稀少的,這些全世界1%的人用各自的聰明才智推動(dòng)開(kāi)源運(yùn)動(dòng)的發(fā)展,包括Ubuntu的CEO Mark本人也是極客中的極客,曾經(jīng)的Debian開(kāi)發(fā)者,在推動(dòng)Ubuntu初期解決了很多Linux桌面易用性的問(wèn)題。
電腦極客與其說(shuō)是一種職業(yè),還不如說(shuō)是一種生活方式,電腦極客希望全世界都像電腦運(yùn)行那樣:剛正不阿、完美、統(tǒng)一的美,沒(méi)有一絲一毫的例外情況,所有的結(jié)果都應(yīng)該在預(yù)計(jì)和期望范圍。
但是不能用極客的思維去做產(chǎn)品,因?yàn)檫@個(gè)世界本質(zhì)就是混沌的、有各種各樣缺陷、更強(qiáng)調(diào)社會(huì)習(xí)慣和協(xié)作,而普通用戶組成的非電腦社會(huì),更多人只在乎這個(gè)社會(huì)都在怎么使用電腦?大家在流行使用什么?他們更在于電影明星在用什么,模仿各種潮流,而不在于一個(gè)程序員內(nèi)心在想什么。
Ubuntu最開(kāi)始推崇Unity,是從產(chǎn)品質(zhì)量和公司的掌控力出發(fā)的,開(kāi)源社區(qū)指責(zé)的分裂我覺(jué)得是不客觀的。但是后面為了統(tǒng)一PC、手機(jī)、平板、電視的整個(gè)操作界面,所有界面都基于左側(cè)任務(wù)欄+頂部任務(wù)欄+搜索導(dǎo)向的Unity啟動(dòng)器來(lái)設(shè)計(jì)的,從極客愛(ài)好者來(lái)看,這是一種從程序代碼到總體實(shí)現(xiàn)的一種統(tǒng)一,一種認(rèn)為世界會(huì)贊賞的方式來(lái)構(gòu)建Ubuntu系統(tǒng)。
反觀我們自己作為一個(gè)普通人,我們會(huì)怎么對(duì)待這幾樣設(shè)備?
- PC: 作為生產(chǎn)力工具,比如要寫(xiě)一個(gè)文檔,寫(xiě)段代碼,做一個(gè)復(fù)雜的表格和圖像時(shí),PC絕對(duì)是生產(chǎn)力的代表,但是因?yàn)镻C大多數(shù)都需要一個(gè)人在固定的地方長(zhǎng)時(shí)間的工作,所以現(xiàn)在PC不是淪落了,而是專(zhuān)注于工作環(huán)境的計(jì)算平臺(tái),所以PC感覺(jué)給人很?chē)?yán)肅很累,而人做為一個(gè)天性懶惰的動(dòng)物,大多數(shù)人是盡量干完工作就離開(kāi)PC的,但是無(wú)論如何,PC作為整個(gè)社會(huì)的生產(chǎn)力工具,確實(shí)必不可少
- 手機(jī):手機(jī)作為大家最順手的工具、玩游戲、聊天、瀏覽頁(yè)面等,可以說(shuō)是現(xiàn)代人的第三只手,大部分時(shí)間都離不開(kāi)手機(jī)這種移動(dòng)計(jì)算設(shè)備
- 平板:一種非常輕量的電腦,不需要過(guò)多的知識(shí),不需要看著密密麻麻的的鍵盤(pán),只用直覺(jué)化的操作即可
- 電視:我能想到的最佳狀態(tài)就是,躺在沙發(fā)上,拿著遙控板,看電影,上下左右確定,這就是最常用的操作
我們認(rèn)真的總結(jié),即可發(fā)現(xiàn)這幾個(gè)設(shè)備的常用交互方式:
- PC: 鼠標(biāo)+鍵盤(pán)
- 手機(jī): 大拇指
- 平板: 食指
- 電視: 遙控板
所以電腦極客經(jīng)常問(wèn)的一句話 "為什么不做手機(jī)操作系統(tǒng)?”,更多的時(shí)候是在問(wèn) "為什么不能像PC那樣把別的計(jì)算平臺(tái)做的更加賦予生產(chǎn)力?”,所以當(dāng)初Ubuntu Touch追求的 “同一套Unity界面,讓不同的計(jì)算平臺(tái)用統(tǒng)一套界面和交互設(shè)計(jì)來(lái)滿足”,這本身就是一個(gè)偽命題,或者說(shuō)是電腦極客自己的一廂情愿。
這幾個(gè)計(jì)算平臺(tái)不論從使用場(chǎng)景、用戶交互習(xí)慣還是用戶對(duì)這些計(jì)算設(shè)備的期望都完全不同,當(dāng)初微軟融合電腦和平板本身,都已經(jīng)讓喜歡PC的用戶大大不爽,最后迫使微軟停止融合的設(shè)計(jì),改回最初的PC操作設(shè)計(jì)。而Ubuntu所有計(jì)算平臺(tái)的操作融合更是錯(cuò)的非常離譜,當(dāng)?shù)谝淮鶸buntu Touch手機(jī)推出市場(chǎng)后,先不論應(yīng)用的稀缺,光是操作系統(tǒng)就和主流的 “看到圖標(biāo)就點(diǎn),返回就按Home鍵” 的主流手機(jī)操作系統(tǒng)截然不同,最后慘淡收?qǐng)觥?/p>
所以,極客本身是世界革命的科技先鋒,但是不能用極客思維去做產(chǎn)品,因?yàn)闃O客畢竟還是這個(gè)世界上的非常少數(shù)的人,極客思維本身無(wú)法代表更為廣泛的普通用戶。
底層技術(shù)的革新需要采用溫水煮青蛙的方式,而不是激進(jìn)的踏進(jìn)沙漠去構(gòu)建大海
很多人經(jīng)常問(wèn)我 “deepin什么時(shí)候用wayland?" ,我首先想回答的是 “合適的時(shí)候就會(huì)用”,但是我更想回答的是 ”deepin只會(huì)推動(dòng)穩(wěn)定的技術(shù)和產(chǎn)品給用戶,而不是拿用戶當(dāng)小白鼠”。
Wayland和Mir本身都是非常革新的顯示技術(shù),我相信也是Linux未來(lái)顯示技術(shù)的主流,但是作為現(xiàn)階段來(lái)說(shuō),Wayland依然不是一個(gè)穩(wěn)定的產(chǎn)品級(jí)方案:
1、顯卡廠商原來(lái)都是基于X11的libGL進(jìn)行驅(qū)動(dòng)編寫(xiě)的,雖然現(xiàn)在很多顯卡廠商也在往Wayland遷移,但是整體的顯卡驅(qū)動(dòng)兼容性還不如X11, 直接的問(wèn)題就是,一旦用了Wayland后,桌面系統(tǒng)會(huì)相對(duì)于X11更容易遇到花屏和無(wú)法登入圖形界面的情況
2、Wayland本身就是對(duì)于X11協(xié)議是一種顛覆,大量的現(xiàn)有Linux程序依然是Gtk+2/Qt4開(kāi)發(fā)的,這些應(yīng)用程序依然無(wú)法在Wayland運(yùn)行,而新的Gtk+3/Qt5雖然都已經(jīng)對(duì)Wayland進(jìn)行了支持,但是這類(lèi)應(yīng)用還非常少,導(dǎo)致移植到Wayland會(huì)有大量的應(yīng)用程序無(wú)法使用,雖然有XWayland項(xiàng)目,但應(yīng)用兼容性和重寫(xiě)的問(wèn)題短期之內(nèi)還不會(huì)有很大的改善
3、在X86這種CPU性能過(guò)剩的平臺(tái),Wayland的性能提升并不明顯,最起碼普通用戶無(wú)法察覺(jué)這種性能提升,我認(rèn)為Wayland現(xiàn)階段更適合那種能夠完全控制顯卡和應(yīng)用本身,并且對(duì)渲染性能特別敏感的計(jì)算平臺(tái),不適合PC這種開(kāi)放式的高性能計(jì)算平臺(tái)
在顯卡廠商逐漸支持Wayland改善顯卡驅(qū)動(dòng)的情況下,在Linux桌面,我覺(jué)得應(yīng)該大力把桌面環(huán)境已經(jīng)應(yīng)用遷移到Gtk+3/Qt5的圖形庫(kù)上,等有一天顯卡廠商驅(qū)動(dòng)兼容性足夠好以后,通過(guò)修改窗口管理器和移植應(yīng)用的方式,直接把上層的桌面環(huán)境和應(yīng)用軟件整體遷移到Wayland上。
當(dāng)遷移完成后,用戶在顯卡驅(qū)動(dòng)以及應(yīng)用方面完全感受不到差異的時(shí)候,才能說(shuō)是負(fù)責(zé)任和持續(xù)的遷移方案。而不是很多開(kāi)源社區(qū)的用戶說(shuō)的先遷移到Wayland上去再說(shuō),這樣會(huì)導(dǎo)致使用Wayland的時(shí)候,讓用戶同時(shí)面臨顯卡驅(qū)動(dòng)和更加匱乏的應(yīng)用生態(tài)問(wèn)題。
如果打個(gè)比方,整個(gè)開(kāi)源社區(qū)是整個(gè)世界,革新技術(shù)是革命領(lǐng)袖的話。任何一個(gè)Linux桌面系統(tǒng)從X11遷移到Wayland更應(yīng)該考慮策略和漸進(jìn)的替換方式,而不是一腳踏進(jìn)沙漠以后要構(gòu)建整個(gè)海洋。任何一項(xiàng)革新的技術(shù)除了技術(shù)先進(jìn)性一定要考慮革命時(shí)期的群眾基礎(chǔ),只有在革新的時(shí)候解決用戶的問(wèn)題,得到用戶支持,這樣的技術(shù)革新才能完成底層核心技術(shù)的切換,否則就和當(dāng)年Intel/HP大力推崇的安騰CPU,雖然各種技術(shù)先進(jìn),但是因?yàn)椴患嫒莠F(xiàn)有操作系統(tǒng)和應(yīng)用,最后不得已而拋棄。
安卓生態(tài)時(shí)代,不要做Linux手機(jī)操作系統(tǒng),這不僅僅只是一個(gè)技術(shù)問(wèn)題
Linux桌面面對(duì)的是微軟的生態(tài)帝國(guó),如果拼盡全力,可能還有1%的成功可能性。而Linux手機(jī)操作系統(tǒng)面對(duì)安卓的時(shí)候,會(huì)死的一點(diǎn)都不剩的。
為什么會(huì)這么說(shuō)?因?yàn)槲④浕藥资陿?gòu)建的生態(tài)帝國(guó),是靠當(dāng)時(shí)微軟在PC行業(yè)的勢(shì),當(dāng)時(shí)的時(shí)勢(shì)加上微軟自身的努力(只有做過(guò)操作系統(tǒng)生態(tài)的團(tuán)隊(duì)才能理解微軟當(dāng)年有多苦逼)做到今天的地步的。做操作系統(tǒng)系統(tǒng)這種承上啟下+白菜錢(qián)白粉心的企業(yè)一般都是前期是孫子后期是爺?shù)拿捌谟龅接布?yīng)用和各種各樣奇怪的問(wèn)題,操作系統(tǒng)廠商各種背鍋(為啥別的操作系統(tǒng)沒(méi)有這個(gè)問(wèn)題?)干各種不是操作系統(tǒng)應(yīng)該干的活,以一己之力推動(dòng)整個(gè)生態(tài)的發(fā)展。而現(xiàn)在PC的所有生態(tài)和需求都已經(jīng)定型了,微軟不會(huì)鳥(niǎo)你,也沒(méi)有各種不懂的媒體跟風(fēng)干擾你(他們最多就說(shuō)PC是夕陽(yáng)產(chǎn)業(yè),哈哈),你和你的團(tuán)隊(duì)只需要一點(diǎn)一點(diǎn)的努力,用十倍于微軟苦逼的努力,只要在某些行業(yè)和開(kāi)源社區(qū)做出成績(jī),就會(huì)有用戶認(rèn)同你,PC再夕陽(yáng)大家也不可能離開(kāi)它,因?yàn)樯a(chǎn)力是整個(gè)社會(huì)最基本的動(dòng)力,大家都用手機(jī)和平板辦公,整個(gè)社會(huì)的生產(chǎn)力就會(huì)成倍的降低,所以大家離不開(kāi)PC,我經(jīng)常會(huì)諷刺那些說(shuō)PC沒(méi)用,平板才是未來(lái)的朋友: “你用平板寫(xiě)代碼或者你們公司的財(cái)務(wù)用平板給你算工資,我就愿意相信你” 。
移動(dòng)終端本身就是面向普通老百姓的新一代計(jì)算設(shè)備,在這個(gè)行業(yè),所有的人,所有的企業(yè)都在圍繞安卓構(gòu)建新的應(yīng)用,面臨一個(gè)日新月異更新?lián)Q代的行業(yè),對(duì)于操作系統(tǒng)廠商來(lái)說(shuō),這些不是機(jī)會(huì),而是你無(wú)法挑戰(zhàn)安卓系統(tǒng)的巨大阻礙,而且每天都會(huì)更大,因?yàn)橛懈嗟拈_(kāi)發(fā)者和開(kāi)發(fā)廠商自己掏錢(qián)投入安卓陣營(yíng)。人類(lèi)社會(huì)是一個(gè)以跟風(fēng)和模仿為基調(diào)的動(dòng)物群體,當(dāng)你做的和大多數(shù)人都不一樣,各種人就會(huì)干擾你,導(dǎo)致你無(wú)法專(zhuān)心做好操作系統(tǒng),而且面對(duì)一個(gè)不斷發(fā)展的生態(tài),整個(gè)行業(yè)的切換成本是你現(xiàn)在無(wú)法撼動(dòng)安卓的重要原因,因?yàn)榘沧繕?gòu)建的不光光是操作系統(tǒng)本身,構(gòu)建更多的是日益越大的行業(yè)投入和切換成本。
反觀PC行業(yè),在真正有下一代生產(chǎn)力計(jì)算平臺(tái)出現(xiàn)之前(安卓只是娛樂(lè)平臺(tái)),PC依然是整個(gè)社會(huì)生產(chǎn)力的核心,大家不可能離開(kāi)PC,PC也不會(huì)像很多沒(méi)有思考能力的人期望的那樣消失殆盡。任何PC操作系統(tǒng)廠商只要一步一步的花費(fèi)數(shù)十年的時(shí)間,終有一天會(huì)構(gòu)建龐大的桌面應(yīng)用生態(tài),在生產(chǎn)力上和開(kāi)放源代碼上給這個(gè)社會(huì)帶來(lái)更多的價(jià)值,其實(shí)Mac系統(tǒng)本身就是一個(gè)很好的例子。
PC操作系統(tǒng)不是未來(lái),但是PC操作系統(tǒng)是現(xiàn)代還不可或缺的計(jì)算平臺(tái),而且PC操作系統(tǒng)是全世界對(duì)軟件工程要求最高的挑戰(zhàn)。當(dāng)一個(gè)團(tuán)隊(duì)具備實(shí)力能夠完整構(gòu)建像微軟那樣的PC操作系統(tǒng)能力和知識(shí)積累后,這個(gè)團(tuán)隊(duì)的實(shí)力能夠在下一代計(jì)算平臺(tái)掌握絕對(duì)的控制力。
大家熟知的勵(lì)志故事就是:蘋(píng)果在PC被微軟打爆以后,用iPhone讓微軟再也爬不起來(lái)。
包格式只對(duì)系統(tǒng)核心有用,對(duì)于應(yīng)用廠商毫無(wú)意義
我一直認(rèn)為包格式是服務(wù)器操作系統(tǒng)和桌面操作系統(tǒng)系統(tǒng)核心才需要的東西,因?yàn)榫哂幸蕾囮P(guān)系的包特別適合構(gòu)建相互關(guān)聯(lián)的操作系統(tǒng)底層核心庫(kù),只要你升級(jí)一下核心庫(kù),整個(gè)操作系統(tǒng)的核心技術(shù)就升級(jí)了,不用擔(dān)心冗余和更新問(wèn)題。
但是包格式對(duì)于應(yīng)用廠商無(wú)意義,操作系統(tǒng)站在應(yīng)用廠商的出發(fā)點(diǎn)最應(yīng)該考慮的是提供一套接口抽象層和應(yīng)用隔離機(jī)制,抽象接口層的目的是分離系統(tǒng)和應(yīng)用,應(yīng)用隔離機(jī)制的目的是隔離應(yīng)用之間在文件系統(tǒng)上的依賴。
只有這樣,才能真正構(gòu)建一個(gè)Linux桌面的生態(tài):
- 抽象層做好以后,操作系統(tǒng)可以在保持接口不變的同時(shí),隨意革新操作系統(tǒng)核心技術(shù),而不用擔(dān)心操作系統(tǒng)升級(jí)以后,應(yīng)用程序無(wú)法運(yùn)行的問(wèn)題
- 應(yīng)用隔離機(jī)制做好以后,應(yīng)用廠商的不同版本和不同應(yīng)用廠商的應(yīng)用之間不會(huì)互相影響
- 開(kāi)發(fā)者不用再寫(xiě)完軟件還要考慮構(gòu)建不同發(fā)行版的打包格式,這也是阻礙軟件無(wú)法在所有Linux發(fā)行版運(yùn)行的重要原因
這樣做的目的是讓徹底解放操作系統(tǒng)廠商,操作系統(tǒng)廠商的開(kāi)發(fā)人員可以把所有精力放在核心技術(shù)的開(kāi)發(fā)和應(yīng)用開(kāi)發(fā)接口的維護(hù)上,而不用每天除了開(kāi)發(fā)操作系統(tǒng)還需要打包各種應(yīng)用軟件包。
應(yīng)用的質(zhì)量和功能應(yīng)該由應(yīng)用廠商自己維護(hù),而不是丟鍋給操作系統(tǒng)開(kāi)發(fā)人員,應(yīng)用的好壞本質(zhì)山應(yīng)該通過(guò)用戶評(píng)價(jià)和經(jīng)濟(jì)刺激讓?xiě)?yīng)用廠商自己維護(hù),如果應(yīng)用長(zhǎng)期沒(méi)有作者維護(hù),用戶自然會(huì)拋棄應(yīng)用的,進(jìn)行自然淘汰,就像Windows上的應(yīng)用,哪個(gè)作者更努力做的鞥好,用戶就會(huì)越多。
而不是像現(xiàn)在Linux發(fā)行版的打包人員,固定的幾十個(gè)人面對(duì)著成千上萬(wàn)的應(yīng)用軟件打包工作,不論從工作量還是持續(xù)發(fā)展來(lái)說(shuō),這種分擔(dān)工作量的組織方式本來(lái)就是不合理的,如果每個(gè)應(yīng)用都需要操作系統(tǒng)開(kāi)發(fā)人員來(lái)維護(hù),固定人數(shù)和固定時(shí)間面對(duì)無(wú)窮的應(yīng)用時(shí),勢(shì)必會(huì)導(dǎo)致精力不夠,甚至核心的系統(tǒng)開(kāi)發(fā)者不再給開(kāi)源社區(qū)做貢獻(xiàn)時(shí),他維護(hù)的應(yīng)用的更新和質(zhì)量就會(huì)下降,最后損害的還是用戶。
所以應(yīng)用隔離的技術(shù)不僅僅只是技術(shù)上模仿微軟和蘋(píng)果,而是從社會(huì)的生產(chǎn)力上徹底解決工作分擔(dān)組織的問(wèn)題,只有把應(yīng)用的維護(hù)工作丟給應(yīng)用開(kāi)發(fā)者這些直接利益關(guān)系者才能持續(xù)的推動(dòng)整個(gè)生態(tài)的前進(jìn),而不僅僅通過(guò)開(kāi)源精神和信仰把所有的維護(hù)負(fù)擔(dān)都丟給Linux發(fā)行版的開(kāi)發(fā)者。
Linux桌面的未來(lái)在哪里?
說(shuō)了這么多,Linux桌面的未來(lái)在哪里?
實(shí)話實(shí)說(shuō),我不知道,我要是知道的話,deepin早已經(jīng)打敗微軟了,哈哈哈。
但是從我這么多年開(kāi)發(fā)桌面系統(tǒng)的精力,我總結(jié)了幾條經(jīng)驗(yàn):
- PC不需要革命性創(chuàng)新,只需滿足桌面用戶長(zhǎng)期的習(xí)慣+微創(chuàng)新, 大多數(shù)Linux發(fā)行版自嗨式的折騰后,用戶告訴我們他們最需要的PC操作系統(tǒng)就是那些盡量滿足他們PC操作習(xí)慣的系統(tǒng),如果有一些局部的微創(chuàng)新能夠形成自己的特色就很好了
- 大力發(fā)展應(yīng)用生態(tài)才是王道: Linux精品應(yīng)用還在千這個(gè)量級(jí),不論自己研發(fā),還是和應(yīng)用廠商合作開(kāi)發(fā),抑或通過(guò)商業(yè)來(lái)刺激應(yīng)用廠商自己開(kāi)發(fā),才會(huì)有越來(lái)越多的用戶和行業(yè)去使用Linux操作系統(tǒng),Linux桌面要成功,這是最最重要的一個(gè)一點(diǎn),而不僅僅是拿開(kāi)源作者或?qū)W生業(yè)余寫(xiě)的軟件當(dāng)做產(chǎn)品去忽悠現(xiàn)代這些越來(lái)越挑剔的桌面用戶
- Linux桌面需要更深入的去解決普通用戶的問(wèn)題: 需要針對(duì)Linux桌面用戶的痛點(diǎn)進(jìn)行更深入的解決,除了上面說(shuō)的應(yīng)用外,比如顯卡驅(qū)動(dòng)、打印機(jī)驅(qū)動(dòng)以及行業(yè)應(yīng)用都是非常必要和重要的
- 更多的用戶基數(shù)才能引爆Linux桌面生態(tài): Ubuntu聚集了大多數(shù)Linux開(kāi)發(fā)者,真正的Linux桌面成熟,需要面對(duì)更為廣闊的普通用戶需求,只有解決了10%以上用戶的需求(蘋(píng)果Mac系統(tǒng)也就這個(gè)占有率),Linux桌面才能自豪的說(shuō)終于成功了
Linux桌面是世界上最大的軟件工程挑戰(zhàn), 也是所有Linux愛(ài)好者的希望
Linux桌面以及桌面應(yīng)用生態(tài)的構(gòu)建是世界上最大的軟件工程挑戰(zhàn),幾十年各種偉大的開(kāi)源公司和開(kāi)源社區(qū)在為這個(gè)目標(biāo)努力,我相信只要持續(xù)努力,最終可以從希望變成理想成真的。
Ubuntu今天放棄戰(zhàn)斗了,非常可惜一面Linux桌面的旗幟倒下了。
做為依然奮斗在Linux桌面事業(yè)的開(kāi)發(fā)者,想跟未來(lái)的開(kāi)源開(kāi)發(fā)者說(shuō)一句話:
累了就休息一下,但千萬(wàn)不要放棄!