代码之家  ›  专栏  ›  技术社区  ›  Kekoa

什么脚本语言与ECMA类似?

  •  2
  • Kekoa  · 技术社区  · 16 年前

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

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

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

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

    我宁愿不做的事

    • 混乱的ECMA prototype 对象

    您知道哪些语言适合此配置文件?我很难找到一种为良好的面向对象设计而设计的高质量脚本语言。

    9 回复  |  直到 14 年前
        1
  •  5
  •   Jim Ferrans    16 年前

    在Java中,最好嵌入ECMAScript(JavaScript)选项。 Rhino . 我不认为基于原型的继承是一个交易杀手,因为有了一点规则,您可以使它的行为类似于基于类的继承。

    如果你想和Java非常紧密地合作,那么 Groovy . 如果您需要JVM兼容性,也可以查看 Jython (jvm上的python) Jruby (JVM上的Ruby)和 Scala (JVM上的一种功能语言)。如果您不关心Java和JVM兼容性,请看 Ruby , Python Erlang . Clojure 是JVM上Lisp的方言。

    更深入地讲,TCL(工具命令语言)允许你在C/C++代码中嵌入一个解释器,有很多可嵌入的LISP和方案解释器等等。

        2
  •  3
  •   Dour High Arch    16 年前

    如果你想要一种像ecmascript一样工作的脚本语言,为什么不使用ecmascript呢?有许多开放源代码实现,请看下面的列表 Wikipedia .

        3
  •  2
  •   geowa4    16 年前

    我推荐使用python或ruby。两者都不像ecma,但我是在javascript之后学到的,而且它们很快就被接受了。另外,它们是更强大的语言,使它更好地替代了在应用程序内部使用JavaScript引擎(Ryo for Java)。

    蟒蛇

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

    红宝石

    • 语法应该接近英语。( unless 有条件的, until 循环)
    • 一切都是一个物体
    • 只支持单一继承,但使用mixin添加功能

    两个

    • 可以嵌入到其他应用程序中
    • 私人成员
    • 包装
        4
  •  2
  •   majkinetor    16 年前

    Lua -所有你想要的和更多在~100kb

    this Lua和其他提及语言的比较页面。

        5
  •  2
  •   artificialidiot    16 年前

    哈克森·内科看起来正是你想要的。我不知道Nekovm有多可嵌入,但它是开源的,所以你可以随意摆弄它。 http://haxe.org

        6
  •  1
  •   cjs    16 年前

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

        7
  •  1
  •   Stephen P. in Roswell    16 年前

    我们使用ECMAScript作为我所工作的软件产品的扩展语言,它工作得非常好。作为一种标准的(流行的)语言,能够向我们的用户指出该语言丰富的现成文档是很好的。我们构建了自己的ecmascript编译器,它可以转换为运行在上面的平台的字节码,但是如果我要重新做一次,我会认真考虑嵌入Google的V8 ecmascript引擎(事实上,我甚至会考虑在上面构建我们的整个应用程序)。

        8
  •  0
  •   Pesto    16 年前

    我会用一些相当主流的东西来简化事情。读完你的要求后,我建议你 Python . 它在Java/C方式中并没有真正的接口,但也不需要它们。除此之外,它应该很适合。

        9
  •  0
  •   KeyserSoze    16 年前

    QtScript 真是太好了。您没有提到应用程序的主要部分是用什么编写的,但是我想它不是qt,或者您已经知道qtscript了。