shutterstock_111996743

Het begint met een… G. Niet eens met een J. Groovy is de volgende programmeertaal waarover ik het wil hebben. Even ter herinnering: ik ben op zoek naar een taal waarin je kunt leren programmeren. Waarbij je alleen maar hoeft na te denken over de essentie daarvan en niet over nutteloze details. Eerder nam ik Quorum onder de loep.

Groovy is een versimpelde versie van Java. Het maakt gebruik van dezelfde infrastructuur als Java en is 100% te mengen met oude of toekomstige Java-code. Dat is een pluspunt als je al hebt geïnvesteerd in Java. Net als voorheen definiëren we object-types in de vorm van classes, die beschrijven wat objecten van dat type hebben en kunnen.

De beste manier om Groovy te introduceren is een stukje code te laten zien. Het is de Groovy-versie van ons “good old” GUI-project, waarvan je hier de pseudo-code kunt lezen. In Groovy:

GUI.groovy

Herken je de structuur inmiddels? Accolades geven het begin en einde van een class of van een functie aan. Wat prettig is in Groovy is dat je meerdere object-types in één file mag zetten, samen met de code waarmee je de objecten maakt. Voor kleine projecten is dat overzichtelijker. Voor grotere projecten mag je natuurlijk ook werken met meerdere files. Je ziet hierboven dus dat onze drie object-typen (Knop, Luisteraar en Gebeurtenis) worden gedefinieerd. Daarna worden er een Knop-object en een Luisteraar-object gemaakt, die vervolgens aan elkaar worden gekoppeld (de luisteraar wordt geregistreerd bij de knop). En tot slot wordt de knop aangeraakt.

Een essentieel verschil tussen Groovy en Java is dat Groovy de details die altijd hetzelfde zijn voor je invult. De Gebeurtenis bijvoorbeeld heeft een oorzaak, en moet in andere talen functies hebben waarmee je die oorzaak invult (zetOorzaak in Java of Quorum in het vorige artikel) en uitleest (vraagOorzaak). In Quorum, bijvoorbeeld, ziet de class Gebeurtenis er zo uit:

Gebeurtenis.quorum

Dat is veel uitgebreider, maar het zijn alleen maar conventies die van de essentie afleiden. Groovy weet dit en hanteert ze automatisch. Alleen de essentie moet worden genoemd: een Gebeurtenis heeft een oorzaak. De Groovy-code zit daardoor dichter bij de pseudo-code, waarin dat soort details ook worden weggelaten. Puntje voor Groovy.

Ben ik nu tevreden? Nooit. Ik ben wel een fan van Groovy, maar ik denk dat niet al mijn lezers nu roepen: “o ja, nu wordt het echt simpel”. Misschien kan dat wel niet. Misschien is er geen taal die dat mogelijk maakt. Misschien moeten we woorden wel vervangen door beelden. Daar ga ik eens over nadenken, terwijl ik een stukje ga fietsen.

Advertenties