魏永明: 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 编程,而应该在一个统一的应
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)
- 基于嵌入式Linux系统的导航软件设计思路(03-17)
- 新型嵌入式机器视觉系统的设计研究(04-21)