Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

Software-ontwikkelen met declaratieve technieken

Computable Expert

dr. Nico Verwer
consulting software architect / data scientist, Rakensi. Expert van Computable voor de topics Datamanagement, Development en Internet.

In Amsterdam vindt op 8 en 9 oktober de conferentie Declarative Amsterdam plaats. Sprekers zullen presentaties geven over opgedane ervaringen, trends en het toekomstperspectief op gebieden als functioneel programmeren, declaratief modelleren, databases, xml en afgeleide talen, zoals json, css, data-visualisatie, formele grammatica’s, parseren en domein-specifieke talen.

In de begintijd van computers werden computers geleverd inclusief een team van programmeurs. De prijs was gebaseerd op die van de hardware. Tegenwoordig is dat omgekeerd; het ontwikkelen van software kost veel tijd, geld en mankracht, en levert ook nog eens vaak totaal mislukte projecten op.

Niet hoe maar wat

"Computer bepaalt hoe het resultaat het beste bereikt kan worden"

Met declaratief programmeren beschrijft de softwareontwikkelaar niet 'hoe' een programma iets moet doen, maar 'wat' het programma moet doen. De computer bepaalt vervolgens hoe dit resultaat is te bereiken. Dit principe wordt al op diverse deelgebieden van de informatica gebruikt, waaronder user interfaces en databases. Een simpel voorbeeld is de sql-query

SELECT * FROM Users WHERE Country=’NL’

Om een sql-query uit te voeren zal een sql-processor de query analyseren, waar mogelijk optimaliseren (bijvoorbeeld door de volgorde van operaties te veranderen), en bepalen welke indexen gebruikt kunnen worden. Deze code die de computer ‘onder water’ uitvoert is veel complexer dan de oorspronkelijke query, en zou voor een menselijke programmeur veel meer tijd gekost hebben om te schrijven en te debuggen.

Een ander voorbeeld is 'two-way data binding' in user interfaces, zoals gebruikt in (onder andere) XForms, React en Vue. Dit mechanisme koppelt een (gestructureerd) data model aan user interface elementen, zonder te specificeren hoe deze koppeling precies tot stand komt. Andere aspecten van user interfaces, zoals afhankelijkheden tussen velden, zijn ook makkelijker vast te leggen op een declaratieve manier. In XForms kun je bijvoorbeeld met één regel code vastleggen dat een invoerveld zichtbaar of actief is, op basis van de inhoud van andere invoervelden. Denk aan het invullen van een 'state' als het land 'VS' is.

Reductie complexiteit

Waar declaratief programmeren is toegepast, heeft het geleid tot een reductie van de complexiteit van code,de omvang van teams en de doorlooptijd van projecten. Het basisidee is dat procedurele code (zoals gangbaar in bijvoorbeeld Java) wordt vervangen door een beschrijving van de relaties tussen de onderdelen van een systeem. De computer interpreteert en optimaliseert die beschrijving en implementeert daarmee het systeem. De omvang van declaratieve programmacode is veel kleiner, soms maar een kwart van procedurele code. Het resultaat is software die minder bugs bevat, sneller (en goedkoper) ontwikkeld is, en makkelijker te onderhouden is.

Declaratief programmeren is bekend binnen databases en user interfaces, maar is bruikbaar voor veel meer toepassingsgebieden. Het vereist wel een andere mind-set van softwareontwikkelaars, en wordt daarom nog maar weinig gebruikt. De conferentie Declarative Amsterdam wil bijdragen aan een betere bekendheid en waardering van declaratieve methoden in softwareontwikkeling.

x

Om te kunnen beoordelen moet u ingelogd zijn:

Dit artikel delen:

Uw reactie

LET OP: U bent niet ingelogd. U kunt als gast reageren maar dan wordt uw reactie pas zichtbaar na goedkeuring door de redactie. Om uw reactie direct geplaatst te krijgen moet u eerst rechtsboven inloggen of u registreren

Vul uw naam in
Vult u een geldig e-mailadres in
Vult u een reactie in
Jaarbeurs b.v. gaat zorgvuldig en veilig om met uw persoonsgegevens. Meer informatie over hoe we omgaan met je data lees je in het privacybeleid
Als u een reactie wilt plaatsen moet u akkoord gaan met de voorwaarden

Stuur dit artikel door

Uw naam ontbreekt
Uw e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×
article 2020-06-19T13:40:00.000Z Nico Verwer
Wilt u dagelijks op de hoogte worden gehouden van het laatste ict-nieuws, achtergronden en opinie?
Abonneer uzelf op onze gratis nieuwsbrief.