技术产品   

Facebook惨败真是HTML5的错?

时间:2012-12-07 09:41:00

互联网起家的Facebook,虽然在社交化方面取得了巨大的成就,却在移动领域步履蹒跚困难重重。而当初其CEO 扎克伯格怒言“押注HTML5是Facebook最大失误”的判语犹在耳际,但这一切真的是HTML5的错吗?

与移动设备端的原生应用及移动浏览器的多样性相比,使用HTML5的Facebook在性能方面明显较为迟缓。原生应用并不需要靠互联网来支持运行,它的速度要远远快于加载一个基于web的HTML5应用,因为可以直接从移动设备上运行原生应用更容易调用麦克风等应用,这使得它们要比基于web的HTML5应用要好用得多,但这一切并不足以说明HTML5就是Facebook惨败的症结所在。

HTML5长存!

如果你对扎克伯格抨击HTML5及web应用已经消亡的话表示赞同,那你必须要说明一点,那就是为什么开发者在某些情况下仍然喜欢web应用?

  • “一次编写,随处运行”。大多数浏览器都有着相同的运行方式,一个应用几乎可以在所有浏览器上运行,不像限定于只能在某一系统下运行的原生应用。对于用户来说,“一次编写,随处运行”的HTML5应用意味着应用的连续性,即不管是哪个操作系统都可以运行使用应用程序。HTML5保证应用程序无论是视觉还是运行都与原生应用有着相同的感觉。
  • 允许应用不断更新。HTML5还允许不断更新,开发者不需要再将新应用提交给应用商店等待批准。每次用户登录到该web应用时,都将获得应用最新版本。

像Facebook这样的网站还需要不断地进行更新与改变,一个基于HTML5的应用看起来似乎很傻瓜式。web应用不需要等谷歌的Play Store或苹果的App Store批准,可以进行简单的自我更新,这无论对于用户还是开发者都是非常具有吸引力的。

因此,对于Facebook来说,最根本的问题不是HTML5编码与原生应用之间的差异性,而是如何为移动浏览器压缩桌面浏览器生成的内容。而Facebook拥有着9.55亿的每月用户,其中有5.43亿是移动用户,并伴随着67%的同步增长,这对于Facebook来说是一个非常巨大的转变。

原生还是web?

同样,原生应用也并不适用于所有移动用户。Twitter已经非常成功地使用了HTML5、CSS3和JavaScript来开发混合型应用,既跑得快又如原生应用一样。

虽然Facebook和Twitter在一定程度上有所不同,但它们在某些方面却有着相同的需求:

  • 都需要不断更新内容以保持时效;
  • 网络核心点都是保持用户不断更新他们的朋友和粉丝;
  • 都需要一个流畅的界面和像原生应用一样的快速上传时间。

与Facebook相比,Twitter就要成功得多,Twitter使用多重代码语言进行网站应用开发,也许这正是Facebook该前进的一个方向。至少在Twitter上,不同的代码已经可以开发出一个比原生或HTML5应用更加良好的应用。

相比web应用,原生应用的历史要悠久的多。如地址簿、日历和计算器等默认自带的应用程序及可用的web连接在很早以前就出现在移动设备上,1998年风靡全球的诺基亚经典游戏贪吃蛇就是典型之一。

直到HTML5赶上原生应用,虽然原生应用能够让用户无节制地玩游戏并快速载入社交网络,但更依赖于用户分析的天气及购物等应用推进着HTML5的发展,在这方面,基于web的应用要远远比原生应用好用得多。

Facebook的特点是追求适应性,这也是所有应用开发者需要学习的东西。学习如何让自己的平台良好运作及认清对于用户来说什么样的功能才是最重要的,这也是整个开发工作的关键所在。

无论是HTML5还是对于各操作系统来说独一无二的原生应用及混合型应用,对于企业来说最重要的一点是,整个世界正在逐渐步入“移动成主流”的世界,因此,只有认清应用要点并让应用更加地人性化,这样才能保证自己立于不败之地。

 

来源:PHPchina

上一篇:IBM全力支持虚拟技术KVM 2012-12-06

下一篇:Google开源了其JavaScript测试执行器 2012-12-06

Notice: Constant RUNTIME already defined in /srv/html/srccn/news/config.php on line 15 Notice: Constant ROOTDIR already defined in /srv/html/srccn/news/config.php on line 16 Notice: Constant SITEDIR already defined in /srv/html/srccn/news/config.php on line 17 Notice: Constant DATAURL already defined in /srv/html/srccn/news/config.php on line 20 Notice: Constant VERSION already defined in /srv/html/srccn/news/system/kernel.php on line 17 Notice: Constant COREDIR already defined in /srv/html/srccn/news/system/kernel.php on line 18 Fatal error: require(): Cannot redeclare class mysql in /srv/html/srccn/news/system/kernel.php on line 22