Python vs Groovy vs Ruby? (based on criteria listed in question) [closed] Python vs Groovy vs Ruby? (based on criteria listed in question) [closed] ruby ruby

Python vs Groovy vs Ruby? (based on criteria listed in question) [closed]


I think it's going to be difficult to get an objective comparison. I personally prefer Python. To address one of your criteria, Python was designed from the start to be an embeddable language. It has a very rich C API, and the interpreter is modularized to make it easy to call from C. If Java is your host environment, you should look at Jython, an implementation of Python inside the Java environment (VM and libs).


Having worked with all 3 of them, this is what I can say:

  • Python

    • has very mature libraries
    • libraries are documented
    • documentation can be accessed from your debugger/shell at runtime through the docstrings
    • you can develop code without an IDE
  • Ruby

    • has some great libraries ( even though some are badly documented )
    • Ruby's instrospection mechanisms are great. They make writing code pretty easy ( even if documentation is not available )
    • you can develop code without an IDE
  • Groovy

    • you can benefit from everything Java has to offer
    • syntax is somewhat inspired from Ruby
    • it's hard to write code without an IDE. You have no way to debug stuff from your console ( this is something you can easily do in Python/Ruby ) and the available Groovy plugins have a lot of catching up to do. I wrote some apps using Groovy and as they get bigger I regret not going with Ruby/Python ( debugging would have been WAY more easier ). If you'll only develop from an IDE, Groovy's a cool language.


Just to muddy the waters...

Groovy give you access to Java. Java has an extremely rich set of APIs/Libraries, applications, etc.

Groovy is embeddable, although easiest in Java.

DLLs/Libraries (if you're talking about non-Groovy/Java) may be somewhat problematic, although there are ways and some APIs to help.

I've done some Python programming, but being more familiar with Java, Groovy comes a lot easier to me.