Python vs Groovy vs Ruby?(根据所列标准)

Pre*_*mbo 34 ruby python scripting groovy

考虑下面列出的标准,您将使用Python,Groovy或Ruby中的哪一个?

  • 标准(10个中的重要性,10个是最重要的)
  • 丰富的API /库(例如数学,绘图,网络)(9)
  • 能够嵌入桌面(java/c ++)应用程序(8)
  • 易于部署(8)
  • 能够与DLL /共享库进行交互(7)
  • 能够生成GUI(7)
  • 社区/用户支持(6)
  • 便携性(6)
  • 数据库操作(3)
  • 语言/语义学(2)

Ned*_*der 33

我认为要进行客观比较是很困难的.我个人更喜欢Python.为了满足您的一个标准,Python从一开始就被设计为可嵌入的语言.它有一个非常丰富的C API,并且解释器是模块化的,以便从C调用.如果Java是您的主机环境,您应该查看Jython,它是Java环境(VM和libs)中的Python实现.


Geo*_*Geo 27

与他们三个人一起工作,这就是我所说的:

  • 蟒蛇

    • 有非常成熟的图书馆
    • 图书馆有记录
    • 可以在运行时通过docstrings从调试器/ shell访问文档
    • 你可以在没有IDE的情况下开发代码
  • 红宝石

    • 有一些很棒的图书馆(尽管有些文件很难记录)
    • Ruby的反思机制很棒.他们使代码编写非常简单(即使文档不可用)
    • 你可以在没有IDE的情况下开发代码
  • Groovy的

    • 您可以从Java提供的一切中受益
    • 语法有点受Ruby启发
    • 没有IDE就很难编写代码.您无法从控制台调试内容(这是您可以轻松地在Python/Ruby中执行的操作),并且可用的Groovy插件有很多工作要做.我使用Groovy编写了一些应用程序,随着它们变大,我后悔没有使用Ruby/Python(调试会更容易).如果你只是从IDE开发,Groovy是一种很酷的语言.

  • 通常Java的库质量非常好.既然你可以使用Jython(在编写Python代码时从中受益),我会说你们两种方式都很好. (2认同)

Ken*_*tle 24

只是为了浑水......

Groovy允许您访问Java.Java有一组非常丰富的API /库,应用程序等.

Groovy是可嵌入的,尽管Java中最简单.

DLLs/Libraries(如果你谈论的是非Groovy/Java)可能会有些问题,尽管有方法和一些API可以提供帮助.

我已经完成了一些Python编程,但是对Java更熟悉,Groovy对我来说更容易.


Flo*_*rin 10

Groovy的?我只是把它拿起来; 试试这个(在groovyconsole内):

File.metaClass.invokeMethod = { String name, args ->
    System.out.print ("Call to $name intercepted...");
    File.metaClass.getMetaMethod(name, args).invoke(delegate, args);
}

new File("c:/temp").eachFile{
    if (it.isFile()) println it.canonicalPath
}
Run Code Online (Sandbox Code Playgroud)

第一个代码是AOP.将拦截对File对象的任何方法的所有调用.无需其他工具.这是针对现有Java类动态执行的.

在第二个块中,删除'f'闭包参数.作为一个参数,它默认为闭包​​上下文可用的内置"it"变量.

这是你得到的:

"调用isFile拦截...... C:\ temp\img.jpg"

等等


小智 8

尝试Groovy ..它具有您需要的所有功能.您可以使用现有的java lib而不对其类进行任何修改.基本上.. groovy是java ++,学习起来更有活力和乐趣(就像红宝石一样)

我不喜欢ruby或python语法,所以我会把它们放在后面.Groovy就像C/C++语法,所以我喜欢他大声笑:)


S.L*_*ott 7

Python有九个标准.它得分56.

我确信Ruby拥有Python所拥有的一切.它似乎有更少的库.所以它得分51.

我不知道Groovy是否具备所有功能.

由于Python是56而Ruby是51,因此Python几乎没有使用Ruby.

但是,我认为这种决定仍然可以归结为这九个标准之外的一些主观问题.

  • 尽管如此,我不认为Ruby拥有与Python相同数量的库,更不用说Groovy了.如果我采用Ubuntu软件包(包括multiverse,这意味着它基本上是Debian软件包),那么有920个包用Python名称和464个包含Ruby.Groovy没有第三方库. (3认同)
  • 更新:我查看了Rubyforge和PyPI,它似乎支持这种估计,Python的库几乎是Ruby的两倍. (3认同)
  • 两年后更新:列出了比PyPI包更多的RubyGems.但这不是一场小便竞赛.Ruby和Python都足够成熟,可以为您想做的任何事情提供优秀的库. (3认同)

Mar*_*llo 6

从你的critera,我选择JRuby:

  • 丰富的API /库(例如数学,绘图,网络)(9)

JVM可以访问的所有内容,这都是很多

  • 能够嵌入桌面(java/c ++)应用程序(8)

优秀的Monkeybars框架,可让您在GUI设计器中设计swing GUI,然后使用干净的ruby代码将其连接起来

  • 易于部署(8)

Rawr可以将您的应用程序打包为可执行jar

  • 能够与DLL /共享库进行交互(7)

Java可以轻松共享库,C通过jna + libffi共享库

  • 能够生成GUI(7)

Swing正常工作.不确定使用QtJambi是多么容易,但这绝对是可能的.

  • 社区/用户支持(6)

许多.Ruby拥有一个优秀的社区.

  • 便携性(6)

JVM无处不在

  • 数据库操作(3)

所有ruby数据库库所有java 数据库

  • 语言/语义学(2)

这是红宝石在常规和蟒蛇方面取得明显领先的地方.该语言早期采用了一些非常漂亮的设计决策,这体现在标准库的一致性和强大功能上.特别是使用起来很愉快.