代码之家  ›  专栏  ›  技术社区  ›  Berlin Brown

对于现有的Java应用程序来说,什么是好的可嵌入语言?

  •  2
  • Berlin Brown  · 技术社区  · 16 年前

    http://ioke.org/index.html

    此外,我考虑过用Scala编写DSL?或者使用现有的DSL。

    更新:Rhino似乎是一个很好的嵌入式语言示例。

    http://www.mozilla.org/rhino/tutorial.html

    6 回复  |  直到 15 年前
        2
  •  9
  •   Dónal    16 年前

    此外,Groovy的语法几乎是Java的超集,因此它应该相对容易掌握(与Clojure相比)。Java和Groovy代码之间的调用是无缝的,因此您可以在Groovy代码中轻松使用所有您喜欢的JDK类。

    我倾向于避免使用IOKE,因为它还不成熟,而且就DSL而言,我认为Groovy或JavaScript等动态类型语言比Scala更好。

        3
  •  2
  •   Tom Hawtin - tackline    16 年前

    我建议使用Java。它是:众所周知、快速、易于与Java集成、稳定、静态类型、易于迁移代码等。

        4
  •  2
  •   McDowell rahul gupta    16 年前
        5
  •  1
  •   Bill K    16 年前

    如果你想要一个DSL,那么你真的不想嵌入现有的语言,你想创建一个“领域特定语言”。对我来说,这意味着不仅仅是更改一些关键字而不使用括号。

    例如,我现在正在做电视节目编排。当我们为测试创建虚假指南数据时,我们总是添加这样的注释(直接从我正在进行的测试中剪切出来):

     * TIME:8.....30....9.....30....10....30....11....30....12....30....
     * 4FOX:____________[Spotlight.............][Jeopardy..]____________
     * 6CBS:[Heroes....][Heroes....][Heroes....]________________________
     * 8HMK:xx[A.River.Runs.Through.It....][Blades.Of.Glory...]_________
    

    如果我必须创建更多的指导数据,我将直接将这些注释解释为DSL(使其成为长字符串或字符串数组而不是注释)。

    如果你刚刚嵌入了一种灵活的语言,Groovy或JRuby都是为此而设计的,BeanShell也是如此。

    事实上,有一个完整的API是围绕可替换的插件脚本语言构建的,这样您就可以插入任何您想要的JVM语言,而不会更改代码。

        6
  •  -1
  •   Thorbjørn Ravn Andersen    16 年前

    如果不是 相当 考虑一下你的想法,然后考虑一下你想解决什么。你的案例研究是什么?它是否能够在以后随意添加新代码,而无需重新部署应用程序的新版本?

    推荐文章