本文背景
MiniGUI是最負(fù)盛名的開(kāi)源Linux圖形用戶界面支持系統(tǒng)之一。本文是魏永明老師于公元2017年9月1日最新原創(chuàng)的討論MiniGUI的涅槃重生之路的文章。
作者簡(jiǎn)介
魏永明,獲清華大學(xué)工學(xué)學(xué)士、碩士學(xué)位。其主持的 MiniGUI 項(xiàng)目,是早期國(guó)內(nèi)最知名的幾大開(kāi)源軟件項(xiàng)目之一,曾廣泛應(yīng)用于功能手機(jī)、數(shù)碼相框等嵌入式產(chǎn)品中。魏永明于2002年創(chuàng)立北京飛漫軟件有限公司,成功實(shí)踐了圍繞開(kāi)源軟件的雙許可證商業(yè)模式;于2015年10月聯(lián)合創(chuàng)辦北京玖柏圖技術(shù)股份有限公司并擔(dān)任 CEO。魏永明為 Linux 及開(kāi)源軟件在中國(guó)的普及和應(yīng)用做了大量工作,翻譯或編著若干技術(shù)著作(《Linux 實(shí)用教程》、《Linux 設(shè)備驅(qū)動(dòng)程序》等);2013年,鑒于他在開(kāi)源軟件領(lǐng)域做出的突出貢獻(xiàn),被“中國(guó)開(kāi)源軟件推進(jìn)聯(lián)盟”評(píng)選為“開(kāi)源軟件杰出貢獻(xiàn)人物”。
上周去深圳出差,約了幾個(gè)飛漫的前同事一起吃飯喝酒,其中高總目前供職于深圳一家數(shù)控系統(tǒng)開(kāi)發(fā)廠商。2000年開(kāi)始,高總就在 TCL 和創(chuàng)維力推 Linux + MiniGUI 的智能電視方案,甚至還基于 MiniGUI 開(kāi)發(fā)了自己的瀏覽器。然而大家都知道,智能電視這一類產(chǎn)品在十年之后(2010年)才獲得了市場(chǎng)的認(rèn)同并得到了大的發(fā)展和普及,其中 Android 從技術(shù)上保證了智能電視這類產(chǎn)品的成功,高總力推的方案在當(dāng)時(shí)得不到產(chǎn)品部門的認(rèn)同,其實(shí)無(wú)關(guān)技術(shù),而是市場(chǎng)還不成熟。大家談起這些往事,各個(gè)唏噓不已。
MiniGUI 作為生長(zhǎng)于國(guó)內(nèi)土壤的一款開(kāi)源軟件,1999年發(fā)布了第一個(gè)版本,2003年左右成熟起來(lái),并在嵌入式產(chǎn)品類型蓬勃發(fā)展的 2000年到2010年之間獲得了大量的應(yīng)用,廣泛應(yīng)用于工業(yè)控制系統(tǒng)、功能手機(jī)、數(shù)碼相框等類型的產(chǎn)品中,其中尤以華為的數(shù)碼相框、聯(lián)芯的功能手機(jī)方案、RDA 的功能手機(jī)方案為代表。本人于 2002 年成立了飛漫軟件,嘗試?yán)瞄_(kāi)源和商業(yè)并舉的方式(雙許可證模式)運(yùn)營(yíng) MiniGUI 及其產(chǎn)品,獲得了一定意義上的成功,期間也有很多經(jīng)驗(yàn)教訓(xùn)。
自上面這篇文章發(fā)布以來(lái),又有八年時(shí)間過(guò)去了,斗轉(zhuǎn)星移,AI 成為下一個(gè)高科技領(lǐng)域的競(jìng)爭(zhēng)焦點(diǎn)。在操作系統(tǒng)及基礎(chǔ)軟件領(lǐng)域,Android 已經(jīng)占據(jù)了除蘋(píng)果之外的所有智能手機(jī)的市場(chǎng)份額,但并沒(méi)有完全替代所有基于 Linux 的智能設(shè)備以及其他更多的嵌入式實(shí)時(shí)系統(tǒng),仍然有很多客戶在使用 MiniGUI 開(kāi)發(fā)各類智能設(shè)備;另一方面,MiniGUI 當(dāng)年的競(jìng)爭(zhēng)對(duì)手 Qt 幾易其主,但仍然在頑強(qiáng)生存著。當(dāng)年時(shí)興的“嵌入式系統(tǒng)”字眼,已被“物聯(lián)網(wǎng)”取代,華為的 liteOS以及其他本土開(kāi)發(fā)人員發(fā)展起來(lái)的 RT-Thread、SylixOS 等 RTOS(實(shí)時(shí)操作系統(tǒng))產(chǎn)品,獲得了政府部門甚至資本市場(chǎng)的支持,從而獲得了新的發(fā)展契機(jī)。
作為 MiniGUI 的原創(chuàng)者,本人對(duì)這款軟件的感情自不必說(shuō)。但是,除了我本人之外,還有更多的飛漫軟件同事(包括高總這些 MiniGUI 的早期用戶及開(kāi)發(fā)者)為 MiniGUI 的發(fā)展傾注了諸多心血。
萬(wàn)目前供職于深圳一家明星企業(yè),是當(dāng)年飛漫深圳研發(fā)團(tuán)隊(duì)的負(fù)責(zé)人,侯是架構(gòu)師,現(xiàn)在珠海創(chuàng)業(yè)。2007年,飛漫深圳團(tuán)隊(duì)在萬(wàn)和侯的領(lǐng)導(dǎo)下,開(kāi)始負(fù)責(zé) MiniGUI 的維護(hù)工作。在2009年左右,這個(gè)團(tuán)隊(duì)為 MiniGUI 開(kāi)發(fā)了一整套的動(dòng)畫(huà)支持框架和界面開(kāi)發(fā)技術(shù)。若沒(méi)有 Android 的橫空出世,這些技術(shù)本可以應(yīng)用于功能手機(jī)的升級(jí)改造中,為功能手機(jī)提供優(yōu)秀的 UI/UX 解決方案。但 Android 的開(kāi)源免費(fèi),Google 的大力推廣,卻讓這些技術(shù)喪失了應(yīng)用和發(fā)展的機(jī)會(huì)。
董目前供職于小米,是 miniStudio 產(chǎn)品的主要開(kāi)發(fā)者。miniStudio 是一個(gè)基于 Eclipse 的集成開(kāi)發(fā)環(huán)境,提供了“所見(jiàn)即所得”的 GUI 界面編輯工具。為了實(shí)現(xiàn)GUI 應(yīng)用的編程便利性,董改造了 MiniGUI 控件的編程框架,開(kāi)發(fā)了 mGNCS(新控件集)組件,并且引入外觀渲染器這樣一種高級(jí)的 UI 定制體系和方案,領(lǐng)導(dǎo)團(tuán)隊(duì)開(kāi)發(fā)了 miniStudio 產(chǎn)品。時(shí)隔多年的今天,當(dāng)我從服務(wù)器找到 miniStudio 1.0.8 for Windows 版本,安裝到電腦上并運(yùn)行時(shí),我仍然驚訝于這款軟件提供的可視化編程能力,就算在今天,也是難能可貴的!但飛漫軟件并沒(méi)有花精力推廣和發(fā)展 miniStudio,也沒(méi)有基于 miniStudio 發(fā)展出可以良性循環(huán)的商業(yè)模式出來(lái),不禁令人扼腕嘆息。
mDolphin 是基于 WebKit的瀏覽器產(chǎn)品,張、呂為前后兩名主力開(kāi)發(fā)人員,該產(chǎn)品的開(kāi)發(fā)歷時(shí)多年持續(xù)演進(jìn),甚至成功應(yīng)用于聯(lián)芯的功能手機(jī)方案當(dāng)中。mDolphin 是 MiniGUI 上的一款典型的大型應(yīng)用軟件,除了其本身的應(yīng)用價(jià)值之外,也有力地證明了 MiniGUI 產(chǎn)品的成熟性。目前,張作為技術(shù)專家供職于阿里巴巴,呂在互聯(lián)網(wǎng)領(lǐng)域創(chuàng)業(yè)。
上面提到的這些曾供職于飛漫軟件的前同事,為 MiniGUI 的發(fā)展付出了自己的青春年華,他們的技術(shù)能力也得到了極大的提升和鍛煉。不論他們后來(lái)從事什么行業(yè),或打工或創(chuàng)業(yè),在飛漫軟件圍繞 MiniGUI 所做的開(kāi)發(fā)工作,仍然是其履歷中重要的一筆。除了他們之外,在長(zhǎng)達(dá)十多年的發(fā)展歷程中,飛漫軟件前后為業(yè)界培養(yǎng)了近百名優(yōu)秀的高級(jí)軟件工程師,限于篇幅不能一一列舉。他們有的供職于騰訊、阿里等大型互聯(lián)網(wǎng)公司的關(guān)鍵技術(shù)崗位,有的在移動(dòng)互聯(lián)網(wǎng)等領(lǐng)域創(chuàng)業(yè),他們圍繞著 MiniGUI 所做的開(kāi)發(fā)和維護(hù)工作,讓他們受益一生。
上周去深圳,當(dāng)萬(wàn)在其供職的企業(yè)熟練地向他當(dāng)前的同事演示和講述 MiniGUI 之上的動(dòng)畫(huà)框架和相關(guān)技術(shù)時(shí),我才深切感受到,高、萬(wàn)、侯、董以及其他為 MiniGUI 的發(fā)展傾注過(guò)精力的開(kāi)發(fā)人員對(duì) MiniGUI 的感情并不比我差多少。
和高總他們吃飯的時(shí)候,高總提到 MiniGUI 仍然有很旺盛的需求,仍然可以繼續(xù)發(fā)展。其實(shí)就這個(gè)問(wèn)題,幾乎每次到深圳和高、侯他們吃飯喝酒,都會(huì)拿出來(lái)爭(zhēng)論一番。他們認(rèn)為 MiniGUI 仍然有旺盛的市場(chǎng)需求,應(yīng)該繼續(xù)發(fā)展,就這么丟下不管實(shí)在可惜;我則認(rèn)為每個(gè)產(chǎn)品都有自己的生命周期,MiniGUI 從 1999 年到現(xiàn)在都已經(jīng)十多年了,生命周期差不多到頭了。
本人從 2010 年開(kāi)始,領(lǐng)導(dǎo)原飛漫軟件的團(tuán)隊(duì)開(kāi)發(fā)過(guò) Android 上的工具類 App(領(lǐng)航桌面、鎖屏等),定制過(guò)智能電視方案,現(xiàn)在則另起爐灶在智能硬件和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域創(chuàng)業(yè)。大概從2012 年開(kāi)始,MiniGUI 的開(kāi)發(fā)處于停滯狀態(tài),除了將萬(wàn)、侯他們開(kāi)發(fā)的最新版本以及 mDolphin 開(kāi)源發(fā)布之外,幾乎沒(méi)有再做過(guò)大的更新。但從2015年開(kāi)始,MiniGUI 的需求又變得旺盛起來(lái),每年都會(huì)有客戶主動(dòng)找飛漫軟件獲得 MiniGUI 的商業(yè)授權(quán)。
折騰多年以后,回過(guò)頭來(lái)反思 MiniGUI 和飛漫軟件走過(guò)的路,我之所以認(rèn)為 MiniGUI 的生命周期已到,大致是由于飛漫軟件未能取得心目中的成功。換句話說(shuō),我把技術(shù)和生意搞混淆了。一個(gè)生意可能無(wú)法持續(xù)按照單一的模式去運(yùn)營(yíng),但技術(shù)卻不會(huì)輕易過(guò)時(shí)。
舉個(gè)典型的例子 MySQL。MySQL的早期運(yùn)營(yíng)公司使用雙許可證模式,獲得了一定程度上的商業(yè)成功,后來(lái)被 Oracle 收購(gòu),雙許可證模式基本已經(jīng)完成了它的歷史使命,但 MySQL 的應(yīng)用卻隨著互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、云服務(wù)的發(fā)展而越發(fā)普及,就算后來(lái)出現(xiàn)了諸多 NoSQL 數(shù)據(jù)庫(kù),但 MySQL 仍然展現(xiàn)著其旺盛的生命力。
再比如 OpenGL 這類規(guī)范或者基礎(chǔ)設(shè)施,發(fā)展了幾十年,從未見(jiàn)過(guò)其過(guò)時(shí)。Apache、X Window 等等技術(shù)或開(kāi)項(xiàng)目,幾乎是開(kāi)源世界的常青樹(shù),Linux 內(nèi)核就更不用說(shuō)了。
顯然,只要是有市場(chǎng)需求和用戶基礎(chǔ)的基礎(chǔ)軟件,持續(xù)發(fā)展才是其主旋律;容易過(guò)時(shí)的是生意,而不是技術(shù)本身。
作為一款開(kāi)源軟件作品,MiniGUI 在技術(shù)上是成熟的,成功的;失敗的只是生意:飛漫軟件并沒(méi)有因?yàn)?MiniGUI 而獲得大的發(fā)展。我相信拋開(kāi)生意,仍然有可能找到一種方法可以讓 MiniGUI 繼續(xù)發(fā)展下去。
就如何發(fā)展 MiniGUI 的問(wèn)題,最近集中思考了幾天。后來(lái)在宋寶華老師(知名 Linux 內(nèi)核專家)的微信群里,宋老師找我約稿,我才確定了本文的題目:《MiniGUI 的涅槃重生之路》。
先談最容易談的:技術(shù)方面
技術(shù)方面,在圍繞 MiniGUI 的軟件棧當(dāng)中,應(yīng)重點(diǎn)做好如下三方面的工作:
-
在底層,為適配最新的硬件和 Linux 內(nèi)核技術(shù)(主要指 GPU、OpenGL ES、Open VG 和 Direct Rendering Manager),做一些相關(guān)的工作。MiniGUI 3.0 當(dāng)中,以窗口為單位,MiniGUI 支持虛擬緩沖區(qū)渲染,以進(jìn)程為單位,通過(guò)使用特定的圖形引擎,可以將單個(gè)進(jìn)程顯示在單獨(dú)的顯示平面(Surface)上。在這兩點(diǎn)基礎(chǔ)上結(jié)合 GPU 渲染,就可以實(shí)現(xiàn) Android、iOS 等智能手機(jī)操作系統(tǒng)的 UI 效果了。
-
為方便MiniGUI應(yīng)用的開(kāi)發(fā),需要發(fā)展集成開(kāi)發(fā)環(huán)境,可以探索更高級(jí)的編程接口封裝,甚至使用腳本語(yǔ)言來(lái)編寫(xiě) MiniGUI 應(yīng)用程序甚至一般的嵌入式應(yīng)用程序。董在飛漫工作期間發(fā)展的 mGNCS 和 miniStudio 是一個(gè)非常好的嘗試,可以作為繼續(xù)發(fā)展的基礎(chǔ)。但由于這幾年移動(dòng)互聯(lián)網(wǎng)的大力發(fā)展,導(dǎo)致 C/C++ 開(kāi)發(fā)者越來(lái)越稀缺,如果新的編程框架仍然使用 C/C++ 作為編程語(yǔ)言,則會(huì)對(duì)產(chǎn)品或技術(shù)的推廣造成很大的影響。作為工具,需要考慮降低開(kāi)發(fā)者的入門門檻。另外,新的編程接口封裝,不應(yīng)該僅僅限于 GUI 編程,而應(yīng)該在一個(gè)統(tǒng)一的應(yīng)用開(kāi)發(fā)模型下,將嵌入式、物聯(lián)網(wǎng)設(shè)備開(kāi)發(fā)的其他部分也有機(jī)整合起來(lái)。這方面,近幾年發(fā)展起來(lái)的服務(wù)器端 JavaScript 框架 Node.js 是一個(gè)可以參考的成功案例。當(dāng)然,嵌入式或者物聯(lián)網(wǎng)設(shè)備的開(kāi)發(fā)有資源受限的問(wèn)題,在開(kāi)發(fā)效率和程序性能方面需要作出一些權(quán)衡,這有難度,但這也許就是可以創(chuàng)新的地方。
-
和其他開(kāi)源項(xiàng)目合作,將 MiniGUI 作為其原生支持選項(xiàng),比如 WebKit。此舉可一方面發(fā)展 MiniGUI 之上的關(guān)鍵應(yīng)用軟件,另一方面可以擴(kuò)大 MiniGUI 的生態(tài)體系,得到更多人的關(guān)注。
以上技術(shù)方面的未盡事宜,只要有開(kāi)發(fā)者,假以時(shí)日,都是可以做出來(lái)的。但最麻煩的是誰(shuí)來(lái)養(yǎng)這些開(kāi)發(fā)者,或者,說(shuō)白了錢從哪兒來(lái)?
如果是生意,該如何做?
這么多年靠技術(shù)創(chuàng)業(yè),我發(fā)現(xiàn)單純靠技術(shù)做生意是最難的,要難過(guò)任何一種傳統(tǒng)的生意模式,比如開(kāi)飯館,做代理等等。大家都知道,在中國(guó)市場(chǎng),軟件的價(jià)值往往會(huì)被低估,通過(guò)賣軟件副本來(lái)賺錢的時(shí)代也已經(jīng)一去不復(fù)返,所以中國(guó)這篇土壤上從來(lái)沒(méi)有孕育出微軟這樣的巨頭。在這樣的一個(gè)大環(huán)境下,飛漫之所以能夠依靠 MiniGUI 這樣一個(gè)單一業(yè)務(wù)堅(jiān)持十多年,在 MiniGUI 停止更新后還能有一些收入,可以說(shuō)完全是因?yàn)檫\(yùn)氣。但任何事情都有雙面性,中國(guó)企業(yè)在互聯(lián)網(wǎng)商業(yè)模式方面的探索,促進(jìn)了騰訊、阿里等企業(yè)的飛速發(fā)展。所以,這里我可以探討一個(gè)假設(shè):假如能夠重來(lái),我會(huì)選擇什么樣的模式來(lái)做 MiniGUI 這個(gè)生意?
首先,我不會(huì)天真地認(rèn)為 MiniGUI 這個(gè)生意可以做到每年上億的營(yíng)業(yè)收入,我認(rèn)為一千萬(wàn)元的年收入規(guī)模對(duì)這樣一個(gè)軟件來(lái)講就已經(jīng)很好了。
其次,我認(rèn)為 2010 年之前飛漫軟件采取的雙許可證商業(yè)模式是正確的,是當(dāng)時(shí)條件下的正確選擇,為飛漫軟件的進(jìn)一步發(fā)展積累了資金。但在 2010 年或更早,應(yīng)該作出商業(yè)模式上的調(diào)整(當(dāng)然,前提是本人不認(rèn)為 MiniGUI 的生命周期已結(jié)束,這是眼界的局限性問(wèn)題)。
最后,圍繞 MinIGUI 的生意模式,正確的做法應(yīng)該是:利用開(kāi)源軟件優(yōu)勢(shì),持續(xù)擴(kuò)大用戶(開(kāi)發(fā)者)群體,維持一個(gè)小規(guī)模(10到15人左右)的軟件公司,在確保公司可以長(zhǎng)期生存的情況下,靜候市場(chǎng)發(fā)生變化,尋找爆發(fā)的機(jī)會(huì)或者被收購(gòu)。
就我目前的狀況,我的精力不允許再組建一個(gè)完整的團(tuán)隊(duì)來(lái)運(yùn)營(yíng)MiniGUI,將其作為一個(gè)生意來(lái)做。但在這里,我可以給出一個(gè)供參考的商業(yè)模式,當(dāng)然,這個(gè)商業(yè)模式亦可供 RT-Thread、SylixOS 等基礎(chǔ)軟件創(chuàng)業(yè)團(tuán)隊(duì)參考:
-
使用 Apache許可證發(fā)布基礎(chǔ)軟件(比如操作系統(tǒng)、函數(shù)庫(kù)等),不要再使用 GPL/LGPL 等條款發(fā)布。這樣可以迅速獲得最大程度的商業(yè)應(yīng)用,擴(kuò)大市場(chǎng)占有率。要知道,假如 Android 使用 GPL 許可證發(fā)布,是絕對(duì)不可能獲得如此大的成功的。
-
提供收費(fèi)的開(kāi)發(fā)工具,比如 MiniGUI 的集成開(kāi)發(fā)環(huán)境miniStudio,并按開(kāi)發(fā)人員數(shù)量及使用年限提供許可。開(kāi)源這類工具軟件的意義不大,但這類工具軟件運(yùn)行在桌面電腦上,所以可以通過(guò)云端來(lái)控制其許可證,還可以通過(guò)云端來(lái)分發(fā)一些收費(fèi)的模塊或者提供技術(shù)支持服務(wù)。這樣的模式下,工具軟件的銷售成本就會(huì)變得非常低,用戶甚至可以在網(wǎng)頁(yè)上實(shí)現(xiàn)在線下單,并通過(guò)郵件獲得許可證。
假如采取以上的商業(yè)模式,通過(guò)適當(dāng)推廣,每年在全球范圍內(nèi)發(fā)展和保持 500 名付費(fèi)開(kāi)發(fā)者,則基本上可以養(yǎng)活一個(gè) 15人規(guī)模的小軟件公司。假如推廣得力,達(dá)到一千萬(wàn)元的年銷售規(guī)模也是可能的。
-
開(kāi)源軟件
+關(guān)注
關(guān)注
0文章
210瀏覽量
15906 -
MiniGUI
+關(guān)注
關(guān)注
5文章
45瀏覽量
28773 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209521
原文標(biāo)題:魏永明: MiniGUI的涅槃重生之路
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論