Logo języka Groovy
Język Groovy:

  • jest językiem obiektowym.
  • jest językiem wysokiego poziomu i automatycznie zarządza pamięcią.
  • jest językiem JVM, a zatem jest kompilowany do kodu bajtowego, co umożliwia łatwe stosowanie wraz z językiem Java i innymi językami JVM, np klasa Groovy może rozszerzać klasę Java, implementować interfejsy Java, a obiekty Java mogą być używane w klasach Groovy.
  • jest językiem dynamicznym
  • jest również językiem skryptowym, co oznacza że można w nim pisać skrypty. Skrypty moga być wykorzystywane np. w FXML. Groovy ma własne Groovy Scripting API umożliwiające pełne wykorzystanie możliwości języka.
  • ma składnię podobną do języka Java, ale to podobieństwo jest mylące i w większości przypadków nie da się łatwo kodu Java przetłumaczyć na Groovy, a zwłaszcza odwrotnie. Groovy ma znacznie więcej słów kluczowych i znacznie więcej operatorów niż Java.
  • nie ma własnego systemu ‘okienek’. Do budowy interfejsów użytkownika można wykorzystać Swing i JavaFX.
  • może być używany do tworzenia aplikacji webowych. Servlet napisany w Groovy nosi nazwę groovlet.
  • jest stale rozwijany.
  • ma rozbudowany ekosystem: Grails, Gradle, Spock, GPars, Ratpack, Griffon, geb, SDKMAN!, BeakerX, Micronaut, Infrastructor i inne.
  • jest obsługiwany przez liczne IDE i edytory.
  • teoretycznie jest łatwy do nauczenia, szczególnie dla programistów Java. W praktyce programista Java uczący się Grovy często zastanawia się, czy to co chce napisać można prościej napisać w Groovy czy nie.

Groovy obsługuje:

  • domknięcia
  • przeciążanie operatorów
  • opcjonalne typowanie i wnioskowanie o typie
  • statyczne typowanie i statyczną kompilację
  • programowanie funkcyjne
  • DSL
  • metaprogramowanie (w czasie kompilacji i podczas uruchomienia)
  • przepytywanie kolekcji w stylu SQL

Groovy ma wiele ułatwień w zakresie między innymi:

  • testowania kodu
  • obsługi kolekcji
  • obsługi wyrażeń regularnych
  • pracy z JSON, XML, YAML, TOML, Ant, bazami danych