学习Flash和AS现在有前途吗?
Adobe和苹果关于Flash的冲突是今年上半年的一个焦点事件,引起了很多人的关注,很多人也是因为这个事件才第一次知道HTML5的存在。第一次了解HTML5的人可能会很惊讶。HTML5规范早在六年前就制定好了。现在虽然HTML5规范草案很好,但何时能真正成为标准还不确定。
事实上,HTML5规范委员会的工作进展非常缓慢。因为无论是浏览器厂商还是其他,关于如何改进浏览器、改善Web世界的想法太多了,而这些想法在HTML5规范中趋同并达成一致还需要时间。尽管在一些浏览器中测试了许多新的标签和JavaScript函数,但互操作性和标准化问题仍未解决。例如,苹果公司制作的HTML5演示令人印象深刻,但它们只在Safari上运行良好。这就是为什么Flash的支持者嘲笑HTML5把网络带回了2000年浏览器大战的时代。
虽然这种嘲讽可能会让HTML5的支持者难过,漫长的等待也确实辛苦,但是忽视HTML5是不对的。因为HTML5背后不仅有行业巨头,更重要的是标准化是IT技术发展的必然趋势。就软件而言,无论是浏览器还是相关开发工具,都会不断吸收周围的各种技术,并最终将其标准化,这是技术发展的必然规律。
可以肯定的是,HTML5将改变互联网的方方面面。显然,它不会完全取代Flash,但它确实会重塑互联网,让浏览器在没有插件的情况下完成更多工作,从位置跟踪到将数据保存到云。HTML5标签将取代完成更简单任务的插件,至少在某些情况下,它可以向更多用户开发一些高级功能。最终,它可能会让互联网更安全、更高效、更灵活。
那么,即将成为新标准的HTML5会把我们带向何方?以下收集了开发者、程序员和设计师的意见,从中我们可以了解HTML5是如何改变互联网的。
降低插件的重要性
在过去,浏览器插件在Web世界非常受欢迎,因为它鼓励创新的想法和大胆的实验,声音,动画和其他非常生动的网页在网络上通过Sun,Adobe,RealAudio,Microsoft等公司开发的插件首次呈现时,确实令人耳目一新。但是,问题很快就出现了。插件接口对每个人开放,每个人都在试图给旧的基于文本的世界添加新的功能。混乱不可避免。其中最著名的插件是Flash,还有无数其他类似的插件。
由于种种原因,苹果禁止Adobe的Flash在自己的平台上运行,导致广大苹果粉丝无法在苹果平台上看到Flash。但是HTML5的普及会让这种冲突不再出现,会逐渐淘汰那些相对封闭的开发系统:JavaFX可能真的很强大,但是既然JavaScript和Canvas对象可以做同样的工作,为什么还要学习另一种语法呢?如果视频标签能做到音视频同步,谁还需要真正的生态系统?
那么,所有的外挂真的会消失吗?也许吧,但这取决于你想做什么。如果您的目标只是绘制图像,那么Canvas对象可能就足够了。但如果你想建立一个专业的3D世界,就像在复杂的Flash和Shockwave游戏中看到的那样,你可能必须依赖专有的插件技术,因为这些插件技术可以直接访问视频硬件并运行3D游戏。
支持动态图像生成
在过去,网页中显示的图像来自直接下载的GIF或JPG图像,但在HTML5中,图像可能不是直接来自图像文件,而是由一个Canvas对象临时生成的。网络上出现了大量优秀的图形库,使得动态生成图像变得更加容易。
今天,JavaScript层可以根据数据进行计算,然后绘制图表。如果软件开发者有足够的时间和天赋,他们可以把网络上的一切变得更加生动,而纯文本内容越来越少。Flash只是一个开始,HTML5环境让Web开发者更容易开发复杂的图片。市场上已经出现了一些类似的工具,这将进一步提高Web开发者对图片的控制能力,而随着工具的成熟,开发者也将开发出更专业、更复杂的图形。
这里可能存在的一个问题是,这个图像的处理可能会给客户端处理器带来很大的负担,比如对客户端处理器的处理能力有一定的要求。以前有些开发者根本不敢用Flash插件,因为渲染显示Flash内容可能会给处理器带来很大压力,极大影响用户的最终体验。这在以后应该不是问题。开发者不应该因为害怕影响性能而让用户体验到生动的画面,而是应该做出一个折中的选择。每一个抱怨Flash对性能影响的人都应该知道,这和技术本身无关。问题是设计师过多的使用这种技术来吸引我们的注意力。
允许Web程序利用本地存储
其实Web程序员利用浏览器端的本地存储空间已经可以存储很多信息了。例如,IE允许最多300个Cookie和最多4096字节的内容。然而,要开发一个真正实用的Web程序,你可能需要比这更多的存储空间。例如,以前的Dojo toolkit使用Flash插件在用户硬盘上分配一些空间,并将其留给浏览器。现在很简单,用HTML5也能达到同样的目的。
对于这部分存储,程序员可以根据自己的需求随意使用,比如将云服务的应用和数据保存在本地硬盘上。这也使得云应用的交付、安装和部署与传统应用非常相似。比如有没有互联网连接,云应用都可以照常运行,因为HTML5应用的JavaScript代码之前已经从服务器下载过了,这部分代码保存在本地。
当然,这种技术的应用并不会影响云应用的普及,因为现在的运行模式与过去有很大不同,本地数据库实际上扮演的是智能缓存的角色。另外,游戏开发者可以在本地存储一些场景信息和装备信息,可以避免每次连接电脑都要下载这些信息,节省下载素材的时间。缺点是这些数据库深埋在系统文件夹里,备份数据变得非常复杂。如果用户希望将数据从一台机器迁移到另一台机器,数据迁移可能会变得更加复杂。
或许混合云的出现或许可以解决这个问题。混合云允许数据同时存储在云中和本地计算机上,而本地计算机只是缓存数据,最终版本存储在云中,这样就可以从任何计算机上访问它。
简化Web开发中的数据提取
从网页中提取数据的Web开发者都知道,现有的HTML结构除了告诉浏览器信息在哪里,几乎不能提供任何有意义的信息。开发人员需要了解数据本身的信息,这可以帮助程序员理解这些数据的真正含义。HTML5中所谓的微格式引入了一种新的机制,在HTML中加入一些特殊的标签,帮助程序员分析标签中数据的真实含义。
没有人能预测微格式会给网络带来多少变化,但很容易看出这种新机制会给程序员带来极大的便利,帮助他们开发出更高效的Web应用。例如,如果有一种好的、标准的方法来表示日期和时间,程序员在为网站开发与时间相关的Web程序时,就不需要编写专门的代码来分析或猜测别人可能会使用什么时间格式。这样,日历、时间表、日程安排等需要从多个数据源收集时间信息的应用就变成了非常简单的工作。
支持定位服务
在网络世界,过去,我们只知道它的IP地址,我们不知道那些数字对应的是什么样的真实世界。例如,过去几乎不可能知道电脑在哪里,但现在位置服务可以解决这个问题。在HTML5标准中,允许JavaScript询问浏览器用户的地理位置,比如经纬度信息。通常桌面系统不支持该功能(因为需要GPS或Wi-Fi),但如果终端是手持智能手机,该功能可以发挥作用。
今天,没有人知道聪明的程序员会基于这些位置信息创造出什么样的应用,但有一点是肯定的,虚拟世界将在未来以一种不可预测、不可思议的方式与现实世界融合。
让网络视频播放更流畅
HTML5中的“video”标签让Web开发者可以很容易地将视频内容与网页中的其他内容进行整合,也让从事jQuery和PHP开发的人可以加入Web开发团队,让Web开发不再只是Flash、Silverlight和JavaFX开发者的专利。
虽然这个想法看起来很吸引人,但仍然有很多困难,因为HTML5标准中没有指定编解码器,每个人都希望发布自己的视频和声音编解码器。这意味着我们用一个混淆替换另一个混淆:只不过过去我们把嵌入浏览器的软件叫做插件,而今天我们把它叫做编解码器。因此,虽然我们今天有一个标准的“视频”标签,但浏览器可能知道也可能不知道如何解释这些视频内容。
在洛杉矶任教的HTML5应用开发讲师Erich Ocean认为编解码器之战仍在继续。“如果计算机开发人员和Mozilla组织认为他们可以为视频专业人士设定视频标准,那他们就大错特错了。”他说,“我们看到谷歌的新视频格式已经在一些地方使用,比如YouTube,但它永远不会像H.264那样受欢迎”
虽然视频播放可能会面临混乱的局面,但是因为不可能所有人都达成一致,新的“视频”标签一定会丰富互联网上的视频内容,网页会成为视频内容的主要来源,而单纯的文字内容会越来越少。只是这对于孩子的教育来说未必是一件好事,因为现在的孩子越来越习惯看动画片,很少花时间读书,更不用说写作了。
Widget会更丰富。
IFrame中运行的Widgets允许网页嵌入其他网站的内容(比如天气预报),非常实用,非常受欢迎。但是,由于安全原因,这些小部件一直运行在相对独立的环境中,基本上与网页中的其他内容相隔离。
HTML5为这些小部件相互通信提供了标准机制。虽然还不能进入对方的运行环境,但是已经可以互相发送信息协同工作了。
广告主对此期待已久,他们非常希望将分散在各个位置的横幅广告整合在同一个网页上。从开发的角度来看,开发者肯定会找到其他的实际用途。比如网页上播放的网球比赛画面,可以和左右两边的球员信息同步,这在HTML 1.0的时代是不可想象的。
但是,信息发送和相互通信的机制只是一个开始,下一个亟待解决的问题是通信协议,因为到目前为止还没有这方面的标准。只有在设定了传递信息的标准之后,两个不同的开发团队开发的Widget才能相互通信。换句话说,双方都需要更标准的词汇。
提高浏览器的安全性
每个浏览器插件都是一个独立的应用,不同的浏览器插件由不同的程序员按照不同的标准开发,发布时间不同,安全模式也不同。当然,有些插件比其他插件更安全。随着浏览器中的插件越来越多,追踪每个浏览器插件中可能存在的安全漏洞也越来越复杂。比如,可能有人很难记住你的企业在去年年底某个时候的安全漏洞是在插件还是浏览器,是通过升级浏览器而不是插件解决的还是相反。
将很多功能放到HTML5中,而不是使用插件,可以大大降低安全风险,避免很多与插件开发相关的环节出现问题,防止有人故意利用插件中的API安装恶意代码。因为相对而言,Firefox、Chrome或IE浏览器的安全性通常会被更多人(包括安全团队)审核。如果安全团队认为一个浏览器是安全的,一般来说,它的安全风险肯定要小很多。
不过这里说的安全提升,有一定程度的主炒。这个世界上总会有一些人利用他们的聪明才智去“作恶”,他们可能完全利用HTML5的一些特性去从事一些恶意的行为。只是谁也无法预料HTML5的新功能可能隐藏着什么危险。
简化Web开发
一位在Web软件开发公司工作的开发人员的话很有代表性,简洁地阐述了HTML5可能带来的改变。他说:“我更喜欢HTML5,主要是因为它使我能够在一个统一的开发环境中进行开发,也就是浏览器加JavaScript加DOM,而不必在Flash世界和HTML5世界之间来回切换。以后只要掌握一门开发语言和一套工具集,就可以开发任何插件。”
他补充说,“我认为对用户的好处是显而易见的,现在Flash似乎在互联网世界中创造了另一个世界。”
的确,HTML5使用统一的语言(JavaScript)、统一的数据模型(XML和DOM)和统一的表示规则(CSS)来表示文本、音频、视频和图形,这对开发者来说无疑是非常理想的。基于统一的标准开发环境,工作肯定会简单很多。然而,将一切变为现实的挑战仍然巨大。一个突出的问题是缺少工具。目前HTML5的相关工具很少。不可否认,Flash的流行离不开Adobe对Flash开发非常有用的工具。
链式连接
HTML的演变
HTML的全称是超文本标记语言,是一种用来描述网页的规范。正是这些包含在尖括号中的简单标签组成了今天的网络。
HTML的第一个正式版本是IETF(互联网工程任务组)发布的HTML 2.0。后来,W3C取代了IETF,成为制定HTML标准的组织。90年代后半期,HTML的版本频繁修改,直到1999年的HTML 4.01,至此,HTML达到了第一个高峰。
HTML 4.01之后的第一个修订版本是XHTML 1.0,其中X代表“可扩展”。XHTML 1.0基于HTML 4.01,没有引入任何新的标签或属性。唯一的区别是语法。HTML对语法比较随意,而XHTML像XML一样要求严格的语法。后来W3C推出了XHTML 1.1。
对于W3C来说,HTML 4已经是一个巨大的成就,他们的下一步是XHTML 2.0,希望将Web带入XML的光明未来。然而,来自Opera、Apple和Mozilla的代表并不满足于W3C的工作,他们自发组织并成立了一个超文本应用技术工作组,即WHATWG,他们致力于HTML5规范。
WHATWG在做HTML5的同时,W3C还在继续他们的XHTML 2.0。但是W3C在XHTML 2.0上的工作慢慢陷入困境,然后就停止了在XHTML 2.0上的工作。2007年,一个新的HTML工作组成立了。他们明智地选择了WHATWG的成果作为基础,致力于制定HTML5规范。
经过多年的酝酿,HTML5的草案于2008年发布,目前W3C正在对其进行改进。目前HTML5何时正式成为标准还没有明确的说法。好消息是2012 HTML5可能会被接受为候选标准。但可以预期的是,无论何时HTML5成为标准,HTML5被所有浏览器提供商接受肯定是一个长期的过程。
/a/20100714/219094 . html #
可以看看这个帖子的回复。