I have been using Java for a while and PHP recently. Some things I miss from Java is

  • Code completion suggestions from the IDE

  • Error detection before runtime

  • Find places where a method/function is called

While these seem like IDE features, from what I understand, it has to do with how the language is implemented. (because it is compiled at runtime? because it's not statically typed? I don't know the correct terminology).

What I want to know is does Groovy(or Groovy IDEs, preferably when used along with Grails) have those features(implemented as thoroughly as Java/Java IDEs)?

1 Answer 1


Groovy is a dynamic language, means every variable name is (unless it is null) bound only to an object. Names are bound to objects at execution time by means of assignment statements.

Java, is a statically typed language, means every variable name is bound both:

  • To a type (at compile time, by means of a data declaration)
  • To an object (optional, if it is not bound to an object, than the name is said to be null)

When using Java you can find syntax errors at compile time.

Related to your question:

Does Groovy(or Groovy IDEs, preferably when used along with Grails) have those features(implemented as thoroughly as Java/Java IDEs)?

The answer is no.

In my opinion, Groovy using Grails framework is a great and easy to use. The using of Groovy and Grails make a strong framework enables fast development and very friendly environment to the developer. I am sure there are some people who can argue with the last sentence I wrote, but this is my opinion as a developer who works with that framework and using groovy for a year.

If you wish to have a Strong typing language and the ability to check your code at compile time than Java is your answer (especially using Java 8 with its great new features such as Lambda and Java Stream Api).

Try to think what are you main features you would like to have in your IDE before you choose one. It can make your life much more enjoyable if you have a great echo system to work with.

  • Groovy isn't purely a dynamic language. It gives you the option to use static typing. Further more, a good ide (like IntelliJ) will pick up on these things when you use static typing.
    – RubberDuck
    Commented Apr 4, 2017 at 2:11
  • I did not write that Groovy is a purely dynamic language. I think that you have a confusion between Dynamic language and static typing. I encourage you to read the following links which supports my answer. 1) Groovy page: groovy-lang.org 2) Difference between static typing and dynamic language stackoverflow.com/questions/1517582/…, pythonconquerstheuniverse.wordpress.com/2009/10/03/…
    – rotemy
    Commented Apr 4, 2017 at 6:47
  • Point is, static typing is all that's required to do the things OP wants to do.
    – RubberDuck
    Commented Apr 4, 2017 at 9:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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