关于HTML 5现状与未来的观点碰撞 |
本文标签:HTML 5 51CTO推荐专题:HTML 5,下一代Web开发标准详解 如果你一直关注Web,你可能认为Flash播放器和Silverlight已经进入生命倒计时,而HTML 5则正在迅速改变Web上的一切 。然而,实际上许多正在评价HTML 5的人并不完全理解当前的领域 。你知道HTML 5标准的编者Lan Hickson曾说过“在2022年以前HTML 5不会被在所有浏览器上完全实现吗?”你知道iPhone开发者现在已经可以完全使用HTML 5?你知道HTML 5中的所有功能都来自于Web插件?你知道谷歌在其产品Wave中使用了一个Web插件吗? 我们需要对HTML 5以及它对Web的意义进行一次开放而坦诚的探讨 。不幸的是,你不会从狂热的任何一方获得真相,而是需要我们检查所有的事实证据,然后得出我们自己的结论 。我已经花费了大量时间来分析这个事实,在这个过程中我得出了几个观点 。 现状 在经过许多专注开发者的努力工作后,HTML 5已经基本准备就绪 。这个过程从10年前已经开始,到今天为止经历了多次反复 。今天,HTML 5已经在许多平台/浏览器上准备就绪 。但是,并非所有浏览器实现了这个标准的全部功能,而且某些浏览器甚至还未宣布何时将实现完全支持HTML 5 。事实上,iPhone操作系统3.0是目前唯一完全支持HTML 5的稳定版操作系统 。对开发者来说这意味着,对多数开发者来说,HTML 5依然是很遥远的事情 。 当去年9月看到Jeff Croft的“2022年”说法的时候我非常震惊 。它反映出了许多开发者对Web标准整体的失望 。我没有与Jeff讨论过这个问题,我一直是他的研究成果的粉丝 。在获悉实现HTML 5完全支持的这个残酷最后时限时,Jeff表示,“HTML 5是在下周或下个月或未来15年后推出,这并不重要 。对我们这些在这个行业从事实际工作的人来说,重要的是人们真正使用的浏览器支持哪些规范和技术 。” 为客户提供解决方案的开发者并不在乎理论,他们关心的是现实 。按照这个说法,如果一个解决方案的目标客户只有全部客户的10%,它就不算一个成功的解决方案;如果它只能被90%客户使用,同样也不算一个好的解决方案 。客户希望网站或应用程序能够适合目标客户中的每一名成员,而且是现在就能满足 。这就是我的第一个观点: 观点1: 至少在2014年之前,开发商将无法在为客户提供的解决方案中使用HTML 5(除非他们是在一个如上所述的特定平台上) 。至于在解决方案中使用HTML 5的全部功能,则将会更晚 。 开发者可以考虑创建同时利用HTML 5和当前的HTML/JS模式的解决方案 。不过,这意味着开发商将不得不创建一个单一解决方案: 1、浏览器能自动探测并确定用户具备使用HTML5的能力; 2、一个针对目前或更老版本浏览器的全功能HTML 4.1/XHTML 1应用程序: (1)多个支持IE6、IE7、Firefox 3和Safari 3的CSS文件; (2)兼容上面列出的所有浏览器的JavaScript 3、全面支持HTML 5的应用(其中将与HTML 4.1应用程序几乎没有重叠的代码) 对那些狂热于应用CSS和JavaScript的开发者来说,这只不过又增加了一层复杂性 。事实上, 对于传统的开发者来说,直到90%以上的网络使用支持HTML5的浏览器的时候,HTML5才会进入他们的选择 。请记住,尽管IE6早在8年前(2001年)就已经推出了,但是大多数网站还在检查IE6的用户 。 插件的真相 本次讨论的核心是我们今天使用的网络插件 。最近许多文章声称HTML5将逐个消灭传统网络插件 。实际上,这与事实相差太远 。在我直接谈到这个问题之前,我们需要仔细看看什么是网络插件 。 当列出网络插件时,大多数人都会意识到,常见的包括Adobe Flash Player、Microsoft Silverlight和JavaFX等 。然而实际上它还包括谷歌Gears、谷歌本地客户端(Google Native Client)、谷歌地球插件(Google Earth plug-in),以及谷歌音频/视频聊天插件等网络插件 。此外,除了Google的插件,还有不计其数的的其他厂商的插件 。由于这些插件是“封闭源代码”项目的事实,它们经常遭到诟病 。事实的真相是,插件有一个快速开发周期来引导创新 。我不是说在开源项目中它不可能发生,但是我需要为真正客户开发最先进的解决方案,我不能期待真正创新的网络标准,更多是已经被实施的网络标准: 观点2: 网络标准不会永远创新,它们只会执行那些已经成功包含的插件 。这源于这样一个事实:标准化进程是由微软、谷歌和Mozilla等公司所主导的,除非这些公司已经在某个产品开发方面占有一席之地,否则他们不会投资于在这方面建立某项标准 。术语标准化意味着你把已经存在的东西拿过来,然后为实施它建立一个统一的过程 。 此外,许多开发商不承认插件在HTML 5标准中的作用 。这使我产生了另外一个观点: 观点3: HTML 5中的每一个新功能之所以被增加,是因为开发商需要一个已经被以插件形式实现的功能 。这包括离线缓存(Google Geas) 、画布(Flash播放器)、媒体播放(Flash播放器等)、拖放(Flash播放器等)等等…… 处于这场争论最前线的是谷歌Wave,最近谷歌在其IO大会上宣布了这个产品 。这个富互联网应用已被称为Web标准作用的一个伟大例子 。然而,没有人指出它需要一个插件才能运行这个事实 。的确,证明HTML5能够做什么的实例,需要谷歌Gears展示它的部分功能 。事实上,它仅是一小部分功能,但是它揭示了一个重要的观点 。 观点4: 谷歌可以选择通过标准化进程,来尝试在推出Wave之前添加拖放功能,但是他们认为如果没有这一功能,用户体验将会变糟 。于是他们选择使用插件来提供最佳的整体用户体验 。 事实上,插件可以在一年之内就“升级网络” 。在现实生活中,一个想法可以通过生产、质量评价和发布给用户,然后在16个月内被推广到85%以上的的网络 。但是Web标准难以做到这一点: 观点5: 由于涉及到大企业和实体,任何重大的改变(需要浏览器发行商以统一的方式改变浏览器的功能),从最初的想法到实际执行(在所有浏览器)至少需要十年的时间 。另外加上使用旧版本浏览器的用户升级的时间,该过程还需要多花5年多时间 。 如果HTML5被当前所有主要的浏览器完全支持,并且如果所有这些用户使用了这些升级后的浏览器,Web插件将会遭受到来自HTML5的沉重打击(但是即便如此,它也不会完全消灭它们) 。在现实生活中,HTML 5甚至无力与Web插件竞争,因为它是目前唯一可行的固定平台解决方案(像iPhone ) 。 质量与标准 这一话题让我感到愤怒的主要一点是,许多开发商在追求Web标准时却忽视了质量 。这是视频编解码器争论的核心所在(围绕HTML5也有很多这类问题的例子) 。开发商选择在相对开放的基础上去评估解决方案,而不是注重其实际的功能 。过去的五年告诉了我们什么?我们最终将会进入一个用户体验至上的时代,但是现在一些开发商为了开放性而牺牲了质量 。这是我个人最强烈的意见: 当一个潜在客户评判我的工作(或我公司的工作)时,他们不会关心网络标准,他们关心的将是工作的质量和功能 。此外,当用户使用我的应用软件时,他们不会在意“开放性” ,而只在意整体功能和用户体验 。作为一名开发人员和公司的雇员,我不能推荐劣质的解决方案 。我必须基于能保持竞争力的功能来评价所有的解决方案 。这意味着,如果HTML5将来能够提供更好的功能,我会认为它是一个好的解决方案,但是,我不会仅仅因为它是开放的就选择它 。HTML5将与其他解决方案在平等的基础上参与竞争 。 未来 我希望这些意见能够全面阐明这个问题 。问题的关键是:特定平台的开发人员现在就可以享受HTML5 。现在他们就应该拥抱它,开始学习HTML5并用HTML5工作 。传统的开发人员将必须等待大约5年时间才能真正选择HTML5 。到那个时候,我们可能已经拥有Flash Player 13、Silverlight 5和JavaFX 3 。谁知道这些版本将包括什么呢?但是,我们可以猜测到,它们包含的功能很可能将包括在未来版本的HTML中 。
|