我正在考虑使用Haxe来实现它的跨语言能力,但不确定它是否是最适合这项任务的。我将编写一个通用库,它应该能够在目标语言中使用并记录下来(能够应用像doxygen这样的东西)。换句话说,我想在Haxe中编写一个通用库,输出c ++代码(和java一起完成),并让其他程序员可以访问它。(不仅仅是C +编译器可读)这是这项任务的最佳选择,或者如果我只为每种语言编写一个版本的库会更好吗?
答案 0 :(得分:7)
当然有可能,即使根据所选平台可能存在一些尴尬。
在JavaScript,neko和Flash上,生成的代码非常接近原生代码,人们可以在不知道它是在Haxe中生成的情况下使用它。
关于PHP,我担心我不太清楚它是如何工作的。但是有一些命名空间的黑客攻击有点尴尬,但我认为这些可以通过用手写代码包装库来解决。
在C ++上,如果你不介意使用一些样板代码来使反射工作,它将大部分正常工作。它有一种非标准的处理构造函数的方式,而且你应该非常小心,因为它附加了一个gc,我不知道它处理外部代码持有它不知道的引用的程度。
关于新目标 - C#和Java将与本机代码100%互操作。大多数Haxe功能都映射到平台的本机功能,但代理除外。但是如果你没有在你的界面中公开代表,那就没问题了。它们还会生成一些样板代码,以便在这些平台上实现快速反射,但如果您知道自己在做什么,就会有一些方法可以禁用它。
答案 1 :(得分:3)