Zalety 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