本文系轉(zhuǎn)載疑务,著作權(quán)歸作者所有。
商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)埠况,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處痴怨。
作者: 魏永明
來(lái)源: 微信公眾號(hào)linux閱碼場(chǎng)(id: linuxdev)
本文背景
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)人物”阶界。
前段時(shí)間去深圳出差,約了幾個(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)。有關(guān)詳情平窘,大家可以在網(wǎng)上搜索本人在 2009 年發(fā)表的《MiniGUI 十年回顧》這篇文章:
http://www.fmsoft.cn/zhcn/about/blog/minigui/
[圖片上傳失敗...(image-885690-1572520264304)]
自上面這篇文章發(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ù)了除蘋果之外的所有智能手機(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è)篡悟。
[圖片上傳失敗...(image-8f1f52-1572520264305)]
上面提到的這些曾供職于飛漫軟件的前同事谜叹,為 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ì)參考:
A. 使用 Apache許可證發(fā)布基礎(chǔ)軟件(比如操作系統(tǒng)哄啄、函數(shù)庫(kù)等)雅任,不要再使用 GPL/LGPL 等條款發(fā)布。這樣可以迅速獲得最大程度的商業(yè)應(yīng)用咨跌,擴(kuò)大市場(chǎng)占有率沪么。要知道,假如 Android 使用 GPL 許可證發(fā)布锌半,是絕對(duì)不可能獲得如此大的成功的禽车。
B. 提供收費(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ī)模也是可能的巾兆。
更多精彩更新中……歡迎關(guān)注賬號(hào):linux閱碼場(chǎng)(id: linuxdev)