InfoQ访谈:Webkit和HTML5的现状和趋势

原网址:

http://www.infoq.com/cn/interviews/status-and-trends-of-webkit-and-html5

个人一些不成熟的见解,望讨论和指正。

节选

刚才朱老师讲了一下关于WebKit的一些事情,我正好涉及到做这方面的一些东西,就希望跟你探讨一下这方面的问题。因为我之前,我自己做豆瓣音乐人的应用,当时我们技术选型上,就是希望就是尽快的去完成这个事情,就跨平台去做,然后我就说选用WebKit的这种方式去做,它其实是一个混合的架构,然后用了PhoneGap这个框架去做。当时我的感觉就是做起来非常快,也很爽,就是做一个所有的的平台上就可以跑了。但是会遇到一些问题,比如在Android上会有一些性能的问题,我开始用了很多css 3效果,后来几乎把这些效果全部都去掉了。 比如像透明、半透明,这个我后来就全去掉了,你对做这些优化有什么建议吗?

朱永盛:对,首先这个问题提的很好,我觉得这个问题基本上涵盖了现在想使用Html5,或者想使用Web来做开发你的Application的共同的问题。就首先PhoneGap这个东西现在比较流行。我先说它好的一方面,它流行的地方就说,我刚刚说了,它跨平台很好,像现在iOS、Android,像Symbian,包括像BlackBerry上面都有这方面支持,然后本身HTML5做得也是跨平台,然而PhoneGap正迎合了这些Web开发者的这些需求,所以就说,那双方正好接起来。所以这个方面PhoneGap现在影响比较大;另外一方面,PhoneGap 他本身的核心功能在于他提供了那些打包和分发的机制。你可以通过他的方式,可以帮你分发,可以帮你打包 。因为我们知道,如果让你的HTML5程序,或者你的Web程序也运行起来,你下面要有个支撑平台,那么这个平台可能就说基于WebKit,或者基于其他的渲染引擎的平台。那么PhoneGap本身,他不提供这样的平台。他利用的是每个OS上面已经带的这个平台。举个例子来说,在Android上面他就是用Android的渲染的平台, 通常叫做WebView。那么在iOS上面,可能就要是另外一个,就苹果提供的叫英文这样一个平台,所以它本身就是Runtime没有提。所以这就是为什么你刚刚说在某些平台上性能好,某些平台上性能不好。就是因为在于它对后端支撑的平台它是不一样的,就我说的Web渲染的这个平台是不一样的,所以会导致这些问题。还有另外一个问题,你刚才说的Android上面性能不好的问题,这个问题我刚刚可能也部分的解释,就是因为他用了渲染引擎。我们知道Android上面是有一个叫做Android Browser,他其实上跟那个是Share同样的一个技术的架构。这个架构里面有很多缺陷,这就是为什么Google最近需要把Chrome这个浏览器推到Android上,因为Android的平台里面有很多硬件加速的东西没有做。在我们刚刚的session当中我也介绍了,硬件加速其实分为很多块,它实际上就是说Android的英文只做了其中的一方面 。但是Chrome现在说这个平台它已经投入到Android的阵营来,所以说他现在的硬件加速是做得非常多的;另一个方面,我刚刚说的PhoneGap所依赖的那个 Web渲染的平台, 那现在可能未来的方向就是把他们切换到基于Chrome的渲染机制上,我相信,当这个切换完成。因为我们最近也在参与这方面的一些事情,所以我相信这个东西切换到基于Chrome这套渲染效果上来说,我相信里面的渲染的效果会得到进一步提升。本身我是非常看好这个方向,因为PhoneGap这种用户成型,我觉得是可以说是使用HTML5开发应用程序起了非常好的头,开了非常好的头,所以未来风向,我觉得PhoneGap这种框架会非常的发扬光大,应该会有更多的厂商会参与进来,做这样的事情。因为从各个方面的需求来看,大家也都很关心这些方面的一些事情,所以我很看好它。

谢谢,我也希望以后能用Chrome的内核,就没有这些问题了。其实现在造成问题的也是Android比较早期的版本。想跟你谈谈另外一个问题,刚才说的是移动平台上的跨平台,就是桌面上我觉得WebKit也有这方面的能力,可以拿来使用。我们之前有做豆瓣FM的桌面客户端,我们也是希望说能够快速的开发,然后移植到多个平台上使用,所以我们当时同事冯强宁开发了一个叫做OneRing的一个框架,就是他其实是一个框架可以把WebKit包了一个类似浏览器的东西在里面。我们就可以用Python来写了一个Server,前面就用Html5、JS写了一个应用。我们也遇到一些问题,就是比如说包就会特别大,QtWebKit 那个是比较大的。如果不用它的话,我们又会面临很多跨平台的问题,就要求我们自己再去做。而且WebKit自己还有些Bug,很多Feature用不到,他没有支持所以不能用,对这个方向的开发你有什么建议?

朱永盛:是这样的,这块现在刚说,你想说,我们因为PhoneGap 有点感觉是在这个之上,PhoneGap之下我们需要一个统一的Web平台可以支撑PhoneGap,我们想统一后面的一个Web平台。其实这个东西现在我觉得应该是一个很热门的方向,包括其实我个人觉得,像Google、英特尔,我知道很多公司都想参与进来,共同推进这个事情的发展。这个东西现在一个问题,的确像你说的,比如像Webkit,他可能有自己的一些问题。那我觉得这个问题很好, 为什么呢?因为这也是我们未来努力的一个方向,像作为我来说,我参与这个HTML5的Web开发,也有蛮长一段时间了。我个人感觉像性能,包括一些Native的开发所使用的一些能力,现在HTML5里面还没有办法能够提供这些功能。所以你现在你的下面所使用的Web平台,比如类似于像QT WebKit,就要提供这样的能力。但是各种各样的有些这个平台提供的Performance,或者性能方面的一些问题是有缺陷的。缺陷在于渲染的这些架构,包括它的一些使用图形方面这些或者说还有很多工作需要去完善。所以我们其实也在积极的参与,想说提供一套这样的一个Solution。比如说我们想说,用WebKit打造一个这样的平台,这样的平台可能比如说,可以把目前最新的这些比如说硬件加速的机制、多核的一些能力都给使用起来,然后共同打造一个可以支撑HTML5应用程序的这么一个平台。然后跨平台,能做到这样的话,我相信以后应该是这个方向努力的重点。因为目前我个人觉得,像我们其实参与Chromium的,他也想做一个WebView的这样东西。那这样的东西其实就使用这样的东西,这样的一个东西在Android上我们也想提供,在Windows上我们也想提供,在Mac上,在Linux上,可能其他平台上我们都想提供这样的东西,我想这样的东西可能就是符合你们这样的需求。但是的确说的很对,现在这就是一个问题,现在因为没有一个很好的Solution可以解决这个问题,我觉得这是一个机会。我希望更多的公司可以参与进来,比如说像我们这边做得这块,我们也想参与进来。



原文地址:https://www.cnblogs.com/xiaowangba/p/6313845.html