Na začátek jeden vtip.

Špatní fotografové se baví o objektivech, dobří o fotografiích a ti slavní o ženských.

Dalo by se to vztáhnout i na programátory, že ti špatní se baví o programovacích jazycích. Největším dnešním úskalím softwarového inženýrství rozhodně není zdrojový kód, přesto věnuji tento příspěvek jazyku Groovy. Java mě živí, ale Groovy mě baví víc, je to příjemné zpestření. Dočetl jsem druhé vydání knihy Groovy in Action (čekali jsme na druhé vydání této bible dlouhých 6 let). Udělal jsem si pár poznámek, které by se mohly hodit i vám, ať už s Groovy začínáte nebo ho už nějakou chvilku používáte.

Groovy je stále aktuální i přesto, že už vyšla Java 8. Používám Groovy v Gradle, na mockování webových služeb v Soap UI a nejčastěji při psaní testů. Napíšu tak mnohem méně kódu. A není to cvičení pro cvičení, ale znamená to menší pravděpodobnost, že uděláte chybu, a méně kódu na čtení. Přičemž netrpí čitelnost, ba právě naopak. Jako příklad uveďme inicializaci objektů či práci s kolekcemi.

Dynamický jazyk

Trocha teorie nikoho nezabije, malé opakování spíše prospěje všem. Groovy je dynamický jazyk, ale co to znamená? Připomeňme si, že typování můžeme dělit na slabé a silné, či statické (typ proměnných se specifikuje v době kompilace) a dynamické. Silně a staticky je typovaná třeba Java. Slabě a dynamicky například JavaScript (piš, co chceš). Oproti tomu jazyk C je sice staticky typovaný, takže vás kompilátor klepne přes prsty, pokud byste chtěli používat API, které typu nepřísluší, ale na druhou stranu už vás nic neomezuje v tom, přetypovat proměnnou na úplně jiný typ. Dynamický jazyk neznamená slabě typovaný, jak si možná mnozí myslí. Groovy je dynamicky a přesto silně typovaný jazyk. Kompilátor vám tedy ledacos dovolí, ale běhové prostředí vás případně zastaví.

Z knihy jsem si vypůjčil příklad, jak jsou v Groovy a v Javě dispatchované metody (hrozný termín, ale překlad nemám).