2014年5月22日,由Digia官方主办的Qt开发者大会在北京召开,介绍了Qt 5.3的最新改进,并发布了全新的Qt嵌入式企业版。会后,Digia国际产品高级副总裁Tommi Laitinen和Qt项目首席维护工程师Lars Knoll接受了媒体采访。
一般人对Qt的印象,还停留在诺基亚功能机时代,但如今的Qt早已今非昔比,不少人使用Qt开发跨平台原生应用。随着5.3版本的发布,Qt支持超过14个系统平台,进入最强跨平台开发工具的行列。
认识全新的Qt
在2011年到2012年间,Qt的主导权逐渐从诺基亚移交到芬兰公司Digia手上,Digia对Qt十分重视,研发和推广不遗余力,据Digia高级副总裁Tommi Laitinen透露,2013年Digia对Qt的研发投入超过1500万欧元。
Qt每隔6个月发行一个大版本,分为开源版和企业版,开源版采用LGPL协议授权,开发者可以贡献代码,协助引导和塑造Qt未来的发展。企业版则包括更多的高级功能,以及Digia的企业服务,比如它最近推出的PaaS应用托管平台。
Qt使用C++开发,包括跨平台类库、集成开发工具以及集成开发环境Qt creator。Qt拥有50万以上的开发者,有众多知名软件使用Qt进行开发,如Mathematica、Skype、Google Earth、Maya等。
Qt支持的平台包括Windows、Mac、Linux等桌面操作系统,QNX、VxWorks、Embedded Linux等嵌入式平台,Android、iOS、WP/Windows Runtime三大移动操作系统。
Qt使用一个类似于JVM的中间件来屏蔽硬件的差异,并提供GUI和插件机制,对于Android、iOS等主要开发语言为非C++语言的平台,可以通过JNI和CocoaTouch的插件机制来调用,主要的开发工作在Qt中完成。
就Qt目前的发展情况来看,使用Qt开发的应用程序或用户交互程序,原代码可以运行在不同的操作系统上面,比如Windows、Linux、Mac、安卓、IOS,支持14个主流操作系统,包括嵌入式的、移动的、实时的。
“对于开发者和企业用户而言,只需要开发一份代码,就可以在不同的平台部署这些应用程序。节省了以前针对不同平台所需配备的研发人力和资金。” TuukkaTurunen表示。
“一份代码,跨平台部署”,这是QT对开发者的承诺,也是QT为开发者提供的前所未有的便利。
为什么Qt能够支持如此多的操作系统呢?说到这个问题时,Lars Knoll不无自豪的表示: “Qt 提供了多功能和易於应用的API,使得Qt成为领先的跨平台UI和应用程序的框架。程序员只需要使用Qt的API,不用其他操作系统,就能创造出非常复杂的应用程序。”
所谓的跨平台,实际上是API类库的跨平台,不同的操作系统,就会用到不同的类库。而这些是通过Qt的平台抽象层来实现,在这一层里,Qt把所有跟具体操作系统平台相关的信息,做了封装,对于最终的开发者来讲,不用再关心低层具体是哪一套操作系统。
做到这一点非常不容易,因为实现跨平台很大的一个挑战就在于效率问题,当开发者仅做一个平台的时候,效率可以做的比较高,但是一旦跨了不同平台,效率的问题变得复杂。这里所谓的效率就是这个应用程序做出来了在机器上运行的速度。
用户能够在Qt开发的应用程序,就算是不同的设备都能直接转换不同的操作系统,无需作出任何的修改。这种多功能性和灵活性就是无与伦比的跨平台开发体验和使用Qt成功的关键。
什么时候需要用Qt?
每一个工具都有适合的使用场景,Qt也不例外,对于开发者来说,是否选用一种技术,要看这个技术和他的需求是否契合。
Qt适合的应用场景如下:
跨平台原生应用。与java相比,Qt的优势是能够开发跨平台的原生应用,充分利用目标平台的性能和资源。比如如果需要开发Linux应用,或者支持Win/Mac双系统的原生应用,Qt是最佳选择。
嵌入式设备。嵌入式设备重视性能以及用户界面,而这则是Qt得意的领域。比如战信同普这样专注于嵌入式图形开发领域的公司,就将Qt作为它的系统架构的核心之一。
重视性能的移动应用。Qt从5.2版本起正式支持Android和iOS,对Windows RT的支持则从5.3开始。由于Qt Mobile比较新,对一些硬件接口以及webengine的支持还不到位,因此采用Qt来进行移动跨平台开发并不是首选,但如果遇到需要重视性能的移动应用,则使用Qt十分合适,适当的优化能将设备的每一丝性能都榨出来。
Qt的未来
对于Qt的未来,Digia国际产品高级副总裁Tommi Laitinen和Qt项目首席维护工程师Lars Knoll做了一些介绍。
Qt会以每年发布两个大版本的进度持续维护和更新,目前的重点是对Windows RT支持的完善、对嵌入式企业版的支持,以及PaaS云服务和维护既有的平台。更长远的目标则是对嵌入式设备的支持,以及对互联网应用的支持。Qt会维持开源版和商业版两种版本,采用开源的核心技术加付费的解决方案和服务的商业模式来发展盈利。
中国对于Qt来说是非常重要的市场,Qt中国的营收,2013年比2012年增长了100%,Qt会更加重视中国市场,以及对中国开发者的支持合作。
对于开发者来说,Qt作为目前最强大的跨平台开发框架之一,不容错过,如果以前没有接触过,那么现在正是了解Qt的良机,相信它会为你带来不一样的感受。
更好的用户体验和付费模式
作为一款开发工具而言,其根本目的就是为开发者提供便利,使开发者能够更快、更好的开发应用程序,这是不难理解的。但是在开发者大会上,Digia的发言人也一再的向我们强调,Qt5.3能够为用户提供更好的使用体验。Qt是如何做到的呢?
针对这个问题,Lars Knoll向我们解释道:“从技术的角度上来讲,Qt从设计之初就坚持跨平台的核心理念,专注于用户体验,基于这些传统和历史,Qt技术可以很好帮助开发者实现卓越的,领先的用户界面或应用程序。”
他还用目前比较热门的嵌入式设备领域为我们举了个例子,“在过去这几年看到我们的客户,对于用户体验或用户交互的要求越来越高。我们身边的设备带多点触屏、手势识别、3D等功能的也越来越多,这些设备大部分都是嵌入式设备。除了用户界面和用户体验的需求提高外,大家也在追求更高的性能,运行一定要流畅。看到这个趋势,Qt也一直在加大这方面的研发投入,包括汽车导航设备,前排和后排娱乐设备,数字电视,机顶盒等等。”
在此次开发者大会上,除了推出最新的Qt5.3之外,Digia还对Qt的收费模式进行了很大变革,以便开发者能够更好的使用Qt。
“我们主要是负责Qt整体研发和产品演进,通常我们有两种授权方式,一个是企业版(Qt Enterprise)。另外一个是开源版(LGPL版),Qt的企业版,是收费的,LGPL版是不付费的,但它有一些限制和功能上的不同。” Henry Wu在谈到以前的付费模式时说到。
这种收费模式由来已久,但是随着软件免费模式的逐渐加速,为用户提供免费的软件服务已经势在必行,而且对于大多数开发者来说,购买一款终生使用的开发工具并不现实——说不定哪天市场变化,就需要重新部署新的平台了。
而如果只使用免费版的话,对于需要赢利的开发者来说,由于功能的限制,并不能很好的使用。Digia正式考虑到了开发者的这种需求,因此采用了当前比较主流的订阅式使用方式——根据自己的需求,按月付费。
订阅式的方式能够让开发者更容易和灵活地使用Qt,并且享受到商业许可证的好处。“我们认为包月计划能降低门槛,给开发者更多的自由控制其使用。对於应用程序的开发,我们会继续提供每年订阅的永久许可证模式,以及固定期限的订阅计划,给开发者和企业选择使用符合他们需求的收费模式。” Tuukka Turunen表示。