Flash的将来

伴我编程生涯最久的就数Flash–从高中开始接触Flash5,ActionScript2开始,至今8年时间,比我接触C语言还要早一年,不过在C语言青春活力的日子,Flash却面临着HTML5的挑战,市场逐步缩减…

随着Adobe退出Android平台的Flash开发维护,Flash在一次在竞争中做出了让步。

首先,我打心里对Flash有好感。是它让我真正的入门到现代编程语言,从语法、控制结构到复杂程序的编写;是它让我控制可视的元素在屏幕上挥舞而给我带来coding的乐趣;是它让我能给客户带来最好的交互体验,得到无数好评。伴着AS2到AS3的提升,我也跟着Flash一起成长。

时代是前进的,技术的更新换代也是平常的事。Flash非常出色地完成了它在WEB交互上的历史使命。必竟Flash是一个插件嵌入浏览器的,所以这就让它具有一定的被动性:当浏览器自身变得很强时,Flash就变得没那么有用武之地了。

Flash的一些应用场合会逐渐被取代,主要反应在下面一些方面:

  1. 从编程风格上来讲,ActionScript的面向对象比Javascript的闭包更像标准的面向对象编程风格,不过Javascript的闭包也显得很灵活,用得习惯了也很舒服,并且随意性也更强。javascript的应用范围可以更广,随着libv8开源项目的成熟,javascript可以用作任何应用程序扩展脚本,而actionscript只能用在与flash、flex、air相关的场合,它们不是免费的。
  2. 应用程序嵌入方面,Flash可以通过插件方式(如Windows上的ActiveX)嵌入到应用程序中,而HTML5可以通过应用程序嵌入浏览器的方式嵌入到应用程序,相比起来,后者在很多系统上一般都集成到操作系统中,直接可加载,而前者需要有依赖的库。
  3. 使用范围上,Flash没有成功打入移动应用领域,而HTML5占有绝对的优势。

同时,Flash还会生存相当长的一段时间,反应在以下一些方面:

  1. 架构方面,Flash的时间轴概念,以及编程架构比js还是有一定优越性的,js也可以自己实现这样的架构,而且早晚也会有这样的开源库出现,但这需要一定的时间。
  2. 绘图效率,HTML的Canvas的绘图效率不一定有Flash高,Flash对重绘区域有做计算,而Canvas现在是全图重绘。
  3. 3D引擎,Flash新加的3D引擎是直接可以使用GPU加速的,这些规范在HTML5中还未提出,就算提出也需要一定的时间。
  4. 网络应用,Flash可实现Socket进行TCP,UDP协议上的编程,而HTML5现在无法做到,在上传文件时可以做到上传进度,批量上传文件等HTML5都需要时间去实现。绘图、3D引擎和网络上的优势可以让Flash在很长一段时间内在游戏应用上占有绝对的优势。
  5. 视频应用,这个也是Flash的强项。Flash支持更多的视频格式,且能轻易实现P2P,流媒体,视频聊天等应用。
  6. 兼容性,至少浏览器的兼容性是短时间内无法统一的,而Flash在这方面还有优势。

随着HTML5的发展,Flash的市场会缩小,但至少在游戏和视频应用上,Flash还是有自己的优势的,说不定Flash以后能专注到这些市场上去。

2013年更新:

又经过大半年的发展,HTML5又有大幅提升,而Flash却没太多进步。

1.HTML5的Websocket已经基本上定稿,Websocket已经很好用,但无法进行原始socket通信,它是基于TCP之上的一个协议,这点稍有缺憾,但问题不大。

2.关于Canvas的效率,经过这段时间的总结,觉得效率应该是有过之而无不及的。

3.关于3D,WebGL的草案正在进一步发展,应该也会很快定稿,WebGL是opengl的一个分支,也就是说了解opengl的很快可以进行webGL的开发,而Flash的Stage3D需要多熟悉一下文档。

4.关于视频,最新的WebRTC又是一个强有力的竞争对手。

5. Flash唯一的优点就只剩兼容性了。

Leave a comment

Your email address will not be published. Required fields are marked *