Development

Software-ontwikkeling
Idiot proof

Idiot-proof

Programmeren werd de laatste jaren steeds eenvoudiger – het summum is wat vandaag de dag Java heet, zegt Hans Bezemer.

4 juli 2018

Er was een tijd dat we een echte 'softwarecrisis' hadden. Hoewel het aantal computers in die tijd maar een fractie was van tegenwoordig, was er toch een grote behoefte aan mensen die zo’n ding konden programmeren.

Nou ging er natuurlijk een heleboel tijd verloren aan het vinden en verhelpen van bugs. Immers, toen werd er nog rechtstreeks op het 'harde ijzer' – oftewel de processor – geprogrammeerd. Machinetaal noemen we dat.

De meeste processors hebben maar een beperkt aantal variabelen, registers genaamd, die vaak een specifieke functie hebben, zodat je wel vijf kilometer van tevoren moet bedenken welke daarvan je moet vrijmaken om de volgende subroutine te kunnen programmeren. Ellende alom dus.

Een manager vindt het veel leuker als hij een kerel gewoon de deur uit kan gooien en vervangen door een willekeurig andere persoon.

Niet alleen de productiviteit moest omhoog, maar ook de afhankelijkheid van gespecialiseerd personeel. Immers, als je bedrijfsvoering afhangt van de kennis van een enkele kerel, heb je geen schijn van kans bij salarisonderhandelingen. Geen manager die dat leuk vindt. Die vindt het veel leuker als hij een kerel gewoon de deur uit kan gooien en vervangen door een willekeurig andere persoon.

Het uiteindelijke doel was natuurlijk om die ene goeroe in te wisselen voor tien mindere goden die maar een tiende van dat salaris mee naar huis nemen. Dus werd programmeren steeds eenvoudiger. Elke keer als er iemand de mist inging, werd er wel weer wat verzonnen.

Het summum daarvan is wat tegenwoordig Java heet – een taal zo beroerd, dat vrijwel geen enkele serieuze onderwijsinstelling ‘m meer in het curriculum op wil nemen. Er zijn namelijk zoveel dingen verboden in Java, dat het voor een programmeur bijna onmogelijk is geworden om dingen op een enigszins elegante manier voor elkaar te krijgen.

Maar gelukkig zijn de echte programmeurs niet verdwenen. Ze zijn nu zzp'er. Onder elkaar wordt er gegrinnikt: “Maak iets geschikt voor idioten en alleen idioten zullen het gebruiken”.

Dat zou ook weleens de reden kunnen zijn waarom Java zo populair is in het bedrijfsleven, met name bij zijinstromende IT-managers, die echt nog steeds geloven dat software goedkoper is als je het in India laat maken en niemand ooit ontslagen is voor het kiezen van een van de marktleiders.

In geval van nood kunnen ze nog altijd een goeroe inhuren. Voor tiendubbel tarief.

Reactie toevoegen
3
Reacties
Hans Bezemer 23 oktober 2019 14:00

Deze kon ik ook niet laten liggen (Dijkstra opnieuw): "Voor de wanhopige manager is het bijvoorbeeld een ontstellend geruststellende gedachte, dat de gebezigde programmeertaal de bron van al zijn ellende is. De stakker klampt zich vast aan de droom van de programmeertaal, waarin programmeren zo makkelijk is, dat het allemaal vanzelf goedkomt. De nieuwe programmeertalen als panacee gaan in de kwakzalverskraam over de toonbank als verse broodjes bij de bakker. In dit verband berucht is de IBM-advertentie in Datamation, 1968, waarin een stralende Susie Meyer —in kleuren!— verklaart, dat de bekering tot PL/I het einde van al haar programmeerproblemen was. Hoe de arme Susie Meyer er een paar jaar later uitzag, vermeldt de historie helaas niet, maar het laat zich raden, want het wondermiddel heeft natuurlijk niet gewerkt. Wie de propagandaliteratuur voor Ada —de programmeertaal, die door het Amerikaanse ministerie van defensie wordt gepousseerd— leest, moet constateren, dat de wereld in 14 jaar weinig is veranderd.".

Anoniem 23 oktober 2019 13:58

@Jochem
Helemaal mee eens - maar die nuance past niet in een column. Overigens haalt Edsger Dijkstra het probleem wat ik schets wel degelijk aan: "Overheerst bij wiskundigen eenmaal het gevoel dat computers niet de moeite waard zijn om je mee bezig te houden, dan werkt dat vervolgens als een z.g. "self-fulfilling prophecy": als de intellectueel het best geequipeerden het vak links laten liggen, wordt het gebied bezet door tweede- en derderangs mensen en na enige tijd kan de echt knappe jongen zich nog moeilijker voorstellen dat daar een taak voor hem ligt (..) Door met een groots opgezette campagne het wezenlijk wiskundige karakter van de hele gebruiksproblematiek onder tafel te praten, programmeren voor te stellen als iets dat iedereen in een drieweekse cursus kan leren, kortom door zo hardnekking te verklaren dat het goud der beloofde bergen massief is, dat genoeg mensen het geloven. In de jaren die daar op volgden is er voor het vak van programmeur volledig kritiekloos geronseld. Hier in den lande was MULO ruimschoots genoeg, maar in andere landen was het geen haar beter. Het resultaat laat zich denken: van de half-millioen professionele programmeurs, die de wereld inmiddels telt is het merendeel van een incompetentie die elke beschrijving tart. Maar hier ligt wel een verklaring van het taaie leven van de software crisis: een incompetent arbeidsleger van een half millioen ververs je niet een-twee-drie".

Later haalt Dijkstra in het artikel ook aan, waar hij de oplossing zoekt: onderwijs - geen "versimpeling" van het gereedschap. Getuige mijn column is het ook geen verrassing, dat ik het daarin met hem eens ben. ;-)

Jochem 05 juli 2018 12:21

> Niet alleen de productiviteit moest omhoog, maar ook de afhankelijkheid van gespecialiseerd personeel.

Waarschijnlijk wordt bedoeld dat de afhankelijkheid van gespecialiseerd personeel verlaagd moest worden (en niet verhoogd).

Overigens, "softwarecrisis" verwijst traditioneel niet naar een gebrek aan beschikbaar aanbod van programmeurs, maar naar een gebrek aan kwaliteit in/van het software-ontwikkelproces.

De NATO-conferentie waarop het bestaan van de softwarecrisis breed geaccepteerd werd (1968), "agreed that the increasing complexity of programming work associated with a new and more powerful generation of computers had overwhelmed the technical and managerial ability of software groups. Software was late, over budget, lacked features, worked inefficiently, and was unreliable. Something to be called 'software engineering' was proposed as the solution to the crisis." De oplossing werd dus niet gezocht in het vergroten van het aantal programmeurs, maar het verhogen van de kwaliteit van het programmeren (en het proces eromheen).