哪些脚本语言与ECMA类似?

时间:2009-05-19 16:36:21

标签: javascript actionscript-3 dynamic-languages scripting-language ecma262

我正在寻找一种ECMAScript替代方案,作为自定义应用程序逻辑的脚本语言。我喜欢ECMA,特别是新规范的语法(如AS3)。

不幸的是,AS3引擎不是开源的,无法集成到项目中。我想要一种专为面向对象使用而设计的脚本语言。

具体来说,是否有一种语言:

  • 静态类型变量(可选)
  • 课程,包括公共/私人会员
  • 继承,包括接口
  • 软件包(可选)
  • 清洁语法
  • 必须能够作为应用程序的内部脚本语言(如浏览器的Javascript)接口,不能是外部系统调用。

我宁愿做的事情

  • 凌乱的ECMA prototype对象

您了解哪些语言适合此个人资料?我很难找到专为良好的面向对象设计而设计的高质量脚本语言。

9 个答案:

答案 0 :(得分:5)

在Java中,最好的ECMAScript(Javascript)选项是嵌入Rhino。我没有发现基于原型的继承是一个交易杀手,因为有一些纪律,你可以使它的行为几乎像基于类的继承。

如果您想要与Java密切互操作的内容,请使用Groovy。如果您需要JVM兼容性,还可以查看Jython(JVM上的python),Jruby(JVM上的Ruby)和Scala(JVM上的函数式语言)。如果您不关心Java和JVM兼容性,请查看RubyPythonErlangClojure是JVM上Lisp的一种方言。

更远的地方,TCL(工具命令语言)允许您在C / C ++代码中嵌入一个解释器,有许多可嵌入的Lisp和Scheme解释器等。

答案 1 :(得分:3)

如果您想要一种类似ECMAScript的脚本语言,为什么不使用ECMAScript?有许多开源实现,只需查看Wikipedia上的列表。

答案 2 :(得分:2)

我建议使用Python或Ruby。它们都不像ECMA,但是我在JavaScript之后学会了它们,它们很容易接受。此外,它们是更强大的语言,使其成为在应用程序中使用JavaScript引擎(Rhino for Java)的更好选择。

的Python

  • 强制使用干净的语法(几乎像英语while is not False:
  • 多重继承(无接口)
  • 可以使用C / C ++扩展解释器(如果需要,可以用于适配器)

红宝石

  • 语法应该接近英语(unless条件,until循环)
  • 一切都是对象
  • 仅支持单继承,但使用Mixins添加功能

两个

  • 可嵌入其他应用程序
  • 私人会员

答案 3 :(得分:2)

Lua - 您想要的一切以及~100KB以上的更多内容

有关Lua和其他提到的语言之间的比较,请参阅this页面。

答案 4 :(得分:2)

Haxe on Neko看起来就像你想要的那样。我不知道nekovm是如何嵌入的,但它是开源的,所以你可以摆弄它。 http://haxe.org

答案 5 :(得分:1)

Ruby解释器也可以嵌入到C程序中,有些人可能认为它比Python更面向对象。

答案 6 :(得分:1)

我们使用ECMAscript作为我工作的软件产品的扩展语言,并且它运行良好。作为一种标准(和流行)语言,能够将我们的用户指向该语言的大量现成文档是很好的。我们构建了自己的ECMAscript编译器,转换为我们运行的平台的字节码,但是如果我重新做一遍,我会认真考虑嵌入谷歌的V8 ECMAscript引擎(事实上,我甚至考虑构建我们的整个应用就可以了。)

答案 7 :(得分:0)

我会选择相当主流的东西来简化事情。阅读完您的要求后,我建议Python。它实际上没有Java / C#方式的接口,但它也不需要它们。除此之外,它应该是一个很好的选择。

答案 8 :(得分:0)

QtScript是ECMAScript。你没有提到你的应用程序的主要部分是什么,但我认为它不是Qt,或者你已经了解QtScript。