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