编者按:本文作者为海豚浏览器CTO 刘铁锋,HTML5的兴起让业界有了Web App和Native App之争,本文对Web App 2011年的发展状况做了超详细的盘点,并指出基于HTML 5的Web App会有新的开发模式,甚至于不同于App Store的新盈利模式出现。如有读者想和作者就此做更深入的探讨,可以在微博@百纳刘铁锋。
从HTML 5开始兴起之后,在移动平台上Web Apps是否能够和Native Apps一较高下,甚至Web Apps是否可能取代Native Apps的纷争开始兴起。不管现在Web Apps的能力如何,在业界,对于Web Apps在跨平台应用开发,游戏开发等各种尝试已经兴起。
在2011年初,笔者就曾经抛出过Web Apps会在未来得到大力发展的观点,原因有三:
- 从商业的角度来看,因为开发成本的原因,会推动Web Apps会赢得更多项目的订单,从而会推动更多的开发者和更多的Web Apps项目出现。
- 从技术的角度来看,HTML 5的标准推动以及硬件的处理能力会使得Web Apps有能力实现类似Native Apps的功能。
- 从历史的角度来看,移动互联网上会复制PC互联网上所曾经发生的事情,而今PC上基于Web的开发远胜于传统的Native App开发。
那么,一年过去了, Web Apps的发展情况如何?
规范及标准
尽管规范及标准并非是推动技术方案的绝对因素,但对指引方向,确定开发架构有非常大的帮助。在互联网企业分布式架构兴起时,J2EE所制定的规范和标准就曾经扮演过这样的角色。尽管在后来实际发展的过程中,完全依据官方的标准的实现并未占据主导地位,反而是spring等轻量级的实现独领市场风骚。但无论如何,标准和规范的建立依然对一个新的领域的兴起有着积极的指导意义。
Web Apps并不是一个太新的概念。在Web发展的过程中,业界就在思考web不仅作为一种展现的方式,同时也成为一种开发平台的可能。早在2004年Web Hypertext Application Technology Working Group (WHATWG)就在开始着手准备web application的标准和建立。与此同时W3C期望发展则是XHTML 2.0。 如大家所知道的2009年W3C放弃了改进XHTML 2.0的标准发展。现在W3C和WHATWG一起在携手修订和发展HTML 5的规范。
在这份新的规范中:
1. W3C致力于对HTML 5的展示层面,包括很多新的元素的制定。具体可以参见这里。
2. WHATWG致力在开发的角度进行改进,参见这里。
在这两份标准中承载了太多的内容,以至于浏览器厂商很难在短时间内完成或全部接受。但是根据HTML 5标准的一个编辑,Ian Hickson的说法,预计到2012年可以达到候选推荐版的地步( http://en.wikipedia.org/wiki/HTML5 )。实际上根据WHATWG工作组的说法,“事实上有很多部分已经稳定,并且接近完成,这些标准现在已经可用了,比如<canvas>”(http://en.wikipedia.org/wiki/HTML5)。
事实上在2011年,各种基于canvas的HTML 5游戏已经开始暂露头角。网上也开始流传据说是EA发布的命令与征服HTML 5版本的游戏宣传片(http://www.youtube.com/watch?v=cYsb8iMz5fE&noredirect=1).
在笔者看来,2011年,标准并没有成为限制HTML 5发展的一个大问题,反到是业界各方都在挖掘HTML 5的潜力,并推动HTML 5的发展。
事实上在2011年,各种基于canvas的HTML 5游戏已经开始暂露头角。网上也开始流传据说是EA发布的命令与征服HTML 5版本的游戏宣传片( http://www.youtube.com/watch?v=cYsb8iMz5fE&noredirect=1 ).
在笔者看来,2011年,标准并没有成为限制HTML 5发展的一个大问题,反到是业界各方都在挖掘HTML 5的潜力,并推动HTML 5的发展。
产业支持
标准之争,本质上也就是产业巨头之间的利益分配战争。2010年4月,乔布斯公开发表Thoughts on flash (“http://www.apple.com/hotnews/thoughts-on-flash/”) 一文,公开宣称Flash以及不再为浏览视频或者其他web内容所必须。
如大家所熟知,在iPhone上Flash压根就不能被运行,但iOS的系列产品并未因此而受到任何影响。不仅仅如此,微软基本放弃了增强浏览器功能的Sliverlight,全面拥抱HTML 5。更勿论在不遗余力推动HTML 5发展的Google。在各种巨头的夹击之下,Adobe也在2011年主动(或者说被迫)地放弃了Flash在移动设备上的支持。因此,从产业支持上来看,有能力做平台,做移动设备的三大厂商,Google, Apple, Microsoft都已经全面开始了对HTML 5的支持。
不仅仅如此,各大厂商还在充分利用GPU的特性来帮助到浏览器的渲染,这更将会推动HTML 5在技术上和实践上的成熟,从而得到更多开发者的支持。而微软在windows 8上直接让javascript可以编写原生的程序,IE10.0里更是改进了非常多支持(http://www.cnbeta.com/articles/167580.htm)
开发平台
技术能够得到广泛的推广和应用,不仅和标准和厂商的支持有关,更多地在于是否能够吸引到足够多的开发者使用相关的平台和技术开发应用。Microsoft的操作系统到现在依然占据绝对垄断地位,这和其在开发平台上的推广投入巨大不无关系。那么对于HTML 5的发展来说呢?
在笔者看来,如果对比传统的软件开发,把HTML 5作为一个web的开发平台来说,需要有如下几个方面的开发工具和平台支持:
1. UI制作工具。各种IDE工具都以非常强大的界面拖放工具,事件绑定方式来支持UI的开发,减少程序员的工作量。
2. 数据交互组件。绝大部分的业务逻辑,都是和数据通讯有关。在各种平台上,简化数据交互的组件都不可或全。比如.NET中的ADO.NET。
3. 强大的IDE。如大家所熟知的VS.NET, Eclipse等等。
4. 各种开发库的支持。
在web apps的开发中,我们可以看到目前的状况
1. 浏览器中的开发调试工具开始组件成熟和强大。不管是Chrome还是IE自带的,还是Firebug等第三方的调试工具。调试和开发CSS/Javascript的难度已经减少很多。未来这一部分依然会得到足够的发展。
2. 开发的模式。如现在Web Apps的标准定义所期望的,离线处理能力,网络请求能力(web socket/web works)等。这一切依然需要新的标准和定义。
3. IDE的工具,VS.NET/Eclipse有足够地理由会进一步增强对web开发的支持。
4. 各种库的支持。目前sencha, jQuery已经开始,未来应该会有更多的支持。
除此之外,为解决HTML 5不足以访问系统资源的问题,类似于PhoneGap这样的解决方案,可以通过混搭的方式来拓展web apps的处理能力。
开发者社区
社区对新技术的推动和推广作用是巨大的,在各种开源的工具的完善和推广,以及新语言的推动和诞生,都离不开开发者社区的支持和推动。事实上,业界媒体对技术的支持可谓不遗余力,在wall street journal这样的老牌媒体中已经开始对web app的关注(http://blogs.wsj.com/digits/2011/06/16/fts-web-app-strategy-thwarts-apple-store/)。 Read write web这样的媒体,网页的标题就是“web apps, web technology trend, Social networking and social media” 。
不仅仅是海外社区的支持,按照规律来说技术的推动一般比海外会晚两年的国内来说,对web app的支持和推动也以及如火如荼。在2011年出,国内对HTML 5发展探讨的社区开始兴起。发展颇快的HTML 5研究小组的线下活动组织的如火如荼,而以专业分析web apps的web app trend这样的博客对web app的趋势分析,发展状况的内容更是非常翔实和专业。有理由相信2012年,国内外的社区对此的支持会更大。
开发理念
开发理念对一门新的领域发展的推动作用指导意义重大。设计模式一词, 就影响了各种各样的开发者。而对于移动设备上的web app发展来说,同样需要新的开发理念出现。由于移动设备的特殊性,移动设备的显示模式,交互方式都和PC上延续了30多年的方式不同,因此,不可避免地需要有新的针对于移动设备的设计理念,开发思路出现。
从国内外来看,市面上已经开始出现探讨移动设备开发理念的书籍,比如Mobile first,通过大量的事例以及交互方式来探讨Mobile上的设计思路。而Responsive Web Design更是开始开创了对web交互方式的探讨。有理由相信在2012年,类似的web design探讨会越来越多,理论和最佳实践也会越来越丰富。
商业相关
技术和商业往往是密不可分的,技术上的革新会推动商业上的发展,商业的需求同时也会促发技术上的创新。对于web apps在移动设备上的创新来说同样也是如此。
对于web apps这样的新概念来说,早期开发者的支持和推动才可能会进一步技术决策者在技术选型以及后期商业上的决策。在web app的技术上来说,因为PhoneGap以及和Sencha这样的技术出现,使得web app在跨平台以及利用移动设备的能力进一步增强。而由于同样使用javascript, 使用phonegap的难度并不高。
在2011年,国内的开发者已经开始敏锐地看到相关技术的兴起,PhoneGap中国等网站也开始积极在国内推动PhoneGap技术的推广以及应用,尽管2011年尚未看到成功案例的出现,但是一旦技术成熟或者有大的成功案例出现,国内大规模网站往移动设备上转的需求讲会推动,目前利用web技术开发网站的开发者会积极转型,在2012年接受web app来开发程序的开发者会越来越多。
从全球范围来说,目前web app在商业应用的最大成功案例就是Finance Time的web apps,短短的几个月之内已经突破了百万用户,其表现能力已经和Native App的品质相当。
而在国内,目前仅有部分的尝试以及探索,并没有出现大量的应用。然而,另外一个方面来说,HTML 5游戏的发展反到比web app的发展速度快很多。因此,2011年FT的web apps成为了web apps发展过程中唯一的亮点,但足以证明技术的成熟,有理由相信在2012年会有更多有创意的web apps诞生。
总结
纵观2011年web apps的发展,不难发现。技术,标准的成熟以及发展速度比大家想像的快很多,而Adobe在如此之短的速度内放弃移动设备上的Flash也足以让人吃惊,产业巨头不遗余力的技术推广和发展,让人有足够的理由相信web apps会伴随HTML 5的发展而兴起,而在开发工具的不足,商业成功案例的缺乏,也导致了web apps的破冰的速度不够快。但PhoneGap这样的技术会推动web + Native的混搭架构,组建推动web apps的发展。
未来的几年是移动设备高速发展的几年,同样也是技术创新会大规模应用的时间,有理由相信没准基于HTML 5的Web App会有新的开发模式,甚至于不同于App Store的新盈利模式出现。
原文链接:http://www.leiphone.com/web-apps-2011.html