Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

新年来一发:2014 Web技术发展方向

  目前的Web有两个基本方向,Mobile和PC。对于MobileWeb,我目前并不太看好,具体原因下面会分析。而PC上的Web还是很有发展空间的,但发展的速度可能不会太快。Web技术是一种复合技术,对其近期可能的趋势需要从多个具体的技术方面来分析。
  首先是Mobile的情况。一般而言,Web程序有这么几个优势:
    安全:有同源安全策略,对本地资源的访问也有限制。
    便捷:不用下载和安装,打开浏览器就可以用。
    跨平台:只需要关心浏览器兼容,和操作系统关系不大。
  那么,这些优势在Mobile上又如何呢?
  安全性方面:就操作系统本身而言,Mobile比PC已经安全了许多。至少在安装软件时可以看到软件的访问权限(至于用户会不会去看就另当别论了)。在一些系统上,软件的来源还有固定渠道,是经过官方认证的(当然也有很多不愿意付费的用户)。总之Mobile上软件本身安全性就相当高了,那么Web程序对安全性方面的贡献,在Mobile上就体现的不明显。
  便捷度方面:对于Mobile上的APP,基本都是一键安装,不像PC上那么繁琐。甚至可以把APP视为一个首次打开比较慢的Web程序,它已经非常方便了。所以Web程序对便捷度方面的贡献也同样不会太明显。
  跨平台方面:Mobile上也有一些不同的操作系统,如果做Web程序,对操作系统的兼容性问题就不会太大(但也存在)。这方面没什么好说的,Web永远是夸平台的胜利者。
  另外,目前Mobile浏览器的性能是不太乐观的,Web程序怎么也无法做出APP那样的用户体验。当然,对于一些功能需求低的网页,比如单纯的内容展示类网页,做个MobileWeb版也是不错的,这可以在被搜索到时用户更容易浏览。但对于功能类的程序而言,MobileWeb就非常不适合。
  综合这些因素考虑,我觉得目前MobileWeb上并不会用到太多高新技术。MobileWeb只适用于一些简单的项目,或者开发预算上不足以完成APP开发的项目,又或者是作为已有APP的一个宣传项目的简易实现。我觉得MobileWeb发展的瓶颈在于浏览器的性能,总之目前我对MobileWeb并不太感兴趣。
  那么PC端又如何呢?这就很难说了,传统的Web架构是根深蒂固的,也是最稳定。很多网站可能根本不会想着使用新技术,程序能正常运行就阿弥陀佛了。但趋势总是有的,从QQ空间的实时推送到贴吧的动态提醒(也许微博也有类似的东西,但我不玩微博不太了解),网页对于实时通信的需求将会越来越高。钛合金F5的时代迟早会成为历史。
  下面是一些具体的技术方面分析。
  布局方面:HTML5+CSS3的使用已经非常流行,即使低版本浏览器不能支持一些CSS3特性,大家也不会浪费大量时间去做兼容的实现了。人们已经不会再想着让全浏览器实现同样的效果,而是尽可能的让低版本浏览器正常显示,高版本浏览器显示的更好。另外,响应式的网页也许会很快普及起来,因为响应式的实现并不困难,而且目前即使是PC端,屏幕分辨率的差异也是非常大的。当然也未必会直接使用基本的响应式设计,可能会使用基于响应式的一些扩展概念来设计,这方面还有待研究。
  绘图方面:SVG技术可能会普及,虽然IE8不能支持,但接下来人们可能会对IE9之前的IE版本越来越不重视。网站本身可以兼容,但并不会去做完美兼容,可能在这些浏览器上只能使用基本功能,不会浪费时间去做新功能的低版本兼容支持。SVG在一些矢量图绘制上是非常有效的,特别是对网页中一些可交互图表的设计,SVG可能比Canvas更适用。至于WebGL,虽然IE11已经支持,但我觉得这个技术还不够成熟,目前还不适合在实际项目中适用。
  通信方面:服务器推送技术的选用可能依然还是长轮询之类的,WebSocket的普及可能没那么快,因为使用WebSocket就牵涉到了架构调整的问题,对于现有的一些旧项目,这样的调整是很困难的。新项目会用WebSocket技术的可能性也许会高一些。另外,SPDY可能会逐渐普及起来,目前电子商务类网站是比较火的,他们需要很高的通信安全和传输性能优化,所以SPDY非常符合要求。
  存储方面:LocalStorage可能会更流行,至少IE8是支持这玩意儿的。indexedDB的兼容性和性能都是个坑,是否真的可用我还在测试阶段,但就目前浏览器对其的实现来看并不乐观。其它存储方式如WebSQL之类的就可以完全不用考虑了。
  服务器程序:NodeJS/C++是个趋势,至少它在性能上就比PHP、.NET,这些老牌的服务器语言高的多(应该也比JSP高,但JSP我不了解就不扯了)。而且NodeJS对通信方面的支持非常好,这正是未来Web发展的基石。但就近期而言,这可能只会用于一些新项目中,对于已有的项目,顶多是用NodeJS扩展一些新的服务,不会直接取到原有的程序。
  数据库方面:虽然NoSQL有点儿势头,但对于数据结构复杂的大型项目而言是不适合使用的。我觉得它更适合作为一些服务器缓存机制的存储,而不是数据的主存储。而且这些新兴的数据库在CDN之类的配套服务上可能支持的还不完善。所以数据库方面的技术也许不会有太大变动。
  总结一下吧。Web技术的发展速度虽然很快,但大多数项目需要的是稳定,不会采用太新的技术。近几年Web发展的速度快是被HTML5+CSS3+ES5带出来的,但他们基本已经定格,而下一个版本在这一两年内估计是看不到了,所以近期Web的发展应该会稳定一段时间。
  最后,告诉大家一个好消息吧,国内的IE6市场份额已经跌破10%了,而Chrome马上就要突破25%了。虽然大部分还是IE8,但我想那些绝不是单纯IE8,而是一些国产双核浏览器的兼容模式,它们很多也是可以切换到现代浏览器模式的。所以应该会有更多的公司考虑放弃低版本IE的兼容。
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^