Linux的问题往往不是集中在技术或软件的可获得性问题,而是一个选择的问题。用户图形界面(GUI)的选择就体现了这一点。在Linux领域可以选择的GUI很多,商业可用的也有10种左右。当我们面临着如何为LiPS论坛选择可以成为标准的GUI时,技术偏好就必须让位于更多的公共性的因素。常常提起的是,作者个人与主要的GUI提供者例如QT(TrollTech),MiniGUI(魏老师),mGUI(移软)都有着相当长的个人和业务关系,所以这个选择就显得更加的“人情化”。如果没有一个科学的和公正的立场,那么结果可想而知。
从标准化角度和行业利益最大化的角度来看,在选择GUI之前我们设立3个原则:
1、自由原则,GUI的技术和授权方式必须能够为其使用者提供的自由度,既能够支持商业版本的应用,又要能够支持开源的应用。所以,LGPL,BSD, Mozilla等的授权方式比起GPL或者私有的授权协议来说更符合这个原则。
2、成熟原则,GUI必须通过极限应用的检验,例如如果应用环境中平均应用的代码行数在10万行的话,那么这个GUI必须通过超过100万行代码的单个应用的检验。通过这种检验我们可以直观地获得GUI在功能的丰富程度和代码的可扩展和鲁棒性。
3、适用原则,GUI必须是能够直接或者通过裁减运行在嵌入式环境中的,其API兼容性不应该因为这种裁减发生重大改变的(理想状况下是不变的)。
在这3个原则的指导下,我们对QT,miniGUI,GTK等GUI进行了对比,对比结果就不一一列举了。结论是,GTK更接近我们的原则,它是LGPL 的,大量的桌面应用都是基于GTK的,在手机中已经有了超过500万部的使用纪录。但是,美中不足的是,GTK的定制和裁减都是厂商的个体行为,没有回馈到开源社区。
所以,我们将工作的重点放在了加强GTK对“适用原则”的符合程度。我们通过与开源社区合作,提供了一个GTK的嵌入式补丁,目的是通过更改公用部分的处理,例如键盘和鼠标输入的替换等,在不改变Widget接口的情况在,达到嵌入场景的适应性。并且,不断的推动相关人士,加强对GTK社区的说复。目前已经取得初步的进展,首先GTK的主要维护者认识到了嵌入式的需求和目前现实的差距,以及相关机构和个人进行嵌入化的努力,同意在今后的版本中考虑嵌入式的需求。这是关键一步,迈向理想的“适用”,即嵌入并兼容。
从标准化角度和行业利益最大化的角度来看,在选择GUI之前我们设立3个原则:
1、自由原则,GUI的技术和授权方式必须能够为其使用者提供的自由度,既能够支持商业版本的应用,又要能够支持开源的应用。所以,LGPL,BSD, Mozilla等的授权方式比起GPL或者私有的授权协议来说更符合这个原则。
2、成熟原则,GUI必须通过极限应用的检验,例如如果应用环境中平均应用的代码行数在10万行的话,那么这个GUI必须通过超过100万行代码的单个应用的检验。通过这种检验我们可以直观地获得GUI在功能的丰富程度和代码的可扩展和鲁棒性。
3、适用原则,GUI必须是能够直接或者通过裁减运行在嵌入式环境中的,其API兼容性不应该因为这种裁减发生重大改变的(理想状况下是不变的)。
在这3个原则的指导下,我们对QT,miniGUI,GTK等GUI进行了对比,对比结果就不一一列举了。结论是,GTK更接近我们的原则,它是LGPL 的,大量的桌面应用都是基于GTK的,在手机中已经有了超过500万部的使用纪录。但是,美中不足的是,GTK的定制和裁减都是厂商的个体行为,没有回馈到开源社区。
所以,我们将工作的重点放在了加强GTK对“适用原则”的符合程度。我们通过与开源社区合作,提供了一个GTK的嵌入式补丁,目的是通过更改公用部分的处理,例如键盘和鼠标输入的替换等,在不改变Widget接口的情况在,达到嵌入场景的适应性。并且,不断的推动相关人士,加强对GTK社区的说复。目前已经取得初步的进展,首先GTK的主要维护者认识到了嵌入式的需求和目前现实的差距,以及相关机构和个人进行嵌入化的努力,同意在今后的版本中考虑嵌入式的需求。这是关键一步,迈向理想的“适用”,即嵌入并兼容。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/982/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表