Generatoren gaan een steeds grotere rol spelen bij het beheren van it-systemen, betoogt Sjaak Wijnen in zijn reactie op ‘Een andere manier van software ontwikkelen’ van Rob Ronda (Computable, 14 maart, pagina 25) en ‘Aandacht voor programmagenerator’ van Guus van der Meulen (Computable, 2 mei 2003, pagina 35).
In zijn reactie op Ronda gaat Van der Meulen in op het gebruik van programmageneratoren. Hij geeft aan dat het van belang is om, voordat het schrijven van een generator gestart wordt, te kijken of het schrijven tijdwinst oplevert. Dit is inderdaad een pragmatische benadering.
Zijn benadering belicht ook nog een tweede punt: het is van belang dat een representatief voorbeeld gemaakt wordt voordat hiervoor een generator geschreven wordt. Als deze valkuil overgeslagen wordt, zal een generator geen goede, in de praktijk bruikbare programma’s opleveren.
Interpreteren
Van der Meulen gaat ook in op het wel of niet gebruiken van een 3gl of 4gl (derde-/vierde-generatie taal) en geeft terecht aan dat het schrijven van een devicedriver sneller in een 3gl mogelijk is. Vervolgens gaat hij in op hoe generatoren te bouwen zouden zijn en concludeert hij dat hij geen 4gl-generator kent om generatoren mee te bouwen.
Een aantal jaren geleden ben ik tegen hetzelfde probleem aangelopen. Tijdens de uitvoering van een dissertatie in het kader van de Open Systeem Theorie (P.J. Hettema: Personality and Adaptation) heb ik destijds een interpretor ontwikkeld om substituties die mensen maken te kunnen implementeren. De taal moest intuïtief zijn en in één á twee uur een stuk gestructureerde tekst (zoals een programma) kunnen genereren.
Uiteindelijk bleek dat met een 3gl een template-gebaseerde 4gl-generator te bouwen was. Met dit instrument was het bouwen van een generator gelijk geworden aan het maken van een te interpreteren script. Bij deze benadering bleef het van belang eerst een representatief voorbeeld te maken. Daarna was het maken van een generator voor dit voorbeeld in een paar uur te verwezenlijken.
Robot-besturing
Een anekdote uit die tijd betreft robot-besturing. Ik was destijds bij een grote farmaceut bezig met onderhoudswerkzaamheden. In die tijd kwam Corba-technologie net op. Hiermee konden onder andere databases, draaiend onder verschillende besturingssystemen op verschillende hardware met elkaar verbonden worden. Er bleek op dat moment vertraging in een 3-tier implementatie van een bepaalde leverancier te ontstaan. Het bleek toen vrij eenvoudig om een generator te bouwen om de database-inserts te genereren. Het aardige was dat we alleen wisten dat het systeem zou gaan draaien als de inserts in de database zouden staan. Op het moment dat we de eerste test deden, waarbij de records in de database kwamen, gingen we kijken bij het systeem en bleek de robot al volop orders aan het picken te zijn.
Een tweede praktijkvoorbeeld betreft webbouw Laatst had een kennis van me problemen met het onderhouden van zijn website. Hoewel hij zijn site wel op een gestructureerde manier opgebouwd had, bleek hij steeds meer problemen te krijgen met het onderhouden van het geheel, omdat het aantal bestanden al snel tot niet onderhoudbare situaties leidde. De site bleek na enige analyse om te zetten naar een bestandenboom, die voor zowel de bouw als de distributie aangestuurd kon worden door een aantal templates. Op dit moment kan de site vernieuwd worden door een bouwslag van enkele seconden en vervolgens een distributieslag van enkele seconden (zie http://www.bedrijveninbedrijf.nl/).
Het is dus zeer wel mogelijk om een generator te gebruiken. Een generator zal in de toekomst als voortrap gebruikt worden van een compiler– of make-slag. Hij zal een steeds belangrijker plaats in gaan nemen bij het beheren van it-systemen, zeker omdat steeds terugkerende situaties zich bij uitstek lenen voor generering. < BR>
Sjaak Wijnen