跨平台应用——Qt VS HTML5(下)

Qt对比HTML5——正反两面

支持的平台
  • HTML5的支持无处不在

  • Qt支持所有主流平台(而且非主流平台碰巧用它做UI)

虽然理论上你可以用HTML5适配更多平台,但这不是大多数开发人员在现实世界里使用它的原因。HTML5开发者越来越多地放弃浏览器以及构建混合App。大部分移动开发者针对Android、iOS、Windows Phone和BlackBerry 10当中的几个平台进行开发。Qt不仅支持这些平台,并且还支持更多的。事实上,在实践中我们的数据表明,平均来看Qt开发人员实际上覆盖的平台比HTML5开发人员还略多一点。结果是,对于那些想在智能手机、智能电视等任何平台运行软件的开发者来讲,Qt相比HTML5的一个显著优势是让两者不分胜负。

跨平台应用——Qt VS HTML5(下)_第1张图片

学习曲线

这点取决于你是否已经是一个web开发者。如果你是,学习构建移动web应用可能比学习Qt容易些。然而如果你是新手,那Qt有明显的优势——你只有一个框架要学;而HTML5呢,你在还没开始的时候就要从十来个框架中选一个学习。Qt还有非常强大的文档,而web框架则不一定有。在一个公平的比赛里,这是Qt的一大胜利。

开放性
  • HTML5是开放标准,有多个开源实现。

  • Qt是开源的,但是有双重许可,由一个单一的供应商有效控制。

显然HTML5比Qt更加开放,这不总是一个优势。创建标准并让多个供应商去实现的过程是漫长的,Qt可以更灵活。如果你真的需要让开源项目修复一些Bug或添加一个新特性,你可以自己做或者花钱请人去做。如果你需要支持IE并且修复IE中存在的问题,那么你必须自己解决或等微软来解决。同时没有供应商能锁定HTML5,让web哪儿也去不了。别人可以买Qt并把它带向与你目标不符的方向,或者他们可以把价格提高到超出你的预算。HTML5在这点上有优势但不是一个明确的胜利。

成本
  • 构建HTML5是免费的,也有一些非必须的付费工具可以提供帮助。

  • 对于移动端的大多数商业应用,Qt 需要商业许可证书。

Qt的开源许可协议与大多数应用商店不兼容。尽管Qt的iOS版本是在开源状态下开发的,但你需要一个商业许可才能在应用商店上架。

跨平台兼容性
  • HTML5的一个标准对应有多个独立实现。

  • Qt是一个供应商在多个平台上实现相同的运行时环境。

多个实现,与几个开源伙伴和一个大型社区一起汇报和围绕兼容性问题工作造就了一个非常健壮的平台。有一个供应商确保所有平台表现一致,对你的应用兼容性来讲几乎总是更好的。Qt获胜!

性能
  • HTML5的DOM不是为现在的移动应用构建的。

  • Qt Quick(QML)的scene graph是直接在OpenGL ES上构建的。

两个环境都使用JavaScript。然而使用Qt时,如果你真的需要原生平台的功能或性能,会更容易下降为原生代码。使用Qt,JavaScript和本地代码之间切换的性能损失要低得多。然而,最大的区别是图形性能。追求性能的人在使用HTML5时常常借助于复杂的方案来规避DOM ,能不碰就不碰。在WebGL上构建整个UI看起来是有前途的方式,但得看未来的执行情况。现在,WebGL已经有更广泛的支持(Apple在iOS8加入了对WebGL的支持)。Qt在这点上有很大优势,相比web开发者的CSS3,Qt还有更多的动画选项

原生用户体验
  • 使用HTML5,要么依赖类似Ionic之类的第三方框架,要么构建自己的原生界面元素的替代品。

  • 使用Qt时你可以使用那些克隆了原生界面元素的组件,或者直接调用原生UI。

在Qt里可以调用原生API,但这损失了跨平台兼容性。实际上,当你需要真正的原生用户体验时,哪个选择都不能很好地满足需求。两个方案都可以模仿某些应用的一个子集。一般来讲,当你需要一个完全自定义UI或原生外观时,可以采用跨平台的方式。

结论

通过对这些指标的比较,Qt比HTML5略有优势。然而你也可以使用其他指标来比较,得出结论。在实践中,需要选择适合项目的技术。两个选择都有优点,如果你是一个HTML5开发人员,不熟悉Qt的产品,它们值得一看。还有一点我没提及,Qt可以使用webview来显示HTML5内容,这意味着并不需要非此即彼,可以合二为一。

Qt Enterprise最新版下载>>

文章转载自foruok


你可能感兴趣的:(跨平台应用——Qt VS HTML5(下))