魏永明: MiniGUI的涅槃重生之路

本文系轉載,著做權歸做者全部。
商業轉載請聯繫做者得到受權,非商業轉載請註明出處。linux

做者: 魏永明數據庫

來源: 微信公衆號linux閱碼場(id: linuxdev)編程

file

本文背景segmentfault

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/abo...框架

file

自上面這篇文章發佈以來,又有八年時間過去了,斗轉星移,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 產品的成熟性。目前,張做爲技術專家供職於阿里巴巴,呂在互聯網領域創業。

file

上面提到的這些曾供職于飛漫軟件的前同事,爲 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 的涅槃重生之路》。

1、先談最容易談的:技術方面

技術方面,在圍繞 MiniGUI 的軟件棧當中,應重點作好以下三方面的工做:

  1. 在底層,爲適配最新的硬件和 Linux 內核技術(主要指 GPU、OpenGL ES、Open VG 和 Direct Rendering Manager),作一些相關的工做。MiniGUI 3.0 當中,以窗口爲單位,MiniGUI 支持虛擬緩衝區渲染,以進程爲單位,經過使用特定的圖形引擎,能夠將單個進程顯示在單獨的顯示平面(Surface)上。在這兩點基礎上結合 GPU 渲染,就能夠實現 Android、iOS 等智能手機操做系統的 UI 效果了。
  2. 爲方便MiniGUI應用的開發,須要發展集成開發環境,能夠探索更高級的編程接口封裝,甚至使用腳本語言來編寫 MiniGUI 應用程序甚至通常的嵌入式應用程序。董在飛漫工做期間發展的 mGNCS 和 miniStudio 是一個很是好的嘗試,能夠做爲繼續發展的基礎。但因爲這幾年移動互聯網的大力發展,致使 C/C++ 開發者愈來愈稀缺,若是新的編程框架仍然使用 C/C++ 做爲編程語言,則會對產品或技術的推廣形成很大的影響。做爲工具,須要考慮下降開發者的入門門檻。另外,新的編程接口封裝,不該該僅僅限於 GUI 編程,而應該在一個統一的應用開發模型下,將嵌入式、物聯網設備開發的其餘部分也有機整合起來。這方面,近幾年發展起來的服務器端 JavaScript 框架 Node.js 是一個能夠參考的成功案例。固然,嵌入式或者物聯網設備的開發有資源受限的問題,在開發效率和程序性能方面須要做出一些權衡,這有難度,但這也許就是能夠創新的地方。
  3. 和其餘開源項目合做,將 MiniGUI 做爲其原生支持選項,好比 WebKit。此舉可一方面發展 MiniGUI 之上的關鍵應用軟件,另外一方面能夠擴大 MiniGUI 的生態體系,獲得更多人的關注。

以上技術方面的未盡事宜,只要有開發者,假以時日,都是能夠作出來的。但最麻煩的是誰來養這些開發者,或者,說白了錢從哪兒來?

2、若是是生意,該如何作?

這麼多年靠技術創業,我發現單純靠技術作生意是最難的,要難過任何一種傳統的生意模式,好比開飯館,作代理等等。你們都知道,在中國市場,軟件的價值每每會被低估,經過賣軟件副原本賺錢的時代也已經一去不復返,因此中國這篇土壤上歷來沒有孕育出微軟這樣的巨頭。在這樣的一個大環境下,飛漫之因此可以依靠 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)

file

相關文章
相關標籤/搜索