【专访】Qt 大会见闻,ifanr 独家专访 Qt & MeeGo 生态系统亚太区销售总监
上周五,ifanr 受邀参加了 Qt 北京开发者大会。这次活动邀请的媒体数量较少,大约十家,不到之前诺基亚开发者峰会的十分之一。但到场的开发者很多,有四百多人,而且人员构成与之前的诺基亚开发者峰会有所不同,当中有不少与会者还是在校大学生。
参展厂商也比较少,只有六家第三方厂商参加。不过这六家都比较强大,主要业务都是提供解决方案:Digia、Cybercom、叠拓、Symbio、瞬联、中科红旗。参展的一些产品会在访谈中进行介绍。
专访
David Almstrom 是诺基亚 Qt & MeeGo 生态系统亚太区负责人,来自瑞典,已经在中国待了十三年。David 2005 年加入奇趣科技,2008 年随着奇趣科技的收购加入诺基亚。
采访的时候我用 N8 录音,提纲记在 iPhone 上。一开始我还在想 David 看了 iPhone 会作何感想,结果发现他自己就是 Mac 用户,随身带着 iPhone、黑莓,当然,还有一部诺基亚。David 接下来想用的手机是 E7。
采访内容分为四个部分:Qt 对使用体验的影响、Qt 的跨平台能力、Qt 的发展与推广、Qt 部门在诺基亚的地位。
使用体验
Qt & MeeGo 生态系统业务发展总监 Chuck Piercey 演讲中说的这句话实在是再正确不过了。但在诺基亚的大力宣传下,普通用户都很困惑——Qt 和自己用手机有什么关系。那么,Qt 到底能通过哪些功能让开发者的程序对手机用户来说变得更有吸引力?或者说,Qt 能够通过怎样的方式让消费者更满意?
David:Qt 让开发工作变得更高效,节省了开发者的时间,最终用户看不到这些。但 Qt 的动画框架和手势框架可以提供很多新特效,让程序变得很酷、很有趣。所有开发者都能通过 Qt 用上这些手势和动画,这些很重要。
针对特效和手势,现场有个好例子——Cybercom 公司为中国移动开发的咪咕音乐客户端,下面是当时拍的视频:
我得说这程序的界面相当华丽,在 N8 上运行时,各种动画也很流畅,丝毫不拖泥带水。美中不足的是 20 秒左右出现的 “背景灯常亮” 开关,虚拟的开关似乎不会对点击做出响应,非要滑动才能切换。iOS 也有类似开关,但同时支持滑动和点击两种操作方式,前一种直观、后一种方便。这些细节不影响软件功能,但对用户体验来说影响很大。
开关的这个细节恰好是苹果在人机界面设计指南(Human Interface Guidelines)中所提到的。诺基亚也会为 Qt 开发者针对新开发工具的设计指导么?
David:我不知道。Qt 团队主要负责开发 SDK。我们会提供所有 SDK 相关的文档,但我不清楚其他部门会不会提供这类指导。不过我是觉得诺基亚应该这么做。
ifanr:诺基亚自己也在通过 Qt 开发 Symbian 和 MeeGo 的新用户界面。能不能谈谈新的 Symbian 用户界面?
David:新的 Symbian 用户界面将基于 Qt,之前被我们称为 Symbian^4,现在不再使用这样的命名方式,只有 Symbian。现有的 Symbian^3 机型能够升级到新的用户界面。新的用户界面仍在开发中——使用 Qt 和 QML 进行开发。
ifanr:区别在哪里?这两个平台的界面都用 Qt 开发,第三方也都用 Qt 开发程序。但在硬件性能方面,两个平台又有很大差别。比如 N8 和接下来的 MeeGo 手机。
David:这两个平台的体验会不同。由于屏幕尺寸差异,两个平台上程序的界面很可能也会不同。MeeGo 平台的屏幕尺寸更大,界面布局就可能和 Symbian 不同,速度也会有区别。这也是我们重新开发图形引擎的原因——我们必须要保证获得尽可能高的性能。对于 Symbian 平台来说,速度必须足够好,而在 MeeGo 上就必须做到极致。对于 Qt 来说,我们需要保证让它在 Symbian 平台上也能有不错的速度。MeeGo 平台就完全没有问题 (指硬件配置很高,降低了软件优化的难度)。
ifanr:但是大部分 S60V5 手机是没有图形加速器的。Qt 在这些机型上没有办法使用硬件加速,这会带来问题么?
David:这会对 S60V5 用户的体验造成一些影响。除非程序开发者非常出色,知道怎么样只通过 CPU 实现流畅的效果。如果开发者主要以 S60V5 等机型的用户为目标,这些程序在 N8 等新款 Symbian 手机上运行的速度会非常好。但如果开发者只考虑 MeeGo 平台为目标,那么程序在 S60V5 机型上的体验就不会太理想。这取决于开发者究竟想覆盖哪些平台。
除了界面以外,目前 Symbian 手机最大的问题可能是低效率、对新标准支持不佳的 S60 浏览器。诺基亚在会上特别强调了 Qt-WebKit。
ifanr:新的 WebKit 浏览器会采用 Qt-WebKit 来替代老的 WebKit 引擎么?比如 N8 的新浏览器会不会采用 Qt-WebKit?
David:会替代,但我不太清楚细节,不太清楚是什么时候由哪一款手机开始。那不是由我们负责的。WRT 运行环境还会保留在手机里面,但诺基亚的重点将转为 Qt-WebKit。当开发者开发 Web 程序的时候,我们希望他们采用 HTML5 进行开发。
ifanr:这么做的提升大么?
David:是的,Qt-WebKit 总是采用最新的 WebKit 引擎。诺基亚 3-4 年前采用的 WebKit 引擎版本在当时已经有 2-3 年的历史了。从浏览器的开发到手机面世经历了相当长的时间。使用 Qt WebKit 的意义非常重大,可以让手机持续获得最新版的浏览器引擎。
跨平台
Qt 部门提供了两个基于 QML 的跨平台官方演示程序,第一个是上图出现的小游戏,这是在 Nvidia Tegra 平台运行,通过电视输出的效果。
这个程序演示的重点是跨平台能力和开发的简单程序。它可以在 Win7 平板、MeeGo 上网本、Symbian、Maemo 手机等设备上运行。由一位不会 C++ 的设计师用 Qt Quick 写成。
Qt Quick 是以 QML 为核心的新一代 Qt 技术,用一位诺基亚开发者的话说,有了 Qt Quick 之后,Qt 才真正从类似类似 cocoa 的 UI 框架演变为类似 Cocoa Touch 的针对触摸屏移动设备优化的 UI 框架。更多技术细节请看官网介绍。
第二个是 Flickr 程序在 E7 上运行的效果,现场网速和 Flickr 在国内的情况都不理想,图片没有加载完:
ifanr:诺基亚总是强调 Qt 的跨平台能力。在平板和手机上由于屏幕尺寸的差异,必须要有不同的用户界面。那么 Qt 的跨平台能力有什么帮助呢?
David:开发程序不全是用户界面,还有应用逻辑。我们也知道屏幕大小对界面来说非常重要,我们在做的事是确保用户界面组件的移植工作尽可能简单高效。通过 QML,可以大幅提升用户界面移植的速度,让这个过程更平滑,减轻开发者负担。对于很多程序的移植来说,应用逻辑不需要很大改动。
现场也演示了一些实际的第三方跨平台应用,比如 Symbio 公司为一家欧洲客户开发的 Fuugo 移动电视程序,支持 MeeGo、Windows、Android、Symbian 平台。下面是 Fuugo 在 Hanvon Windows 7 平板和三星 Galaxy S Android 平台手机上的界面。
Symbio 在 Android 平台上使用 Google 的 SDK 开发,其它平台都采用 Qt。如果 Qt 支持 Android 的话,他们应该能省不少麻烦。有些开发者已经在向 iOS 和 Android 移植 Qt,问题是诺基亚会提供支持么?
David:Qt 是完全开源、开放的,因此任何人都可以自己移植。不管我们想不想让他们移植,他们都可以这么做。但对于诺基亚来说,我们现在的主要目标还是优化现有平台上的运行效果、而不是移植到新平台。
ifanr:Qt 打算进入其他领域么?比如医疗和工控?
David:Qt 已经在这些领域了。 在奇趣时期,我们有团队向医疗领域和工控领域出售技术,医疗领域就在大量使用 Qt。当然,相比消费类产品,这些领域的设备数量会少很多。这是两个完全不同的商业模式。
ifanr:不过诺基亚主要还是在手持领域推动 Qt?
David:是的。但对诺基亚来说,维持对其他平台的支持是很必要的。因此我们不会把 Qt 局限在移动平台上,这样会损害 Qt 的价值。
ifanr:也就是说 Qt 将继续保持开放?
David:是,而且我们走得更远。我们将它称作 Open governance,诺基亚不会决定路线图,而是由社区决定。更多信息请访问 qt-labs.org。
此外,大会上午的演讲中也提到诺基亚未来在对 Qt 的投资趋势是,加大 MeeGo、Symbian 平台的投资;桌面维持不变;Maemo 5 和 WinCE 等平台会逐步减少。
Qt 的发展与推广
ifanr:10 月 21 日,诺基亚宣布将以 Qt 作为未来唯一的开发平台,从长远来看,这会有怎样的影响?
David:这是诺基亚在消除开发平台分裂问题上的重要步骤。之前诺基亚在 Symbian 平台通过 Orbit UI 框架延展 Qt,在 MeeGo 平台上则采用 MeeGo Touch。现在简单了——完全采用 Qt,通过 Qt Quick 开发本地用户界面与程序,通过 HTML 5 开发网络程序。
对 Qt 和诺基亚来说,这就带来了促进开发者社区增长的绝好机会。两个平台开发工具的进一步融合意味着开发者使用头一个代码库为 Symbian 和 MeeGo 平台进行开发会更加简单。
ifanr:我参加了今年的诺基亚开发者峰会,注意到了现在依然有很多诺基亚开发者在使用 symbian C++。你们如何让他们转向 Qt?
David:这取决于使用案例。如果你要瞄准未来,定位于目前开始销售的手机,你会想要使用 Qt。如果你想要最好、最新的功能,完全发挥新机型的潜力,你会想要 Qt。因为从 N8 开始不会再更新 Symbian SDK。只会更新 Qt SDK。所以这里其实没有太多选择。有很多开发者不喜欢使用 C++,因此 Qt 也提供了 QML。对于很多应用而言,QML 已经完全足够。当然在有些应用中,你还需要更底层的开发。我们提供的不只是 Qt,还提供了更简单的开发方式。
这次开发者大会就是我们在东亚地区所进行的大量推广活动中的一节,大会得到的反响表明开发者对 Qt 有很大兴趣。而且现在已经有 1.75 亿部 Symbian 手机支持 Qt,预计会售出五千万部预装了 Qt 的 Symbian^3 手机,市场潜力很大。
摩托罗拉之前在一些产品上采用了 Qt,但诺基亚对 Qt 的期望显然要更高。除了 Qt Quick 以外,两家公司的策略有何不同?
David:诺基亚将 Qt 用于全系列的智能手机平台,包括 Symbian 和 MeeGo。不但用于用户界面、内部开发的程序,也通过 Qt 支持第三方开发。也就是说整个公司都在支持 Qt。而据我所知摩托罗拉仅在部分市场的部分机型上使用 Qt。
ifanr:Qt 的下载量在 2008 年只有 25 万,现在已经超过了 150 万,为什么变化会这么大?
David:因为开源。2008 年,诺基亚收购奇趣之后希望让尽可能多的人使用 Qt。2008 年 Qt 只有两种授权方式:GPL,一般被认为是真正的开源,确保所有使用者开源;还有就是商业授权。诺基亚收购奇趣之后,Qt 就开始支持 LGPL。因此我们现在在电视领域比原先更加成功。因为 TV 市场里,厂商不希望为每台电视支付授权费。新的授权方式让这些增长成为可能。
ifanr:诺基亚在收购奇趣科技之后花了两年时间才推出 Qt SDK 1.0,为什么这么慢?
David:诺基亚收购奇趣的时候,Qt 在诺基亚平台上还没有官方移植。考虑到诺基亚的规模以及机型数量,需要花更多时间。我们希望保证质量,实现更好的系统整合,保证发布的时候第三方就可以使用。如果来得太急太早,可能会失败。因此我们必须保证产品在各方面都能有最佳表现。(如果没有 Qt Quick,Qt 对于基于触屏的移动开发来说意义不大)
ifanr:当中面临的主要挑战是什么?
David:谈到挑战,将 Qt 移植到 Symbian、Maemo 5 以及 MeeGo 没有我们之前想的那么简单。在移植到 Symbian 的时候必须做更多考虑。同时 Symbian 本身也在不断变化。
Qt 部门在诺基亚的地位
奇趣科技原本是一家颇为传奇的小公司,它被诺基亚收购的消息公布之后,并不是所有 Qt 爱好者都看好它在大公司里的发展。David 之前在奇趣工作了五年时间,对收购前后的情况都比较了解。
ifanr:被诺基亚收购后,原奇趣科技的组织结构有很大变化吗?
David:被收购之后,原有的奇趣科技开发团队变成诺基亚 Qt 开发团队。诺基亚的很多员工加入了进来。原先的营销团队也换了个名字,团队本身没有太大的改变,但规模有所缩减。因为我们的推广重点有了变化。总得来说,变化比我想的要小。我觉得主要不同是奇趣科技是个小公司,可以很灵活;而诺基亚非常庞大,(在推动技术发展时)可以更有效率。
ifanr:也就是说 Qt 团队非常独立?
David:是的没错,非常独立。回头看诺基亚的一些收购你会发现,当诺基亚收购一个公司的时候并不单是收购一个技术,而是吸收了人员。奇趣时代,我们大约有 200 多人,打造最尖端的软件技术,诺基亚原本主要是一家硬件公司,现在也在转型,试图在软件方面做得更好。收购奇趣科技也有这方面的目的。诺基亚把奇趣作为资产,收购不但是为了使用它的技术,也是为了学习,在软件方面进行改革。Qt 团队在诺基亚非常特别,现在新 CEO 也说了,Qt 就是未来的方向。