【问题标题】:What is your preferred scripting language in java world (scripting language on JVM) and way? [closed]您在 java 世界中首选的脚本语言(JVM 上的脚本语言)和方式是什么? [关闭]
【发布时间】:2009-03-18 07:45:43
【问题描述】:

您在 java 世界中首选的脚本语言是什么(JVM 上的脚本语言)和方式?什么时候你更喜欢你的脚本语言而不是 java(在什么情况下,例如原型设计)?您将其用于大型项目还是仅用于个人项目?

【问题讨论】:

    标签: java scripting-language jvm-languages


    【解决方案1】:

    对我来说,Clojure 赢得了胜利。作为一个 Lisp,它简洁且动态类型,它具有强大的表达能力,因此我可以用几行代码编写很多功能。它与 Java 的集成是无与伦比的——当我说 Clojure 与 Java 比 Java 本身更兼容时,我只是在开玩笑。因此,来自 JDK 和 3rd 方的所有 Java 库都可以完全使用。

    最后,稍加注意,Clojure 代码可以与 Java 代码一样快,因此我什至不会损失性能。

    【讨论】:

    • +1 - 正如 Stuart Halloway 所指出的:Clojure 是一个比 Java 更好的 Java。
    【解决方案2】:

    我最喜欢的是 Jython,我通过在我的 Java 应用程序中嵌入一个 Jython 解释器来使用它。它正在商业项目中使用,它允许根据客户的需要轻松定制应用程序,而无需编译任何东西。只需将脚本发送给他们,就是这样。一些客户甚至可以自己定制他们的应用程序。

    【讨论】:

      【解决方案3】:

      我已经在一个商业项目中成功使用了Groovy。由于鸭子类型和闭包,我更喜欢脚本语言:

      def results = []
      def min = 5
      db.select(sql) { row ->
          if (row.value > min)
              results << row;
      }
      

      翻译:对数据库运行 SQL 查询,并将列“value”大于“min”的所有行添加到“result”。请注意您可以轻松地将数据传递到内部“循环”或从中获取结果。是的,我知道我可以用 SQL 实现同样的效果:

      def results = []
      def min = 5
      db.select(sql, min) { row ->
          results << row;
      }
      

      (想象一下“sql”中的字符串在正确的位置有一个“?”)。

      恕我直言,使用不提供富列表操作(排序、过滤、转换)和闭包的语言的数据库只是作为示例,您不应该这样做。

      我很想更多地使用 Jython,但 Jython 2.5 的工作最近才开始,而 Python 2.2 对我来说太旧了。

      【讨论】:

      • 使用 SQL 不仅可以达到同样的效果,而且如果这样做的话,它会更高效、更容易阅读......
      • ... 我不会有一个简单的例子,它可以放在五行中,并且这里的每个人都可以在没有 10 行解释的情况下理解。注意意图,先生。
      【解决方案4】:

      我可能更喜欢 Scala,但我不能说,还在学习。目前使用 Groovy 编写小型实用程序。甚至没有在 Grails 上尝试过 Groovy。也听说过很多关于 Lift Framework for Scala 的好消息。

      【讨论】:

      • 我曾经是 Scala 的忠实拥趸(不是为了侮辱,它是针对我自己,而不是你),但我发现自己对它关于类型的迂腐和它有些复杂的语法感到恼火。感觉就像是用螺栓固定了太多厨房水槽的语言。我发现 Clojure 更舒服。当然,每个人的里程可能会有所不同。
      【解决方案5】:

      JavaScript Rhino 有一个引人注目的优势——它是included with the JDK。话虽如此,Rhino 的版本比 Java 6 的版本更高,但它具有很好的功能,例如 generators, array comprehensions, and destructuring assignment.

      每当处理 Java 异常的仪式使代码混乱而没有真正的好处时,我都喜欢使用它。当我想编写一个利用 Java 库的简单命令行脚本时,我也会使用它。

      【讨论】:

        【解决方案6】:

        Java。严重地。它是一种功能强大、易于使用(如果有点冗长)的语言,每个人都知道。与 Java 的集成很棒。

        【讨论】:

          【解决方案7】:

          我工作的公司将 Groovy 嵌入到 Java/Spring 网站中,该网站部署在许多网站上。脚本存储在编译后的 WAR 文件的外部,允许我们操作一些站点逻辑,而无需向每个站点推出新的 WAR。到目前为止,这种方法对我们来说非常有效。

          Groovy 的一个特别好的特性是它可以非常类似于 Java 代码,这使得将现有的 Java 类移植到它变得非常容易。

          【讨论】:

            【解决方案8】:

            SISC(方案代码的第二解释器)怎么样?

            参考号:http://sisc-scheme.org/

            【讨论】:

            • +1 用于指出这种语言。看起来很酷,特别是如果您是一位经验丰富的 Scheme 专家,不愿意切换到 Clojure。
            猜你喜欢
            • 2010-11-05
            • 1970-01-01
            • 1970-01-01
            • 2011-08-17
            • 2011-03-12
            • 2012-10-02
            • 2011-09-22
            • 2013-06-19
            • 1970-01-01
            相关资源
            最近更新 更多