奇趣科技(Trolltech)是一家什么样的公司?答:QT开发库的母公司。
完全基于Linux真正成长起来的公司仍然寥寥无几,而奇趣试图在开源里找到一条独特的发展之路。
David Almstrom,一位头发卷曲的瑞典人,奇趣科技(Trolltech)中国区首席代表,再次见到是在他那间中国风极为浓厚的办公室。在轻快的背景音乐下,摄影记者为他摆拍照片, “拍这样的照片,我需要音乐做背景,它可以给我灵感,让我更加上镜。”办公室里的中国味来自于David为自己选中的那个中式、刻有细致古式花纹的文件柜,和一张简单的黑桃木色长方形办公桌。而办公桌背后的两个足有两米高的彩色背板,是他两个女儿送的绘画作品,清新而明快。
这家总部位于挪威奥斯陆,1994年成立的公司,与其他软件开发公司所不同的是,两位创始人Haavard Nord和Eirik Chambe-Eng从一开始就选择了开源Linux。在上个世纪Linux刚刚萌芽之初,他们快速研发出自己的核心产品Qt和Qtopia,二者都是开发Linux手机和其他设备应用的可定制的开发环境和用户界面。从本质上说,Qtopia之于Linux犹如UIQ和Series 60之于Symbian。“1994年,开源的影响很小,但那个时候有很多独立的黑客和开发者,他们对开源的追崇和狂热,使规模不大的开源社区异常活跃。这种活跃决定了奇趣的选择和以后要走的路。” David说。
截止到今年8月份,奇趣科技服务的客户数已经达到了5000家,“对一家全球仅232名员工的企业来说,能够服务于5000名用户,不能不说是一个奇迹。” 奇趣科技(北京)有限公司副总经理兼奇趣科技专业服务部门亚洲主管Markus Mediger对此很是自豪。现在,奇趣科技核心的Qt和Qtopia已经被应用于数百万部已上市的Linux手持设备中。
寻求空白地带
2005年,奇趣科技在中国成立了中国办事处,试图攻入中国移动通信这块巨大的市场。
众所周知,在中国的移动设备通信领域,厮杀已相当激烈。奇趣科技选择了为移动通信运营商们提供自己的核心平台,而不是直接面对终端用户,而运营商们在奇趣科技提供的Qt或者Qtopia上也能够更容易的开发自己的产品设备。
KDAB是来自瑞典的一家公司,“他们希望能够成为奇趣的合作伙伴,他们认为Qt不仅能够为他们提供技术能力,还可以帮助他们开发产品。” David告诉《互联网周刊》,“同时,这些客户也在无形中帮助奇趣提高了其平台的价值,合作伙伴越多,奇趣作为平台公司的实力就越强,我们所给予的市场价值也就越大。”
为了与生态链各个环节的厂商寻求合作,奇趣最近还在美国设立了一个生态系统部门。“实际上我们并不对上下游的合作伙伴进行区分,奇趣会时刻关注这一生态链中,哪些公司是需要奇趣主动去合作的,这对奇趣的成功至关重要,所以只有一个奇趣合作伙伴的管理部门是不够的。同时,我们也通过给客户提供方案的方式进行合作,比如在一个会展中一起展示合作的产品,前不久在北京举办的2007 Linux移动通信展就可以看到奇趣芯片组的合作伙伴,以及Linux嵌入式的合作伙伴等。” 从2006年底开始,奇趣已经可以为合作伙伴提供在线支持。
2006年8月,奇趣科技推出了一部消费者可编程的手机。浅墨绿色外壳,简约平板设计,这款手机推出后在一家手机水货网站亮相时,已经有不少的手机迷为它清新的外形所吸引。奇趣科技确实成功的另辟了蹊径,这款标价600美元左右的手机不针对终端用户,也就是说在一般手机营业厅柜台看不到它的身影,它只为开发商和移动电话运营商提供一个可测试和改进新型移动电话服务的平台。而且前不久得到的奇趣科技的官方消息,发售一年有余,其库存的Greenphone电话已全部售完。“Greenphone的成功,部分得益于它填补了市场的空白。它提供了一个开放电话平台,既可用于试验,也可用于创建新型的应用软件。这在很大程度上吸引了开发者的参与。” 奇趣科技首席技术官Benoit Schillings说。
灵巧精灵
奇趣科技的英文名字—Trolltech,来自一个典故。Troll是挪威森林里的一种小精灵,尽管表情有些诡异和狰狞,但却是象征独立和个性化的化身,很贴近奇趣公司的核心理念。
从性情上看,David似乎很符合作为奇趣的一份子,他有着Troll所宣扬的个性,比如因为他喜欢中国古典家装风格,奇趣位于丰联广场21层的整个办公区都挂满了从潘家园淘来的老北京黑白照片。在这位在中国有着10年工作、生活经验老外的博客首页,你能看到两位瑞典小姑娘身穿中国旗袍的欧版风范,“那是我的两个女儿,她们都比我更了解中国。” David 不久前和女儿一起去中国剧院看瑞典儿童剧,坐在身旁的小姑娘已经可以滔滔不绝给他翻译舞台上的小剧情。“其实,我们在北京的外国同事都习惯在本地社区生活。”所以奇趣科技办事处的外国员工多少都可以用普通话交流,包括David。而问及是不是已经很了解在中国做生意时,David肯定的说,“2003年,我在中国有了自己第一笔生意的时候,当时觉得中国的客户比较天真,他们觉得做一个Linux手机是很容易的,不知道低成本、多功能的手机比生产一部电视机还复杂。现在情况有了变化,中国用户有了自己好的工程师,深知未来的挑战,同时也抱有更加美好的愿景。”
同微软、IBM这样的巨头们相比,全球仅232人的奇趣肯定只能是一家小公司,“但在开源圈子里,作为第一拨涉入开源的企业之一,奇趣就可以称得上是一家有规模的公司,因为完全基于Linux真正成长起来的公司仍然寥寥无几。”
前不久,那个头戴尖尖精灵帽、右手叼着一条小海鱼的Troll,从总部快递到了奇趣各个办事处,以后它会陪伴在奇趣全球每个办事处的前台小姐身旁,没有挪威海盗的勇猛,倒多了一份北欧精灵的奇思妙想。
说到Qt,不能不说到C++,这门伟大的语言。因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力。Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大的优势。相比于古老的MFC和使用C#的WPF来说,我更喜欢Qt来进行C++的界面设计,这也是我从新开始拾起Qt学习之路的原因。
说完了感受和学习的原因,就开始介绍Qt5了。我这里只做简单的介绍,重要的还是在学习过程中体会Qt的编程逻辑和设计思想。
Qt,坦白来说,并不只是一个界面库,他是C++编程思想的集大成者。它是得到完善的C++应用程序框架。使用Qt,在一定程度上你获得的是一个“一站式”、“全方位”的解决方案,STL、string、XML、数据库、网络这些零散的功能都包含在Qt中,并且得到了封装,一并开发者使用。
跨平台GUI通常有三种实现策略,分别是:
Qt 和 wxWidgets 一样,也是一个标准的 C++ 库。但是它的语法类似于 Java 的 Swing,十分清晰,而且使用信号槽(signal/slot)机制,让程序看起来很明白——这也是很多人优先选择 Qt 的一个很重要的原因。不过,所谓“成也萧何,败也萧何”。这种机制虽然很清楚,但是它所带来的后果是你需要使用 Qt 的 moc 对程序进行预处理,才能够再使用标准的 make 或者 nmake 进行正常的编译,并且信号槽的调用要比普通的函数调用慢大约一个数量级(Qt 4 文档中说明该数据,但 Qt 5 尚未有官方说明)。Qt 的界面也不是原生风格的,尽管 Qt 使用 style 机制十分巧妙地模拟了原生界面。另外值得一提的是,Qt 不仅仅能够运行在桌面环境中,还可以运行在嵌入式平台以及手机平台。
Qt 第一版于 1991 年由 Trolltech (奇趣科技)发布。后来在 2008 年,Nokia 斥资 1.5 亿美元收购 TrollTech,将 Qt 应用于 Symbian(塞班) 程序开发。2012 年 8 月 9 日,Nokia 将 Qt 以 400 万欧元的价格出售给 Digia。
伴随着 Qt,一直有两种授权协议:商业授权以及开源授权。在 Qt 的早期版本,商业授权包含一些开源授权不提供的组件,但是在近期版本则不存在这个问题。以往人们对 Qt 的开源授权多有诟病。早期版本的 Qt 使用与 GPL 不兼容的协议授权,这直接导致了 KDE 与 GNOME 的战争(由于 Linux 使用 GPL 协议发布,GPL 协议具有传染性,作为 Linux 桌面环境的 KDE 却是基于与 GPL 不兼容的 Qt 开发,这就不遵守 GPL 协议)。不过,现在 Qt 的开源版本使用的是 GPLv3 以及 LGPL 协议。这意味着,你可以将 Qt 作为一个库连接到一个闭源软件里面。可以说,Qt 协议的争议已经不存在了。
我的GitHub地址: https://github.com/heizemingjun