本文系轉載,著作權歸作者所有,
商業轉載請聯系作者獲得授權,非商業轉載請注明出處,
作者: 魏永明
來源: 微信公眾號linux閱碼場(id: linuxdev)

本文背景
MiniGUI是最負盛名的開源Linux圖形用戶界面支持系統之一,本文是魏永明老師于公元2017年9月1日最新原創的討論MiniGUI的涅槃重生之路的文章,
作者簡介
魏永明,獲清華大學工學學士、碩士學位,其主持的 MiniGUI 專案,是早期國內最知名的幾大開源軟體專案之一,曾廣泛應用于功能手機、數碼相框等嵌入式產品中,魏永明于2002年創立北京飛漫軟體有限公司,成功實踐了圍繞開源軟體的雙許可證商業模式;于2015年10月聯合創辦北京玖柏圖技術股份有限公司并擔任 CEO,魏永明為 Linux 及開源軟體在中國的普及和應用做了大量作業,翻譯或編著若干技術著作(《Linux 實用教程》、《Linux 設備驅動程式》等);2013年,鑒于他在開源軟體領域做出的突出貢獻,被“中國開源軟體推進聯盟”評選為“開源軟體杰出貢獻人物”,
前段時間去深圳出差,約了幾個飛漫的前同事一起吃飯喝酒,其中高總目前供職于深圳一家數控系統開發廠商,2000年開始,高總就在 TCL 和創維力推 Linux + MiniGUI 的智能電視方案,甚至還基于 MiniGUI 開發了自己的瀏覽器,然而大家都知道,智能電視這一類產品在十年之后(2010年)才獲得了市場的認同并得到了大的發展和普及,其中 Android 從技術上保證了智能電視這類產品的成功,高總力推的方案在當時得不到產品部門的認同,其實無關技術,而是市場還不成熟,大家談起這些往事,各個唏噓不已,
MiniGUI 作為生長于國內土壤的一款開源軟體,1999年發布了第一個版本,2003年左右成熟起來,并在嵌入式產品型別蓬勃發展的 2000年到2010年之間獲得了大量的應用,廣泛應用于工業控制系統、功能手機、數碼相框等型別的產品中,其中尤以華為的數碼相框、聯芯的功能手機方案、RDA 的功能手機方案為代表,本人于 2002 年成立了飛漫軟體,嘗試利用開源和商業并舉的方式(雙許可證模式)運營 MiniGUI 及其產品,獲得了一定意義上的成功,期間也有很多經驗教訓,有關詳情,大家可以在網上搜索本人在 2009 年發表的《MiniGUI 十年回顧》這篇文章:
http://www.fmsoft.cn/zhcn/about/blog/minigui/

自上面這篇文章發布以來,又有八年時間過去了,斗轉星移,AI 成為下一個高科技領域的競爭焦點,在作業系統及基礎軟體領域,Android 已經占據了除蘋果之外的所有智能手機的市場份額,但并沒有完全替代所有基于 Linux 的智能設備以及其他更多的嵌入式實時系統,仍然有很多客戶在使用 MiniGUI 開發各類智能設備;另一方面,MiniGUI 當年的競爭對手 Qt 幾易其主,但仍然在頑強生存著,當年時興的“嵌入式系統”字眼,已被“物聯網”取代,華為的 liteOS以及其他本土開發人員發展起來的 RT-Thread、SylixOS 等 RTOS(實時作業系統)產品,獲得了政府部門甚至資本市場的支持,從而獲得了新的發展貧訓,
作為 MiniGUI 的原創者,本人對這款軟體的感情自不必說,但是,除了我本人之外,還有更多的飛漫軟體同事(包括高總這些 MiniGUI 的早期用戶及開發者)為 MiniGUI 的發展傾注了諸多心血,
萬目前供職于深圳一家明星企業,是當年飛漫深圳研發團隊的負責人,侯是架構師,現在珠海創業,2007年,飛漫深圳團隊在萬和侯的領導下,開始負責 MiniGUI 的維護作業,在2009年左右,這個團隊為 MiniGUI 開發了一整套的影片支持框架和界面開發技術,若沒有 Android 的橫空出世,這些技術本可以應用于功能手機的升級改造中,為功能手機提供優秀的 UI/UX 解決方案,但 Android 的開源免費,Google 的大力推廣,卻讓這些技術喪失了應用和發展的機會,
董目前供職于小米,是 miniStudio 產品的主要開發者,miniStudio 是一個基于 Eclipse 的集成開發環境,提供了“所見即所得”的 GUI 界面編輯工具,為了實作GUI 應用的編程便利性,董改造了 MiniGUI 控制元件的編程框架,開發了 mGNCS(新控制元件集)組件,并且引入外觀渲染器這樣一種高級的 UI 定制體系和方案,領導團隊開發了 miniStudio 產品,時隔多年的今天,當我從服務器找到 miniStudio 1.0.8 for Windows 版本,安裝到電腦上并運行時,我仍然驚訝于這款軟體提供的可視化編程能力,就算在今天,也是難能可貴的!但飛漫軟體并沒有花精力推廣和發展 miniStudio,也沒有基于 miniStudio 發展出可以良性回圈的商業模式出來,不禁令人扼腕嘆息,
mDolphin 是基于 WebKit的瀏覽器產品,張、呂為前后兩名主力開發人員,該產品的開發歷時多年持續演進,甚至成功應用于聯芯的功能手機方案當中,mDolphin 是 MiniGUI 上的一款典型的大型應用軟體,除了其本身的應用價值之外,也有力地證明了 MiniGUI 產品的成熟性,目前,張作為技術專家供職于阿里巴巴,呂在互聯網領域創業,

上面提到的這些曾供職于飛漫軟體的前同事,為 MiniGUI 的發展付出了自己的青春年華,他們的技術能力也得到了極大的提升和鍛煉,不論他們后來從事什么行業,或打工或創業,在飛漫軟體圍繞 MiniGUI 所做的開發作業,仍然是其履歷中重要的一筆,除了他們之外,在長達十多年的發展歷程中,飛漫軟體前后為業界培養了近百名優秀的高級軟體工程師,限于篇幅不能一一列舉,他們有的供職于騰訊、阿里等大型互聯網公司的關鍵技術崗位,有的在移動互聯網等領域創業,他們圍繞著 MiniGUI 所做的開發和維護作業,讓他們受益一生,
上周去深圳,當萬在其供職的企業熟練地向他當前的同事演示和講述 MiniGUI 之上的影片框架和相關技術時,我才深切感受到,高、萬、侯、董以及其他為 MiniGUI 的發展傾注過精力的開發人員對 MiniGUI 的感情并不比我差多少,
和高總他們吃飯的時候,高總提到 MiniGUI 仍然有很旺盛的需求,仍然可以繼續發展,其實就這個問題,幾乎每次到深圳和高、侯他們吃飯喝酒,都會拿出來爭論一番,他們認為 MiniGUI 仍然有旺盛的市場需求,應該繼續發展,就這么丟下不管實在可惜;我則認為每個產品都有自己的生命周期,MiniGUI 從 1999 年到現在都已經十多年了,生命周期差不多到頭了,
本人從 2010 年開始,領導原飛漫軟體的團隊開發過 Android 上的工具類 App(領航桌面、鎖屏等),定制過智能電視方案,現在則另起爐灶在智能硬體和移動互聯網領域創業,大概從2012 年開始,MiniGUI 的開發處于停滯狀態,除了將萬、侯他們開發的最新版本以及 mDolphin 開源發布之外,幾乎沒有再做過大的更新,但從2015年開始,MiniGUI 的需求又變得旺盛起來,每年都會有客戶主動找飛漫軟體獲得 MiniGUI 的商業授權,
折騰多年以后,回過頭來反思 MiniGUI 和飛漫軟體走過的路,我之所以認為 MiniGUI 的生命周期已到,大致是由于飛漫軟體未能取得心目中的成功,換句話說,我把技術和生意搞混淆了,一個生意可能無法持續按照單一的模式去運營,但技術卻不會輕易過時,
舉個典型的例子 MySQL,MySQL的早期運營公司使用雙許可證模式,獲得了一定程度上的商業成功,后來被 Oracle 收購,雙許可證模式基本已經完成了它的歷史使命,但 MySQL 的應用卻隨著互聯網、移動互聯網、云服務的發展而越發普及,就算后來出現了諸多 NoSQL 資料庫,但 MySQL 仍然展現著其旺盛的生命力,
再比如 OpenGL 這類規范或者基礎設施,發展了幾十年,從未見過其過時,Apache、X Window 等等技識訓開專案,幾乎是開源世界的常青樹,Linux 內核就更不用說了,
顯然,只要是有市場需求和用戶基礎的基礎軟體,持續發展才是其主旋律;容易過時的是生意,而不是技術本身,
作為一款開源軟體作品,MiniGUI 在技術上是成熟的,成功的;失敗的只是生意:飛漫軟體并沒有因為 MiniGUI 而獲得大的發展,我相信拋開生意,仍然有可能找到一種方法可以讓 MiniGUI 繼續發展下去,
就如何發展 MiniGUI 的問題,最近集中思考了幾天,后來在宋寶華老師(知名 Linux 內核專家)的微信群里,宋老師找我約稿,我才確定了本文的題目:《MiniGUI 的涅槃重生之路》,
一、先談最容易談的:技術方面
技術方面,在圍繞 MiniGUI 的軟體堆疊當中,應重點做好如下三方面的作業:
- 在底層,為適配最新的硬體和 Linux 內核技術(主要指 GPU、OpenGL ES、Open VG 和 Direct Rendering Manager),做一些相關的作業,MiniGUI 3.0 當中,以視窗為單位,MiniGUI 支持虛擬緩沖區渲染,以行程為單位,通過使用特定的圖形引擎,可以將單個行程顯示在單獨的顯示平面(Surface)上,在這兩點基礎上結合 GPU 渲染,就可以實作 Android、iOS 等智能手機作業系統的 UI 效果了,
- 為方便MiniGUI應用的開發,需要發展集成開發環境,可以探索更高級的編程介面封裝,甚至使用腳本語言來撰寫 MiniGUI 應用程式甚至一般的嵌入式應用程式,董在飛漫作業期間發展的 mGNCS 和 miniStudio 是一個非常好的嘗試,可以作為繼續發展的基礎,但由于這幾年移動互聯網的大力發展,導致 C/C++ 開發者越來越稀缺,如果新的編程框架仍然使用 C/C++ 作為編程語言,則會對產品或技術的推廣造成很大的影響,作為工具,需要考慮降低開發者的入門門檻,另外,新的編程介面封裝,不應該僅僅限于 GUI 編程,而應該在一個統一的應用開發模型下,將嵌入式、物聯網設備開發的其他部分也有機整合起來,這方面,近幾年發展起來的服務器端 JavaScript 框架 Node.js 是一個可以參考的成功案例,當然,嵌入式或者物聯網設備的開發有資源受限的問題,在開發效率和程式性能方面需要作出一些權衡,這有難度,但這也許就是可以創新的地方,
- 和其他開源專案合作,將 MiniGUI 作為其原生支持選項,比如 WebKit,此舉可一方面發展 MiniGUI 之上的關鍵應用軟體,另一方面可以擴大 MiniGUI 的生態體系,得到更多人的關注,
以上技術方面的未盡事宜,只要有開發者,假以時日,都是可以做出來的,但最麻煩的是誰來養這些開發者,或者,說白了錢從哪兒來?
二、如果是生意,該如何做?
這么多年靠技術創業,我發現單純靠技術做生意是最難的,要難過任何一種傳統的生意模式,比如開飯館,做代理等等,大家都知道,在中國市場,軟體的價值往往會被低估,通過賣軟體副本來賺錢的時代也已經一去不復返,所以中國這篇土壤上從來沒有孕育出微軟這樣的巨頭,在這樣的一個大環境下,飛漫之所以能夠依靠 MiniGUI 這樣一個單一業務堅持十多年,在 MiniGUI 停止更新后還能有一些收入,可以說完全是因為運氣,但任何事情都有雙面性,中國企業在互聯網商業模式方面的探索,促進了騰訊、阿里等企業的飛速發展,所以,這里我可以探討一個假設:假如能夠重來,我會選擇什么樣的模式來做 MiniGUI 這個生意?
首先,我不會天真地認為 MiniGUI 這個生意可以做到每年上億的營業收入,我認為一千萬元的年收入規模對這樣一個軟體來講就已經很好了,
其次,我認為 2010 年之前飛漫軟體采取的雙許可證商業模式是正確的,是當時條件下的正確選擇,為飛漫軟體的進一步發展積累了資金,但在 2010 年或更早,應該作出商業模式上的調整(當然,前提是本人不認為 MiniGUI 的生命周期已結束,這是眼界的局限性問題),
最后,圍繞 MinIGUI 的生意模式,正確的做法應該是:利用開源軟體優勢,持續擴大用戶(開發者)群體,維持一個小規模(10到15人左右)的軟體公司,在確保公司可以長期生存的情況下,靜候市場發生變化,尋找爆發的機會或者被收購,
就我目前的狀況,我的精力不允許再組建一個完整的團隊來運營MiniGUI,將其作為一個生意來做,但在這里,我可以給出一個供參考的商業模式,當然,這個商業模式亦可供 RT-Thread、SylixOS 等基礎軟體創業團隊參考:
A. 使用 Apache許可證發布基礎軟體(比如作業系統、函式庫等),不要再使用 GPL/LGPL 等條款發布,這樣可以迅速獲得最大程度的商業應用,擴大市場占有率,要知道,假如 Android 使用 GPL 許可證發布,是絕對不可能獲得如此大的成功的,
B. 提供收費的開發工具,比如 MiniGUI 的集成開發環境miniStudio,并按開發人員數量及使用年限提供許可,開源這類工具軟體的意義不大,但這類工具軟體運行在桌面電腦上,所以可以通過云端來控制其許可證,還可以通過云端來分發一些收費的模塊或者提供技術支持服務,這樣的模式下,工具軟體的銷售成本就會變得非常低,用戶甚至可以在網頁上實作在線下單,并通過郵件獲得許可證,
假如采取以上的商業模式,通過適當推廣,每年在全球范圍內發展和保持 500 名付費開發者,則基本上可以養活一個 15人規模的小軟體公司,假如推廣得力,達到一千萬元的年銷售規模也是可能的,
更多精彩更新中……歡迎關注賬號:linux閱碼場(id: linuxdev)

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/159440.html
標籤:Linux
