我们在用haxe+openfl做网游,下个月发布。目前对openfl底层做了不少修改,解决了一些内存占用和渲染性能问题,但感觉还是有不少坑。我个 人认为openfl应该先让windows/android/ios这三个平台成熟起来,而不是支持更多的平台,每个平台都不成熟谁敢用。 我曾经学习 Haxe 时使用它练手写了一个包管理器,看代码的直观感受:
在 某些方面不很完善(比如说 for 没法同时迭代两个变量),但总的来说用起来很顺手,库也很直观,我虽然是 Haxe 的完全新手,但用着 Google 和 API 参考,竟然也在两天内顺利写出了包管理器的雏形,但我尝试着用 C++/C#/Java 写总觉得限制多多,难以忍受,终于放弃,尽管我有这些语言的一点点基础,不能说是完全新手了。 实际上,Haxe 是一种特别实用的语言,一些语言特性也很好玩很有趣,可惜就是库比较少,做 Web 和游戏开发倒是挺爽的。 不过,要检测一种语言是否趁手,不应该自己试试吗?你说呢? ;-) haxe和lua作为编程接口各有什么优劣?修改lua当然是一个很好的选择,但是考虑到浏览器支持,所以在纠结是否用haxe算了。。 lua优点:
haxe优点:
“Java运行时”可以跨操作系统平台。但Java运 行时本身就是平台,你可以基于Java虚拟机和Java标准库构建跨操作系统的程序。但是Java程序与操作系统原生程序整合时,非常笨重。虽然Java 字节码通过GWT运行在浏览器中,但也同样笨重,会大大增加脚本下载时间。 .NET框架的问题和Java虚拟机类似。虽然有Unity之 类的技术能把托管代码编译成iOS、Android等的原生代码,但这些原生代码仍然基于Unity和.NET的API。哪怕你的程序99%都是原生代 码,只要有1%用了托管代码,就必须包含庞大的.NET运行时。 Lua虽然运行时更轻巧,但本质上和Java虚拟机/.NET框架没有什么区别。仍然是在底层平台上封装一层Lua虚拟机。就算你的lua2js compiler可以直接编译出JavaScript,你仍然需要给这些编译出的JavaScript代码提供Lua标准库。 Haxe与上述技术不同,在于Haxe本身不提供平台(除了Haxe的C++ target),而是真正生成指定平台上的代码。Haxe生成的代码可以与原生代码无缝编译,根本不需要引入任何额外的运行时或者虚拟机。比如,我把一些公共库(qifun/json-stream、qifun/haxe-import-csv)用Haxe实现,然后根据不同平台 看看这个项目,看看是否能否帮助你决定。 顺带一提所谓利益相关,我是作者。 ,分别生成Java代码和C#代码,最后就可以在Scala服务端和Unity客户端中无缝整合。Scala程序员和C#程序员都完全不需要学习Haxe就能使用Haxe开发的中间件。 |
|