Your cart is currently empty!
Luchtkastelen?
Modelleren is het nieuwe programmeren. Het voegt abstractie toe en laat de computer de saaie details berekenen. Dat geeft lucht aan projecten, ruimte voor echt belangrijke zaken. De benodigde tools, zo is de belofte, zijn er bijna – maar we weten allemaal wat ’bijna‘ betekent in een softwareproject. Dat is overigens niet negatief bedoeld. Ik denk echt dat modelleren een belangrijke stap voorwaarts is. Ik heb echter ook geleerd dat de werkelijkheid ietsje complexer is dan de mooiste folders ons doen geloven.
Want hoe zit het bijvoorbeeld met systeemsoftware? Of met andere complexe hightechsoftware? Is het mogelijk om Linux-drivers te modelleren? Linux heeft de vervelende eigenschap dat de interface tussen driver en kernel regelmatig wordt geüpdatet. Dat geeft veel saaie detailveranderingen. Bovendien zijn er heel veel drivers die sterk op elkaar lijken. Daarmee hebben drivers veel weg van een productlijn: diverse producten die net anders zijn, maar vooral veel overeenkomsten vertonen. Met ’ouderwets‘ programmeren is dit altijd veel ontwikkel- en testwerk.
Modelleren belooft dit efficiënter te doen door eenmalig één model te maken, waaruit de code automatisch wordt gegenereerd. Het maken van zo‘n model lijkt mogelijk: zaken als hardware-eigenschappen (registers, interrupts, DMA en dergelijke), controle-informatie voor de dev-, proc- en sys-pseudobestandssystemen en gewenst gedrag zijn eenvoudig te beschrijven. Weliswaar moeten we de codegeneratie soms aanpassen voor een nieuwe kernelversie, maar dat is eenvoudig, aldus de folders. Zelfs als het meer werk is dan beloofd, zijn er veel meer drivers dan interfaceveranderingen. Het voordeel staat als een huis, nee, als een kasteel.