什么是Neko?

29

我已经开始使用Haxe将我的ActionScript 3项目转换成NME,但我想知道在Linux世界中什么是Neko?我搜索了一下发现它是一个动画猫!

请问有人可以解释一下吗?

3个回答

60

Neko 对于大多数人来说只是 Haxe 的一个目标。虽然这不完全准确(它有自己的语言,并且理论上也可以成为其他语言的目标),但对于大多数人来说,Neko 是 Haxe 的输出目标之一。

与 Java 虚拟机 (JVM) 可以从多种语言进行目标定向一样(请参见维基百科上的列表),Neko 是一种字节码格式,理论上可以从多种语言进行编写。不过,对于 Neko,大多数人似乎使用 Haxe 来创建他们的 *.n 文件。

对于 Haxe 程序员而言,Neko 目标可让你:

  • 编写命令行工具和实用程序(例如,haxelib 和 haxedoc 是使用 Haxe 目标 Neko 编写的)
  • 编写 Web 应用程序或动态 Web 页面 - 使用 mod_neko(或 mod_tora),您将获得一个 Web 处理器,具有与 PHP 相同级别的功能,但速度更快。
  • 使用 NME 创建游戏(最初是使用 Neko 开始的,它代表 Neko Media Engine),并快速编译它们,具有接近 CPP 的目标,但编译速度更快,输出是跨平台的。
  • 紧密绑定到 Haxe 中并可从宏中使用的运行时 - 因此您可以在宏中使用所有 neko.* 类。

如果您只对 SWF 或 JS 进行目标定向,则可能不需要 Neko。 但是,如果您正在编写服务器端代码,则会欣赏性能;如果您正在编写 CPP,则可能会欣赏拥有一个简单的目标,它非常容易和超级快速进行编译,并且与 CPP 类似的行为。

当然,在 Haxe 之外,Neko 是它自己的语言......但对我来说,至少似乎大多数人仅将其与 Haxe 一起使用。

更多信息:

如果你想使用 Neko 语言进行编程(请参见 此教程),可以将代码保存为 "myfile.neko",然后使用 nekoc myfile.neko 进行编译,这将生成一个 Neko 字节码文件 "myfile.n"。
如果你想使用 Haxe 语言进行编程,可以将文件保存为 "MyFile.hx",然后使用 "haxe -neko myfile.n -main MyFile" 进行编译。
这两种方法生成的 "myfile.n" 文件并不包含可读的源代码-它们是 Neko 字节码。只要在已安装 Neko 的计算机上运行 neko myfile.n 就可以运行它。还可以通过运行 nekotools boot myfile.n 将其转换为能在你的平台/操作系统上运行(无需安装 Neko)的可执行文件。
这里有一个关于 如何入门 Neko 的教程,其中涵盖了命令行程序和(非常基础的)网页的内容。

2
更新了我的回答,希望能够回答你的问题 :) - Jason O'Neil
1
嗨,Simo!我只是想重申Jason在这里说的话 - 我使用Neko进行Web开发,我再也不会想回到php了。速度很快(与php相比),但主要原因是优秀的Haxe语言 - 纯粹的工作乐趣,并且不断改进!(http://haxe.org) - Cambiata
1
说到NME,我大部分核心开发都是使用Neko目标进行的,然后再编译成Flash、Html5、Cpp、Android等。 - Cambiata
如果您对 Neko 带来的性能提升感兴趣,为什么不将目标指向 C++ 呢? - singpolyma
@singpolyma,基本上是因为neko可以与Apache等一起使用,并且具有mod_tora,可以在请求之间缓存模块,因此它已经非常快速和良好集成。 它的速度已经可以与任何现有解决方案相媲美,所以我并不急于获得C ++的额外速度。 您可以让Haxe C ++与mod_cgi一起工作,但您必须自己实现许多低级代码,包括所有高级缓存请求之间的缓存。 目前,使用neko更容易,并且对于Web(与移动游戏不同),始终可以通过添加更多服务器来提高性能 :) - Jason O'Neil
显示剩余2条评论

10
"Neko"是日语中的"猫",这可能是你找到的原因。 Neko也是一个虚拟机("VM"),就像Java虚拟机("JVM")或.Net公共语言运行时(".Net CLR")一样。
Neko有一个自定义的高级语言,作为易于定位的语言后端(在某种程度上类似于C--,但不像LLVM那样接近汇编语言)。换句话说:它是一种可以将编程语言转换成的东西,而不是更复杂的“完整”编译(例如汇编、字节码或机器代码)。Neko的语言可以被翻译成一个可移植的字节码,并通常存储在一个“.n”文件中。
Neko是由Nicolas Cannasse(Haxe编程语言的创造者)制作的,这也许就是为什么Haxe编译器有一个Neko目标以及像"haxelib"这样的Haxe工具使用它的原因。因为这些工具被编译成“.n”文件,所以它们只需要被构建一次,然后在安装了VM可执行文件“neko”的任何平台上都可以运行。
也许更有趣的是关于neko的一点,以及为什么你应该学习它来进行Haxe开发,那就是它是用于编译时宏的运行时。请参见此教程,了解如何在编译时运行程序的部分,并完全访问构建机器,这意味着您甚至可以在编译时执行复杂任务,例如解析数据文件。

谢谢,这很有用! - simo

6
Neko提供了一个公共运行时环境,可用于多种不同的语言,包括javascript和haxe。编译器将源文件(.neko)转换为字节码文件(.n),可以在虚拟机上执行。您可以使用编译器作为独立的命令行可执行文件,与虚拟机分开,或者作为Neko库来执行交互式语言的编译和运行。Neko是由Nicolas Cannasse编写的。

您可以在此处找到Neko教程:Neko Tutorial


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接