【问题标题】:What are real use cases which leads to alternative JVM languages?什么是导致替代 JVM 语言的真实用例?
【发布时间】:2011-03-02 18:28:19
【问题描述】:

我最近在读 Groovy,它更多地与 Java 相关。我没有任何动态语言经验。我读过 Groovy 的创始人希望将动态特性添加到现有的 Java 语言中。我的问题是这个。

Q1 提出在 JVM 上运行 Groovy 等语言的令人信服的理由是什么。这让我很感兴趣。请有人可以帮助我。

谢谢, 努万阿兰巴奇

【问题讨论】:

  • Java 就像“JVM”中的“J”一样。确实如此。从配置文件到安全性,再到现代 JIT 的性能等。Java 就像“Java 语言”一样,并没有那么大。没关系,但真的不是很好。看看像 Trove 这样速度惊人的集合的作者必须做什么:基本上编写一个自定义预处理器,以避免必须为所有 Java 原语重复 8 次相同的代码。类似的东西。 Java 在某些事情上真的很糟糕。它非常冗长(Scala 已经证明你可以用更少的代码获得同样的安全性)。等等。

标签: java groovy dynamic-languages


【解决方案1】:

你是在反问问题。考虑到像 Groovy 或 Clojure 这样的语言的想法,如果它可以在广泛部署的运行时(如 JVM)上运行,那么它被广泛采用的巨大障碍就会消除。

【讨论】:

    【解决方案2】:

    对我来说,它有很多原生 Java 中没有的增强功能

    语法糖、闭包、常用数学和 i/o 库的包含、JavaBean 特性、鸭子类型 是一些 - 它可能会花费一些性能开销并且是最大的障碍

    基本上,它为您提供 Ruby 人喜欢的东西(非常简洁和富有表现力的脚本),同时符合 Java 生态系统的各个方面,并重用架构良好的 Java 类

    事实上,由于 Groovy 1.8 即将推出,我已经完全停止编写 Java 它只是你的类路径中的一个 jar 文件 就这么简单……

    【讨论】:

      【解决方案3】:

      众所周知,Java 是一种非常强大的语言,但我们可以看到缺少“某些东西”。众所周知,java是一种面向对象的编程语言。但真的是这样吗?你能在像这样“10.times..”这样的任何整数上调用该方法吗?答案是“否”,你不能。但是 groovy 使 Java 成为完全面向对象的语言。而在java中处理list,map是一些繁琐的工作,因为程序员需要这些非常简单,groovy做到了。 更重要的是,groovy 易于阅读、维护,并且您的项目算法变成了精确的代码! 那就是“算法”=“groovy代码”

      我喜欢时髦!

      【讨论】:

        【解决方案4】:

        我无法告诉你为什么存在其他语言,但我可以告诉你我是如何来到 Groovy 的。对我来说,当时有两点很重要: * 如果你懂一些编程语言,Java 就很烂。它像小孩子一样处理你,编译器是你的母亲,不断地告诉你该做什么,而在涉及更困难的领域时却失败了。 * 我需要一种脚本语言。那时的 Jython 和 JRuby 看起来已经死了,Beanshell 太像 Java。而且由于我当时主要编写 Java 程序,所以 Groovy 对我来说几乎是自然而然的选择,因为它允许重用我的旧代码而无需过多地担心转换。

        关于用例的问题有点难以回答,因为我的个人历史更像是我的偏好之一。能够用更少的行编写更多的代码并不完全是一个用例,但原型设计与我和一个用例有关。在 Groovy 中,您通常可以更快地编写应用程序并交付您的原型。如果客户坚持,您通常可以轻松地将现有代码再次迁移到 Java。好消息是,您可以基于每个类执行此操作,因为 Java 和 Groovy 可以很好地交互。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多