Facebook:押宝在HTML5上是一个错误

近期,Facebook放弃了计划多年的HTML5 Mobile App,转投向Native Mobile App。这篇文章描述了Facebook此举动作的技术细节,以及Xamarin和Mozilla对此动作的反应。
马克扎伯格在一次技术讨论会上发表声明:作为一个公司,我们犯的最大错误是在HTML5上投入了太多精力而忽略了本地App开发,且,当我们推出Facebook 的iOS App的时候,我们看到了比HTML5时候要多一倍的使用用户。
马克扎伯格没有详细说明HTML5的具体问题,但是我们猜想肯定是质量不够好:“在我们之外(指HTML5)有很多很好的移动应用开发经验,我们需要高质量的Mobile App,实现这个目标的唯一选择就是Native Mobile App”。
Tobie Langel,Facebook的一位软件工程师兼W3C标准组织的代表,在一篇文章中详细描述了当前基于HTML5的移动应用开发遇到的性能问题What's slowing down Mobile Facebook,文章中提到的第一个问题就是缺少好的调试工具。

缺少移动平台浏览器调试工具,出现了bug后就会非常难定位出根本原因。
我们遇到的最大问题是内存相关的。基于我们应用的内容,出现资源耗尽导致程序crash的问题很常见。不幸的是,我们很难发现导致问题的根本原因所在:GPU缓存耗尽?达到了资源的极限?或者其他?很难说!Langel想知道堆、对象、GPU缓存、垃圾回收器、FPS等能够使用到的内存大小的极限值。

Langel提到的另外一个问题是页面滑滚的功能,这个功能全部是JavaScript实现的,因为HTML5的滑滚选项都不够快。下面是他提到的具体问题点:

  • 不协调的窗口比例,UI线程刷新滞后。
  • 一定量的内容和图片导致GPU资源耗尽。
  • 原生的滚动效果在不同的系统上有差异。不得不使用JavaScript来替代原生的滚动功能以便使其在不同的操作系统上表现一致。

Perf还提出了滚动条的触摸事件响应延迟,这也是使用JavaScript将其重写的原因。
Langel提出的其他问题是:GPU,需要更好的触摸响应,更流畅的动画效果,更好的缓存。这些问题已经提交到了W3C:http://www.w3.org/2012/09/12-webperf-minutes.html

Xamarin(一个跨平台开发原生App的工具) 的CEO Nat Friedman 在InfoQ的评论中上表示欢迎Facebook迁移到原生的App开发上来:Facebook拥抱移动原生App开发,对此领域的生态环境来说是一个大好消息,包括生态中的设备制造商、App开发者,最重要的是,用户受益。他同时也指出,现在还不能看出来到底什么是移动App开发的标准:
移动变革还在飞速进行,要达到标准目的地,还有很长一段距离。历史上,当一个新的操作系统上市时,兼容性时很差的,唯一的方法就是不断的修正。移动App开发当前这个阶段与新的操作系统非常类似,在接下来的几年中,移动操作系统会逐步稳定且变革脚步会缓慢下来,那时候形成标准就时水到渠成。但是这还需要花费几年时间。

Mozilla的CTO Brendan Eich,针对Facebook在HTML5上的失败发表了不同的意见
如果你读过他们的问题,你会发现他(马克扎伯格)所说的是他们正在做一件将原生程序与HTML混合的事情,当你做这种事情的时候,你会发现两个系统有裂痕。我的一个朋友,Joe Hewitt,他曾经在Facebook工作过,并开发了第一个混合系统且做了很好的集成(无裂痕)。但是,随着他的离开,一些技能(维护混合系统之间的裂痕需要的技能,甚至需要苹果公司的支援)也丢失了,没有继承到后续的版本中。
Eich坚信Web最终会赢过原生App:
我不认为Web没落了。当前只是有一些编程上的问题使你迷惑了。像Facebook这种公司可以承担的起原生App的开发,特别是iOS。但是根据长尾理论,很多开发者还是喜欢用Web来承载他们的内容。我认为Web经过10年的缝缝补补已经很完善了,你没有必要在原生程序与Web之间摇摆。

Registr的编辑Matt Asay引用Facebook内部一位匿名管理者对 原生程序 vs. HTML5的看法:
当前Facebook在原生App上能够跑的更快,这并不表明HTML5就完全没有生存的余地了,这只能说明Web开发者还有很长的路要走。我们今天做了决定。或许某一天HTML5可以让我们跑的更快,我们又会切换回来。我们关注的是质量。

马克扎伯格也认为HTML5或许是做长期储备需要的:
这并不能说明HTML5不好。我实际上没有做长远打算,现在的现实是使用Facebook Web程序的用户比我们的iOS和Android app要多。所以,移动Web对我们来说是一件大事情。

原文连接 http://www.infoq.com/news/2012/09/Facebook-HTML5-Native

转载请注明:运维派 » Facebook:押宝在HTML5上是一个错误

0
2.9k
5