下一代web富客户端技术

关键字:web rich client html5 webGL native client
我记得不久之前的有段时间里到处流传着客户端程序将死的调调,确实那段时间里各种web应用层出不穷,从社交到办公、从个人的休闲娱乐到大型的在线游戏,WEB似乎已经完全可以取代目前的客户端应用了。但是移动设备突然崛起,在移动设备有限的资源和空间上,本地程序发挥了巨大的作用。现在没有像之前那样的论调了,因为目前技术的走向依旧不是非常明朗。
之前的网页效果无非是靠css和js撑起来的,与之相对的是flash技术,其它的像MS的蓝泽光什么的实在是属于小众中的小众。个人感觉应用较小的情况下,JS+CSS比flash简单,但是一旦应用复杂起来自然是flash更强大。Flash和Flex是一个非常不错的方案,但是突然一大批软硬件厂商站出来说要推广Html5,那时候大家对Html5到底是什么样子都没有一个比较明确的理解,在CSDN上看到一个大神的文章,他坦言Html5必将替代Flash,因为这非常像最开始的Applet和Flash的关系。那篇文章的评论争论的非常厉害,大多数人的观点都是技术上Html5想超越Flash按照目前的情况来看基本是不可能的。但是我觉得这样看问题是绝对不正确的,我觉得Html5能否取代Flash根本不是技术问题,这实际上是一个商业问题。
现在的web应用发展的最为迅猛,但是adobe却是一家独大,看不惯这种情况的人多了去,特别是像MS和Google这样的公司。而且Flash自身的问题也不少没完没了的补丁没完没了的升级,各种情况导致的浏览器崩溃。就这样大家觉得是推动HTML技术的时候了,貌似W3C那群人一直在关注XML的发展HTML被他们扔下好久了。但是Html5已经有一段时间了,确实看到了一下效果,但是各家的浏览器对Html5的支持参差不齐,对伊开发人员来说代码的兼容性太差,甚至MS和Google给出的例子都不怎么样,就拿前一段时间的Android4,0发布之后后的anroid官网,Html5在不同浏览器下效果相差甚远。但是Html5必定是web前端的未来,特别是Adobe说放弃Falsh对移动设备的支持那样。
于是回到最开始,还是关于本地应用和Web应用的问题。其实现在web和本地已经融合在一起,就像Falsh那样的解决方案那样,浏览器进行展示,本地程序进行处理,进而达到使用本地资源的目的。但是Flash的问题是它并不是通过浏览器,而是类似沙盒的方式。总之在web方面Flash估计会越来越没落,虽说Adobe在搞AIR,但是AIR应用真的很难说,特别是在linux下感觉比较糟糕。还有就是Flex,突然被adobe扔给了开源社区,这个我就表示非常不理解。Flex的定位是企业应用,在JavaEE看来就是表现层从效果来说比struts要好的多,虽说问题不少,但是被直接扔了出去,难以理解。
仅仅靠Html5的标签语言其实很难有什么比较大的作为因为它完全以来浏览器,目前的浏览器真是心有余而力不足。就这样WebGL诞生了,WebGL到底是什么我也不清楚,不过看样子似乎和OpenGL有关。于是查了下这个是Khronos Group建立的,他们还真和OpenGL有关。记得第一次听说OpenGL似乎是Mozilla在宣扬,但是仅仅是听说FireFox支持WebGL,究竟是什么样子真的不是很了解。简单说就是WebGL基于OpenGL ES 2.0,为JavaScript提供API调用,并依赖于Html5的<canvas>画布标签,可以与DOM融合,所说可以直接调用本地显卡处理高级的2D、3D什么的,但是我真的觉得这个不伦不类,也许是还没有什么比较成功的模式吧。而且WebGL的开发真的不简单,一般的Web前端开发人员真的难以胜任。但是这方面Google真的很不错比如这个 http://www.ro.me/ 这是一个基于WebGL的例子,内容很简单,在屏幕上放一段类似MTV的视频(是Html5的),看样子画面是即时运算的,关键是鼠标可以控制视野方向,我觉得这个交互性非常好。

WebGL

这里不得不说Google,看到Google我就会想起Sun公司。Sun是一个好公司,单纯的技术公司,开源思想的伟大推动着,但是在商业味道浓厚的时代难以生存。Google给人的感觉有Sun的影子,不断的贡献这开源产品,暗地里召集大批的技术大神进行着不成功便成仁的项目开发。
接下来是最神秘,也是现在最牛X的前端技术Google前一段时间推出的Native Client。这个完全是Google自己搞出来的自然也仅仅只有Google Chrome浏览器支持,Native Client简称NaCl,但不要理解为氯化钠。从介绍上说这东西实际是Google自己开发的一套本地API,同样直接调用显卡。不过没看到这东西和WebGL有什么区别,但是从浏览器的依赖关系上似乎可以看到些端倪。windows下Chrome在chrome://flags页面里面默认WebGL和Navtie Client选前全部关闭,当运行Native Client应用的时候必须这两项全部开启,Linux下同样的界面下没有WebGL选项,但是WebGL是必须的,但是Native Client同样是默认关闭。于是初步认定Native Client似乎是WebGL的类库方式实现或者封装,但是仅仅从这点还真的不能完全确定,Native Client是开源项目,Google Code有代码托管,有兴趣的话可以去看看。

WebGL

WebGL

Bastion:Chrome里面基于Native Client最著名的应用,在线的RPG游戏,界面非常华丽,非常流畅,不是一般的在线Flash游戏可以比的。其要求也比较高,记得是需要至少512M的显存。仅仅从效果上看无论是界面还是声音还是还是操作手感确实已经达到客户端的感觉,虽然每次加载一次地图差不多要几十M,但是一旦加载完成用户体验非常好。仅仅是截取当前浏览器图像大小就大于1兆,虽然我对OpenGL之类的图形渲染不了解,但是我隐隐觉得这确实是在使用本地资源进行处理,而不是把所有的压力全推给浏览器。记得Google在演示Native CIlent的时候用的游戏是《堡垒》、霓虹还有个叫《mini忍者》什么的游戏也说要支持Native Client,不过这些还没有见过。

话又说回来了,Native Client这东西完全是Google的东西,而且还很不完善,真的要推广开来更是遥遥无期。虽然Html5目前还是一团糟,但是这是将来的标准,必定会推广的,WebGL就是比较高级的应用了,处理Web游戏开发其实应用的机会还是很少的。


原文

推荐阅读 

Html5 学习系列(一)认识HTML5


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值