面向 Flash 开发人员和 haXe 平台的 C#/Silverlight 特性

  • Abel Avram
  • 王波

2009 年 8 月 27 日

话题:Java.NET语言 & 开发

很多 Flash 与 ActionScript 开发人员都希望在他们的开发工具中使用 Silverlight 和 C# 特性。haXe,一个可把其它文件编译成 SWF 文件的跨平台语言,承诺提供 AS3 所缺乏的功能。

在解释使用 ActionScript(以下简称 AS3)中遇到的困难之后,Joa Ebert,作为一位 Flash 开发人员和多个 Flash 开源项目的创始人,他正期待以下三个方面的改变

贡献。给 SDK 和 Flash 播放器作出自己的一份贡献是绝佳选择,我很荣幸参与其中。但这也应该包括 Flash 平台的工具

  • 更新特定规范的开源 Wiki 并允许人们参与其中
  • 创建开源 ActionScript 文档
  • 不要像 TextLayoutFramework 那样开发一些非开源的项目,又在 6 个月之后重新开放
  • 创建代码进度审核并让人们参与,进而免去 JIRA 的烦恼
  • 制定可用的路线图,这样开发人员才会对 Adobe 的运作一目了然
语言
  • 添加泛型支持
  • 真正意义上的重载方法
  • 线程支持,含线程同步功能
  • 反思关键字 const 的实用性
  • 实现标准的面向对象功能,比如:私有构造函数、抽象方法和抽象类等
  • 利用泛型创建集合框架
  • 创建强大的并发框架
性能
  • 完善虚拟机性能,尤其是在对象分配和方法调用方面
  • 期待跟踪 JIT 功能和 HotSpot 技术
  • 完善编译器性能及其输出

另一位 Flash 开发人员,Sascha Balkau 列出了期待的ActionScript 功能

  • 方法重载(由于缺乏它的话,编写开源框架和函数库会显得非常滑稽)
  • 泛型
  • 线程
  • 多核支持
  • 私有构造函数
  • 真正的抽象类和抽象方法
  • 枚举(期待已久。不知问题所在)
  • 硬件呈现(PV3D 等固然是很好的项目,但如果画面上有多于 1000 个三角形的话就有点麻烦了)
  • 编译器性能(严格来说,如果 haXe 编译器问世的话,MXMLC 需要躲到一边去了)
  • 最后但并不是不重要,我期待着对 AIR 运行时能与操作系统更好的集成(比方说修改屏幕解析)、更好的性能和资源管理(AIR 太占内存了)

Nicolas Cannasse 抱怨 AS3 的同时也提供了一个解决方案haXe。haXe 是开源的跨平台语言,可用于编写 JavaScript、NekoVM、PHP、C++ 以及从 Flash6 到 Flash10 等应用程序。haXe 公布了一系列相互兼容的语言功能,使得它对 ActionScript 程序员非常有吸引力,相关建议如下:

  • 强类型语言
  • 一流的方法和函数(闭包)
  • 正则表达式
  • 高级类型系统包括以下内容:
    • 类和接口
    • 枚举
    • 函数类型
    • 匿名类型
    • 动态类型
  • 枚举
    • 可选的构造函数参数(à la ML)
    • 类型参数(多态性)
  • 完整的类型引用:无需输入本地变量
  • 模块系统:包定义和私有定义
  • 使用类型引用和匿名类型的结构子类型转化(动态类型)
  • 多态方法

要和 C# 竞争,ActionScript 还有些重要的功能需要实现,但在设计工具方面 Flash 仍然领先。与此同时,AS3 社区的挫折感正逐渐蔓延。也许十月 4 日至 7 日的MAX 2009日程表会点亮 Flash 的未来。部分MAX 2009 会议日程如下:

  • 路线图:Flash 平台运行时
  • 路线图:Flash 平台服务器和服务
  • 路线图:Flash 平台工具与框架
  • 路线图:创建站点的 Web 专业工具和服务
  • Flash Catalyst 的领先之处
  • 即将发布的 Adobe AIR 2
  • ColdFusion 9 新特性
  • Flash Builder 4 新特性
  • Flash Player 新特性
  • Flex 4 新特性

查看英文原文:C#/Silverlight Features for Flash Developers and haXe

Java.NET语言 & 开发