侯少輝:Linux Deepin 大平臺、大夢想
原創(chuàng)前一篇,我們分享了《2013深度DAU大會:王勇講述 Linux Deepin 的發(fā)展趣事》,本文中,深之度開發(fā)部桌面應用開發(fā)組負責人侯少輝從軟件開發(fā)的角度分享了 Linux Deepin 軟件的開發(fā)歷程,對此感興趣的朋友可以看看本文的演講實錄。
侯少輝:Linux Deepin應用開發(fā)部主管
【侯少輝簡介】
深之度開發(fā)部桌面應用開發(fā)組負責人。早期從事網(wǎng)絡(luò)和運維相關(guān)工作, 后轉(zhuǎn)職做開發(fā), Python推廣者, 擅長GUI編程和Web后端開發(fā),深度音樂代碼編寫者。
【演講實錄】
在開始之前,我們先聊一下Linux的現(xiàn)狀。Linux桌面系統(tǒng),是非常混亂的。任何一個普通的Linux用戶,都能說出幾個或者10多個不同的發(fā)行版本,就不說是否安裝或者使用過了。到目前為止,世界上至少有300多個發(fā)行版本,都在想方設(shè)法地吸引用戶。那究竟有哪些呢,我們可以先來看一下(如圖)。非常之多,Linux Deepin也是其中的一份子。
那大家會想,在這么混亂的情況下,我們依然堅持做Linux操作系統(tǒng),這是什么原因呢?原因在于我們是一個非常有想法的團隊。我們每個團隊成員在加入之前都有3~5年以上的Linux使用經(jīng)驗。我們團隊的每個成員都覺得,大家應該聚在一起,共同來改善一下Linux桌面系統(tǒng)。我們大家在一起做了很多努力,讓Linux更加易用。我們想把Linux可愛的一面呈現(xiàn)給普通用戶,而不只是一個程序員的玩物。比較重要的一點,就是從武漢、從全國各地吸引了許多優(yōu)秀的設(shè)計師加入團隊,讓我們能在交互和設(shè)計上做得更好。
我們在這兩年過程中,也取得了許多不錯的成績,剛才王勇也有講到。當時軟件中心1.0版本發(fā)布的時候,我還沒加入團隊。我就在國外論壇上看到評論“這是Linux上***的軟件中心”,這對當時的我鼓舞非常之大。我覺得,中國終于有這樣的一份力量,來讓世界知道中國有這樣一個優(yōu)秀的發(fā)行版本。
大家也可以看到我們獲得的開源大賽的一些獎項。大家可以看看這份數(shù)據(jù):DistroWatch上 Linux Deepin 一年以來排行的變化。一年之內(nèi),我們的排行是67位,6個月我們是56位,3個月是45位,***的時候是到了15名之內(nèi)。我們在這幾年當中,也更多被世界所認可,國外的用戶非常之多。他們說,哇,原來Linux在中國能做得這么好。他們也經(jīng)常給我們提出非常有建設(shè)性的意見。在這里我想感謝團隊3年來付出的努力。
下面我會從軟件開發(fā)的角度回顧一下我們軟件的開發(fā)歷程。
在11.06版本的時候,我們發(fā)布了軟件中心1.0。軟件中心1.0在業(yè)界引起了很大的轟動。***次發(fā)現(xiàn),原來在Linux下做軟件也可以像在Windows上一樣漂亮,給我們印象不是非常差的灰色調(diào)調(diào)。
11.12發(fā)布的時候,我們基于GNOME Shell進行了深度定制,大家可以去體驗一下,我們比原生做得更加易用。體驗之后,你可以體會到當時我們團隊所花費的心血。
深度截圖,王勇剛剛也提到了,是用2天時間開發(fā)的截圖工具,那證明在Linux上開發(fā)不是非常困難的事情。大家如果學到了王勇一般的水平,只需要動動手指,就能夠?qū)懗龇浅Y澋膽贸绦颉槭裁凑f一直以來都沒有人來做這個事情?我也有這樣的疑惑。不過很慶幸我們團隊能夠開發(fā)出這么多精彩的應用,讓Linux用戶覺得終于有更多非常贊的應用來使用了。
在12.06的時候,我加入了開發(fā),開發(fā)團隊也不斷壯大。期間,我們開發(fā)了深度影音和深度音樂。為什么要開發(fā)這些東西,原因是我們認為用原先的一些應用的時候非常非常難用。程序員罷了,但是作為普通用戶,很難想像這個操作是用來聽歌的嗎?我們在思考。待會,我們來做一個演示,看一下為什么我們要做這些事情,包括我們改善了那些東西。
在12.12的時候,我們開創(chuàng)性的創(chuàng)造了自己的深度桌面,一個新的桌面環(huán)境。在易用與美觀方面,做了很大的努力。我們?yōu)樵撟烂姝h(huán)境加入了很多移動終端的元素。我們有桌面分組功能,場外有一些體驗機,大家可以體驗一下。
同時,我們發(fā)布了軟件中心3.0。軟件中心3.0與之前有什么不同呢?我們幾乎完全重寫了,我們重新定義了一個框架。之前呢,不管是后臺還是前期的安裝軟件都需要密碼。這個體驗非常差,我們就做了這個框架,讓用戶可以很輕松的安裝軟件。
最近我們發(fā)布了深度游戲中心1.0。之前我們一直缺少娛樂化的東西,我們做了之后呢,給我自己***的感動是,之前我女朋友不用我的電腦,她覺得上面沒什么可玩的,在游戲中心推出之后,她居然抱著我的筆記本玩了一些Flash小游戲。這對于我們的團隊來說也算是一個很大的鼓勵。一些普通的用戶,他們也可以在我們的系統(tǒng)上做一些操作或者使用。
中秋節(jié)的時候,王勇在社區(qū)發(fā)布了一個“深度終端”的測試版本。大家可以試一下。這個應該是到目前為止linux下最贊的一個終端程序,它可以分屏,還可以做很多事情。大家如果有興趣,可下載“深度終端”體驗一下。
我們現(xiàn)在來做一個簡單的DEMO,比較之前的多媒體體驗和我們現(xiàn)在的體驗改觀了多少。如果使用過linux,應該知道這個播放器。這個播放器是Ubuntu系統(tǒng)原生自帶的一個應用。我覺得這個給大家的***印象是什么,或者說你看到這個播放器你有沒有用它的欲望?界面上沒有給我使用的欲望。
我們先看下它的整個操作。先做的***件事情想把這個歌曲導入進來,這里,我們看到下面這個“+”號應該是從文件載入……好吧,這個東西太難操作了,我不知道怎么玩它。如果說一個應用程序讓我這樣來導入,導入不了的話我就完全放棄了。現(xiàn)在大家可以看到,其實如果你真的導入的話,一些咱們中文的歌曲你拿到linux下會出現(xiàn)亂碼的情況,英文歌曲是沒有這個情況的。更重要的是,你拿到這個應用之后你需要折騰一件事情就是歌詞。我覺得普通用戶的話根本就弄不出來歌詞。
這個是我們自己開發(fā)的深度音樂。大家可以與Windows下類似應用進行比較下,可以說是差不多啦。從沒有到與它相似或者超越它,我們還需要一段時間,但目前我們可以看到,作為一個音樂播放器,應具備的所有的功能已經(jīng)很完善了。然后從我們這邊也是一樣格式轉(zhuǎn)換等等,這邊歌詞也是一樣,應該說我覺有些方面比windows上的體驗還要好一點,特別是它這個我們在歌詞這方面出了一個高斯模糊,就是讓歌詞浮在上面的感覺。
更重要的是,這個軟件在設(shè)計方面也做了一定的功夫。可以看到,在這邊切換的話,是表面都在切換。這樣做的原因是因為我們不單單是想做一個音樂播放器,我們想做的是一個框架,什么框架呢?當我們切過來的時候它就是一個豆瓣電臺,那我再切到本地,他就有本地音樂,兩邊都可以放。然后在接口提供之后,社區(qū)開發(fā)者他們可以幫我們做這件事情。在linux中呢,有很***的在線音樂的體驗,那,這百度音樂了。所以,我們做這件事情并不是說就是為了造輪子而造輪子,其實我們想做的是改善所有的在上面的應用的一個體驗。
時間有限,我就只演示一些深度音樂的設(shè)計和一些功能了,有興趣的話大家可以把其他軟件也看一下。我也承諾,如果在下一年在的時候,我們所有的應用,或者深度音樂,或者深度影音,會進入到另一個設(shè)計或者操作的臺階上面去。
大家剛才可能看到我們做到了很多應用程序。社區(qū)部分朋友經(jīng)常問我們,你們能不能做其他的呀,做這個,做那個。這些東西,說白了我們都想做,不管是瀏覽器還是手機助手,但是我們現(xiàn)在已有團隊的能力,我們真的是沒有時間來做。東西太多了,團隊不能太分散。
我覺得團隊后期重心應該放到兩個方面上去:***個是在系統(tǒng)的穩(wěn)定性,我們會再優(yōu)化我們的系統(tǒng)啟動速度,或者系統(tǒng)優(yōu)化方面;最最重要的一件事情,我們要搭建一個統(tǒng)一的平臺。這個平臺為了要做什么樣的事情呢,其實現(xiàn)在我們都在做,我們想做一個集設(shè)計師、開發(fā)者、用戶于一體的大平臺,最終的目的是我們想讓linux桌面的應用程序有一個量的提升。
那么我們應該怎么做,我們先看一個框架圖,框架圖大家可能看的不是太清晰,我會每一項都拆開給大家講解的。
我們現(xiàn)在做的這個框架,能給未來linux的開發(fā)帶來多大的一個便利?那我們先從這個開發(fā)工具來講吧,其實在這2~3年中間我們也嘗試做了很多開發(fā)工具,比如我們做了deepin-emacs,如果是emacs玩家真的可以去體驗一下,或者任何開發(fā)者可以去體驗一下,它到底能提高程序員多少開發(fā)速度,待會后面會提供一個視頻會給大家看一下。emacs玩到一個什么樣的高度才稱為真正的emacs玩家。這里需要介紹的是開發(fā)者王勇,他是世界上***的emacs玩家,或者說這里有emacs的用戶你們手上有些插件,有可能這些插件就是他開發(fā)的。但是這個人為人低調(diào),國內(nèi)好多emacs用戶一直認為他是一位國外玩家。他就是我們團隊的成員,非常難得。我們在做開發(fā)的過程中,相對于普通用戶所遇到的問題,發(fā)現(xiàn)開發(fā)者所遇到的問題非常嚴峻。怎么說呢,linux本身是一個非常復雜的環(huán)境,然后又充斥著大量的底層包,它存在什么問題,就是版本不兼容。還有一些就是對于我們這些開發(fā)者入門門欄比較高,因為玩Linux的大部分是相對有一定層次的開發(fā)者,他們碰到文檔的情況比較少,英文的也不是很全面,何況是中文的文檔。我作為一個資深小白呢,***次做一個事情,我想開發(fā)一個東西,我說“這個大神啊,有沒有中文文檔啊,或者說詳細的中文手冊?”大神回復我的***句話說“這哪需要看什么文檔啊,直接看源碼去吧。”認為在linux下開發(fā)就應該是去看源碼,你就能學到很深,我覺得這個應該增加了我們低級開發(fā)者入門的一個門欄。
我們應該怎么做呢?我覺得我們應該做一個強大的IDE,當然是為中級用戶所提供的。有一些初級開發(fā)者可能并不陌生,因為在windows上大家可能用到VB,.NET,然后在蘋果上可能有XCode,在Linux下沒有一個統(tǒng)一的、可用的。那么。我們團隊正在做的一件事情就是強大的IDE工具,這個工具我們也做了一些嘗試,能夠讓大家很簡單地開發(fā)應用程序。
在圖形引擎這方面,我也想講一點,就是說在linux也不缺乏強大的圖形引擎,也在目前流行的主要有兩個,主要是GTK和QT,為什么我們還要造一個,原因在于QT是一個C++的產(chǎn)物,在C++上使用可以說是非常之好。當然我們Deepin用的最多的是python,或者未來我們會使用Go語言來編寫。Python在QT上遇到的問題主要是QT4和QT5不兼容,要么是用這個,要么使用那個,所以說我們遇到了很多問題。我們覺得我們做一個圖形引擎,能做什么樣的事情呢,綁定任何語言,當然這個圖形引擎不是我們剛才說看到的深度音樂所搭建的這么簡單的,因為我們那是基于GTK所構(gòu)建的,我們現(xiàn)在團隊正在探索的是下一代的UI技術(shù),究竟是什么樣呢,它肯定是離不開Web的。我們做的一件事情是把webkit的引擎提取出來,做一個全新的渲染框架,大家可以關(guān)注一下。我們要把我們2~3年的大量的開發(fā)經(jīng)驗轉(zhuǎn)化成知識或者能量,傳遞下去,讓更多的初級開發(fā)者加入開發(fā)者當中來。
當然,任何一個開發(fā)團隊不能缺少一種人,這種人就是設(shè)計師。設(shè)計師非常重要,其實在我們當時做的過程中發(fā)現(xiàn),設(shè)計師在整個應用中起到主要作用。我們Deepin現(xiàn)在也是以設(shè)計為主導的,就是說,不是說程序員你們加一個功能就能加的,不是這樣的,我們是設(shè)計師通過討論之后,有益于用戶的使用,我們再這樣做。這個平臺呢,我們也是這樣做,設(shè)計師可以在這個平臺上去尋找開發(fā)者。大體是這樣一個情形:如果說你是一個設(shè)計師,你有一個屌爆的產(chǎn)品,設(shè)計的非常贊的產(chǎn)品,但是沒有人實現(xiàn)它。你每次打開電腦,哇,這么好的東西,誰能幫我實現(xiàn)一下,你有這樣的困惑,對吧?那么怎么樣做呢,我們就說這個平臺,我們可以讓你來找到開發(fā)者。開發(fā)者你們也可以來做這樣一個事情,那么你的東西呢,為了你后期的,或者說你是在校學生,你學的東西也學有所用,你知道你學了那么些繪畫,或者說漫畫的東西,到底究竟用在哪,用在什么上面,要體現(xiàn)它的價值。當然了你開發(fā)的應用,在這個平臺上推廣和運用了之后,世界各地的用戶都可以用得到,我覺得你自己也是非常有成就感的。我覺得Linux平臺上始終缺少女性用戶,那么我覺得設(shè)計師參與了,會在這方面注入一些能量,也為我們這些屌絲程序員提供了一些機會。應該說是設(shè)計師與開發(fā)者進行配合才能夠開發(fā)出優(yōu)秀的產(chǎn)品。 目前來說,我們還遇到的一些情況來說,因為設(shè)計師呢一般來說是在Mac或者Windows的比較多,目前沒有一個很好的聊天工具讓開發(fā)者與設(shè)計師進行有效溝通。這個也是社區(qū)期待已久的產(chǎn)品。我們想的很全面,我們?yōu)榇蠹易隽艘粋€全新的跨平臺的聊天工具Deepin Talk。究竟是什么樣呢,我先放兩張截圖來看一下。這個應該是我們第三個的設(shè)計方案,目前還在做,大家可以看到我們也增加了新的元素,這是聊天窗口。未來我覺得這是在linux平臺上***用的聊天工具。不用***件事情找QQ,QQ非常的麻煩,你要么用webQQ,要么Wine,體驗就非常的差,未來我們將做這樣的一個東西,其實我們現(xiàn)在已經(jīng)在做了。明年初的時候大家已經(jīng)可以體驗我們的聊天工具了。
當然前面我們說到,這個平臺我們想召集開發(fā)者和設(shè)計師,大家不要以為有了開發(fā)者和設(shè)計師,我們就可以做出非常贊的產(chǎn)品了,不是,因為你在開發(fā)的過程中會遇到很多的bug,你的程序不可能沒有bug,所以說這個時候呢,我覺得讓更多的使用者來參與到其中,他們也來提交bug。在我們Deepin這2~3年的開發(fā)過程中,也得到了一些經(jīng)驗,我們Deepin是把用戶遇到的問題當作頭等大事來對待,我們從微博、QQ群、包括各個論壇等等收集用戶提交的意見和bug。我們每周三下午舉行會議,討論這周遇到一些bug,我們選擇去還是留,做還是不做,或者說修還是不修這些問題。我覺得這是非常有Geek文化的一個公司。每周四我們會放下我們的腳步,這天會放下手上所有的工作來專門解決用戶所遇到的問題。如果解決不了,當然我們加班中提供了很多零食和娛樂活動,非常好。就這樣,我們這樣的產(chǎn)品得到了很多用戶的認同,我記得有個朋友在微博上說“我昨天提交的問題,這周Deepin已經(jīng)幫我們修復了,Deepin真是一個非常用心的團隊。”我們這種方式得到了用戶的認可,產(chǎn)品也逐漸走向成熟。用戶參與了,他也覺得了他為社區(qū)貢獻了力量。但是在我們的過程中,我們發(fā)現(xiàn)目前我們的bug依然很多。用戶提交bug是很困難的一件事情。未來,我們將在桌面上或其他地方做一些入口,把你問題的描述,增加一個截圖,提交到我們的服務器。問題修復所需的系統(tǒng)信息等方面也會進行收集,方便問題處理。那如果說你是一個開發(fā)者的話,你的用戶說你的手機在我的桌面上突然掛了。或者說,把你的哪個文件夾哪個下面的log文件提交給我吧,用戶會說“***,你的文件到底在哪里我怎么知道?”這樣一來,有個好處:讓用戶用更少的時間來提交他認為有益的事情。另一個好處就是可以不斷的關(guān)注用戶,比如說你提交一個bug,然后我們一旦確認就通知用戶,或者修復了通知用戶,用戶會覺得“原來我的問題也被他們關(guān)注了”,就有種參與感。這樣做也激勵了用戶下次會更樂意來提交bug。***也可以激勵開發(fā)者。他做的事情得到用戶、得到我們公司同事的認可了之后,他也非常有信心把產(chǎn)品做好。我們最終打造的目標是增加Bug管理系統(tǒng),來讓開發(fā)者和用戶之間零距離的溝通,使得用戶看到我們是在用心的做產(chǎn)品,產(chǎn)品越來越易用。我們可能會對QQ有很多改進想法,但沒有地方提交給它。他們接受或者不接受是另外一回事。我們這樣做,會拉近大家的距離。
這個平臺還會提供一個功能:國際化。國際化有多么重要呢,我認為,當你的作品讓更多的國外用戶體驗到或作為開發(fā)者,收到國外用戶的郵件,對你的產(chǎn)品表示贊美。這是很鼓舞人心的,對開發(fā)者來說是一個很大的激勵。這個翻譯,是交給社區(qū)來做的。我們社區(qū)目前有一支很專業(yè)的翻譯團隊。有一名社區(qū)翻譯愛好者,他貢獻了很多項目的翻譯,我問他你在翻譯過程中得到了什么,或者是什么驅(qū)動你提交這些翻譯的內(nèi)容。他說,當我每次打開程序點擊“關(guān)于”的時候,看到翻譯者名單中有自己的名字時很有成就感。同時,也有益于提高自己的英語水平,詞匯量也增加了不少。未來我們會做這樣的事情,希望大家參與進來。Bug管理系統(tǒng)也在做,未來不久大家就可以看到了。
下半年我們會推出一個最重要的產(chǎn)品:深度云服務。云服務,大家也知道,這個詞已經(jīng)被各大廠商說爛了。現(xiàn)在,不管是百度,還是360,都提供了無限空間的存儲服務。那么,云服務在深度上是什么樣的體驗?我們是做桌面的,我們?nèi)绾巫霾拍芨淤N近用戶。那我們會做一件事情,大家可以想象下面的場景:我是作為一個愛折騰系統(tǒng)的人,每次裝完系統(tǒng)后,折騰什么呢?折騰輸入法、Flash、歌詞,再折騰桌面美化和主題,一下子到了凌晨兩三點。如果系統(tǒng)崩潰了,你是不是有種非常沮喪的感覺,我再也不玩這個系統(tǒng)了,對不?我們做云盤的時候,你只需要同步就可以了,包括你所有的配置。下次只要你換了電腦,或者重裝系統(tǒng),你只需要做一件事情:登陸深度ID,你所有的配置和應用程序,應用程序,不管在不在倉庫里面,都可以同步過來,直接滿狀態(tài)復活。
我今天的演講就到這里,非常感謝大家。我相信,在不久的將來,Deepin在應用程序開發(fā),或等到我們的平臺搭建成功之后,在Linux上使用軟件應該是一個輕松的事情,讓大家不會再覺得Linux非常難用,在國內(nèi)應該實現(xiàn)三足鼎立的局面。
謝謝大家。