【问题标题】:Why are Ruby and Python more suited for programming outside an IDE than Groovy?为什么 Ruby 和 Python 比 Groovy 更适合在 IDE 之外进行编程?
【发布时间】:2011-07-26 01:50:27
【问题描述】:

这主要是参考“Python vs Groovy vs Ruby?”中的this answer

是什么让 Python 和 Ruby 更容易在 IDE 之外进行开发?

该链接还提到了控制台中的调试。究竟是什么意思?

【问题讨论】:

  • 语言开发起来非常繁琐,以至于实际上需要 IDE 才能在没有痛苦和痛苦的情况下进行操作,这在本质上是有缺陷的,而 IDE 只是这些缺陷的创可贴。 Python、Perl 和 Ruby 都是直截了当的语言,不需要复杂的小工具来解决令人痛苦的设计错误。
  • @tchrist:你必须维护现有的应用程序,还是只开发新的应用程序?
  • @Andrew,我大部分时间都在开发新程序,但这仍然需要处理其他人的代码:库和其他东西。我从事生物医学文本挖掘,所以有时不得不捏着鼻子用 Java 弄脏自己。但不要太多:我将 UIMA 位等留给其他人。但是对生物医学领域有很多 Perl 支持,对 NLP 也有相当多的支持。我仍在尝试找到一个适用于生物医学文本的词干分析器。 Snowball 比 Porter 好(我认为),但两者都存在所有经典形态的问题。

标签: python ruby groovy language-comparisons


【解决方案1】:

Python 和 Ruby 通常比大多数 JVM 语言更容易在 IDE 之外进行开发,因为它们需要的“开销”更少。我将主要谈论 Python,因为这是我的主要语言。

一般来说,Python 安装只有一个库源(除非您使用virtualenv),并且整个项目都存在于文件系统中。无需担心.jar.class 文件——一切都在运行时编译,.py 文件是您的可分发文件。

此外,Python 比 Java 更简洁,Groovy 继承了 Java 的很多语法(尽管它抽象了一些东西)。 IDE 有助于处理样板文件,从而减少程序员的工作量——但没有太多样板文件的语言不需要这种帮助。

【讨论】:

  • 图书馆的优点。我不确定我是否同意语言本身的简洁性。
  • 您首先说 JVM 语言有更多的“开销”,但随后忽略了支持该声明,除非您在谈论开销时仅指“库所在的位置”。此外,Groovy 的主要目标之一是消除典型的 Java 样板,其中包括简洁的代码。的确,Groovy 很乐意按原样运行大多数 Java,但这不是 Groovy,它只是在 Groovy 编译器上运行的 Java。
【解决方案2】:

我不同意在 IDE 之外更难开发 groovy 的说法。我做过认真的 python 和 groovy 开发,还有一点 ruby​​,大部分都没有 IDE。

虽然没有 pdb 样式的调试器,但有一个控制台:groovysh 是一个非 GUI 控制台、命令行应用程序,而 groovyConsole 是一个具有简单语法突出显示和编辑的 GUI。 rails 和 TDD 哲学强调使用测试而不是调试器进行开发,如果我有良好的测试覆盖率,我发现我很少(如果有的话)觉得需要使用完整的调试器。这对你是否重要取决于你自己的开发风格。

Groovy 简化了整个 jar/classpath 混乱。虽然您仍然可以根据需要设置类路径,但让 groovy 完全管理它要容易得多。 Groovy 会自动在类路径中的 $GROOVY_HOME/lib~/.groovy/lib 中包含 jar。安装库只是将其复制到那里。比这更好的是,使用@Grab,您可以在脚本顶部声明您的依赖项,groovy 将自动下载您指定的版本,并递归获取所有 its 依赖项并设置正确的类路径和类加载器;它甚至可以管理依赖于同一个 jar 的不同版本的两个库。 Grails 也有声明性依赖。

groovy 语言本身与 ruby​​ 或 python 一样简洁灵活。虽然您可以像完全成熟的 Java 一样编写它,但可以将 groovy 编写成看起来与 ruby​​ 非常相似。

对 groovy 与 python 和 ruby​​ 的一个有效抱怨是 JVM 的启动时间仍然明显更差。

【讨论】:

  • Re: JVM 启动时间 - 在我看来,这更多是因为 JVM 更专注于运行时间更长的应用程序(服务器和桌面)而不是脚本,而脚本是 Python 和 Ruby 所拥有的更多的焦点。
【解决方案3】:

此外,例如 Ruby on Rails 包含一些原本由 IDE 处理的东西,例如生成器和控制台。

【讨论】:

  • Grails 还包括许多对 CLI 友好的工具,包括一个明确的基于 CLI 的 shell,用于帮助创建 Grails 应用程序。
猜你喜欢
  • 1970-01-01
  • 2016-08-10
  • 2023-04-05
  • 2010-11-04
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 2011-12-13
相关资源
最近更新 更多