I would like to explore programming in dynamic languages, and I found that Groovy would be really easy to learn because it is heavily based on Java.

won't I miss anything important regarding dynamic languages proggramming if i take Groovy path instead of say Ruby or Python? I don't intend to program in dynamic language too much, it is mostly for learning purposes.

thank you for help.

share|improve this question
2  
you will be programming groovy a lot, if you start to learn it, because it is very powerful. Warning: It could even be that you don't want to program java anymore... – Ralf Aug 4 '11 at 13:31
1  
@Ralf : Nice ending statement! and the same happened to me :D :D – Ant's Aug 4 '11 at 13:55
3  
If you are from java background, groovy is best choice to start with because it works on jvm and gels seamlessly with existing java classes and libraries. Even if groovy may be missing a few bits dynamic feature here and there compared to ruby/python, the ease of getting started with groovy and incrementally learning dynamic features is what makes groovy stand apart. And @Ralf, +1 for the warning :) – kunal Aug 4 '11 at 17:46

migrated from stackoverflow.com Aug 4 '11 at 13:16

4 Answers

Groovy is the best example for a Dynamic language. It generally makes life so simple with elegant syntax. And ya, you can feel the taste of Ruby in Groovy as its been inspired by Ruby, Python and smalltalk. Many things that are done in Ruby and Python can be done in Groovy. Groovy not only for its Dynamic features but also can be used as functional language. If you know a Haskell language a powerful functional language which has a Curry method. This is offered in Groovy by curry method.

If you wish to read Groovy then you can look into:

1)Groovy In Action

2)Pleac/Groovy

And also look into this GroovyDoc

As Ralf mentioned in his comments: "If you code in Groovy then, it could even be that you don't want to program java anymore..."

share|improve this answer

Since you have a background in Java - why not consider learning Jython? Its python built on the JVM so you can get some scripting experience without tossing your knowledge of various Java classes?

share|improve this answer
There is some advantage of Jython, but it tends to lag behind Python. I'd recommend just using Python, unless there is particular classes that you need. Python's libraries are extensive, accessible, and well documented, so you won't be left stranded. – Eric Wilson Aug 4 '11 at 18:51

Learn the three languages. If your purpose is learning new things, don't limit to only one language.

You have java background, so groovy is a good language for you. Remember don't mix java and groovy in the code. Learn the "groovy way" and only use this.

In the future, learn ruby and python. Learn new languages never is a bad thing. You will be more open minded.

share|improve this answer

I would recommend Ruby or Python since you have a Java background. Groovy can allow you to lean on your Java habits, and slow your exposure to a more dynamic way of thinking.

I have over six months professional experience in Groovy, and there is a lot to recommend the language. But it is ultimately a compromise, designed to include some of the nice features of Ruby and Python, but with the constraining goal of Java compatability.

Also, the documentation is not nearly as good as Python, also probably not as good as Ruby, and the community support is not nearly what you will have in either Python or Ruby.

The only advantage of using Groovy is that it will allow you to continue to be productive today, as you can essentially write Java whenever you aren't sure what to do. But if your primary goal is learning, choose either Ruby or Python. (Base your decision on which of these languages appeals more to you philosophically.)

share|improve this answer
Even Groovy has a great community :D – Ant's Aug 5 '11 at 16:51

Your Answer

 
or
required, but never shown
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.