Computable.nl
  • Thema’s
    • Carrière
    • Innovatie & Transformatie
    • Cloud & Infrastructuur
    • Data & AI
    • Governance & Privacy
    • Security & Awareness
    • Software & Development
    • Werkplek & Beheer
  • Sectoren
    • Channel
    • Financiële dienstverlening
    • Logistiek
    • Onderwijs
    • Overheid
    • Zorg
  • Awards
    • Computable Awards
    • Nieuws
    • Winnaars
    • Partner worden
    • Inzending indienen
    • Inzendingen
  • Vacatures
    • Vacatures bekijken
    • Vacatures plaatsen
  • Bedrijven
    • Profielen
    • Producten & Diensten
  • Kennisbank
  • Magazine
    • Magazine
    • Adverteren in het magazine
  • Nieuwsbrief

Farao Echnaton en object-oriëntatie

31 mei 2001 - 22:006 minuten leestijdOpinieData & AI
Wen Hu
Wen Hu

Echnaton zal wel gedacht hebben ‘OOPs!’ toen alles na zijn dood werd teruggedraaid. Men probeerde zelfs die hele periode ongedaan te maken door onder andere zijn naam overal uit weg te bikken! (Ben ik de enige die hier een parallel ziet met Java, Microsoft en C#?) OOP staat normaliter voor Object-Oriented Programming, maar in dit geval, vindt Wen Hu, zou je misschien ook kunnen spreken van een (ogenschijnlijke?) Object-Oriëntatie-Paradox.

Om te beginnen ben ik het bijvoorbeeld niet eens met de stellingen van Rick van de Lans in zijn column ‘Object-oriëntatie en farao Echnaton’ (Computable, 11 mei), maar moet ik zijn vragen wel instemmend beantwoorden.
Van der Lans stelt in de vorm van vragen het volgende:
1) object-oriëntatie is te complex voor de gemiddelde programmeur;
2) leidt tot zeer lastig te onderhouden software;
3) het wordt niets met object-oriëntatie.
Volgens mij zijn oo-concepten inderdaad lastiger onder de knie te krijgen dan bij de traditionele rechttoe-rechtaan procedurele benadering. Echter, de gemiddelde programmeur van nu is heel goed mogelijk de bovengemiddelde programmeur van morgen! Het objectgeoriënteerde leerproces duurt langer dan om traditioneel programmeren aan te leren. Per slot van rekening maakt het leren programmeren slechts een klein deel uit van het gehele currriculum.
De grote ophef rondom .Net Visual Basic is overigens voornamelijk het gevolg van de aankondiging dat het niet compatibel zal zijn met de oudere VB versies. Als alle nieuwe extensies de bestaande programmatuur intact hadden gelaten, was er geen vuiltje aan de lucht geweest.

Manke programmeurs

De tweede vraag moet ik ook al met ja beantwoorden! Als programmeurs concepten en gereedschappen toepassen die hun begrip te boven gaan, dan schieten zij zich vanzelf in de voet, het project loopt daarna mank, de programmeurs schieten zich vervolgens in hun andere voet, en het project valt om. Inderdaad erg lastig. Mijns inziens is de stelling achter de vraag daarentegen geheel incorrect! Mijn tegen-argumentatie is als volgt.
Object-oriëntatie leidt niet tot zeer lastig te onderhouden software, want oo leidt tot beter te onderhouden software!
Je reinste paradox, niet? Soms wordt er mij een oplossing voor een probleem gevraagd door een collega. En als ik dan terloops eerst opmerk, dat de oplossing heel simpel is, wordt soms ad rem gereageerd met de opmerking "Ja! Het is simpel als je het weet!", maar ook met "Nee! Het is juist moeilijk, anders had ik het zelf wel geweten!" Aldus paradoxaal, maar waar!
Een van de belangrijkste doelstellingen van oo is ‘continuïteit’ of ‘naadloosheid’ in de overgang van het probleemdomein naar de programmatuur die een oplossing biedt. Als Van der Lans ervaren heeft dat de toepassing van oo tot onoverzichtelijke relaties heeft geleid, dan is er misschien ook een plausibele(re) verklaring te vinden in de wijze waarop oo is toegepast, of beter gezegd, de pogingen daartoe. Deze laatste opmerking is niet denigrerend bedoeld. Ik wil hiermee alleen benadrukken dat het resultaat van elke onderneming niet alleen afhankelijk is van het gereedschap, maar ook van de hanteerders.
Bovenstaande beschuldiging is natuurlijk makkelijk gemaakt. Gewoon beweren dat het niet goed is uitgevoerd. Of dat zo is weet ik natuurlijk niet, maar de voorbeelden van Van der Lans zijn in ieder geval niet steekhoudend.

Herbruikbare code

Herbruikbaarheid van code door overerving is niet de essentie van Oop. Als het dat was, wat is dan nog het feitelijke verschil met de traditionele code-bibliotheken? In Java en C# is het bijvoorbeeld mogelijk om een zogenaamde ‘interface’ te definiëren, en deze bevat geheel geen code! De essentie van een interface is het programmeren per contract. Voor Oop is dit belangrijker dan overerving van de implementatiecode.
Het programmeren per contract is juist bedoeld om relaties en afhankelijkheden expliciet te maken. Elke klasse-implementatie die zich gebonden heeft aan een dergelijk contract, mag hier nimmer van afwijken. Dit geeft de programmeur duidelijkheid en zekerheid. De suggestie dat met
Oop het aantal onderlinge afhankelijkheden juist groter wordt, is een beetje flauw. Ik zou zelf willen stellen dat elke (vermeende) oo-implementatie die er niet in slaagt om adequaat rekening te houden met alle historische verworvenheden van de software ontwikkelingsdiscipline (information hiding, low coupling, high cohesion, structured programming, abstracte datatypes, enzovoort), simpelweg geen object-oriëntatie is! En tevens ook in een traditionele context niet door de beugel kan!
Oop levert daarnaast niet per se meer compacte code op. Met talen als Visual Basic, Pascal of C (bijvoorbeeld X-windows) kan men in principe ook oo-concepten toepassen. En ‘overriding’ is essentiëler dan ‘overloading’.

Gezond verstand

Het laatste voorbeeld is die van het ontbreken van complexiteit in klassieke administratieve systemen. Zeker zal in een oo-project meer de nadruk liggen op een gedegen voorbereiding. Maar het gaat evenzogoed om het gebruik van gezond verstand. De uitdaging is hier niet zozeer de toegepaste methodiek of techniek, maar eerder het correct inschatten van een project, de juiste afwegingen maken en zelfdiscipline tonen (want je hebt in principe geen oo nodig om jezelf en anderen in de voeten te schieten). Als er onverhoopt toch een verkeerde keuze is gemaakt, ‘Het zij zo’. Door schade en schande (‘hoe het niet moet’, ‘anti-patterns’) word je ook wijzer.
Ook de derde vraag kan ik met ja beantwoorden. Misschien zitten wij inderdaad in een Echnatonse periode, een doodlopende straat. Maar wat betekent dat nu eigenlijk? Tegenwoordig komt monotheïsme het meest voor; had Echnaton dan toch meer gelijk?
Die doodlopende straat is dat niet te vergelijken met de huidige ‘state of the art’ en alle ontwikkelingen die daaraan zijn voorafgegaan? We maken immers vooruitgang door met horten en stoten de ene na de andere barrière te slechten.
‘Gemiddelde’ programmeurs moeten niet al hun kruit verschieten door objectgeoriënteerde concepten te negeren, laat staan vermijden. Wees alleen een beetje terughoudend en schiet niet met een kanon op een mug!
 

Wen Hu Delft
Het boek ‘Design Patterns’ van Gamma et al. is een echte aanrader voor de willekeurige programmeur die geïnteresseerd is in Oop. Alleen al de inleiding van het boek slaagt er uitstekend in om de waarde en het praktisch nut van objectgeoriënteerde concepten duidelijk te maken.

Meer over

ECMJava

Deel

    Inschrijven nieuwsbrief Computable

    Door te klikken op inschrijven geef je toestemming aan Jaarbeurs B.V. om je naam en e-mailadres te verwerken voor het verzenden van een of meer mailings namens Computable. Je kunt je toestemming te allen tijde intrekken via de af­meld­func­tie in de nieuwsbrief.
    Wil je weten hoe Jaarbeurs B.V. omgaat met jouw per­soons­ge­ge­vens? Klik dan hier voor ons privacy statement.

    Whitepapers

    Computable.nl

    Geïntegreerde ICT in de zorg

    Hoe samenhang in IT bijdraagt aan continuïteit en veiligheid

    Computable.nl

    Agentic AI in de praktijk

    Hoe autonome AI werkprocessen fundamenteel verandert

    Computable.nl

    Ontdek hoe je de kracht van private cloud kunt ontgrendelen

    De toekomst van serverbeheer. Nieuwe eisen aan prestaties en beveiliging.

    Geef een reactie Reactie annuleren

    Je moet ingelogd zijn op om een reactie te plaatsen.

    Awards-inzendingen

    Pijl naar rechts icoon

    Prometheus Informatics B.V.

    Duurzamer, veiliger én voordeliger rijden bij Bouw Logistics Services (Bouw Logistics Services en Prometheus Informatics)
    Pijl naar rechts icoon

    Prometheus Informatics B.V.

    Sturen op duurzaamheidsdoelstellingen bij Rabelink Logistics (Rabelink Logistics en Prometheus Informatics)
    Pijl naar rechts icoon

    Hyperfox

    Vereenvoudiging besteloroces bij Duplast, specialist in voedselverpakkingen (Duplast en Hyperfox)
    Pijl naar rechts icoon

    Prodek Solutions BV

    Compleet pakket voor digitale aansturing duurzame energie bij Odura (Odura en Prodek Solutions)
    Pijl naar rechts icoon

    Norday

    AI-tool die hyper-gepersonaliseerde cultuurpodcasts maakt voor het Rotterdams Philharmonisch Orkest (Wondercast)
    Alle inzendingen
    Pijl naar rechts icoon

    Populaire berichten

    Meer artikelen

    Meer lezen

    Carrière

    Massa-ontslagen bij Meta en Microsoft als gevolg van ai

    Innovatie & Transformatie

    Europa blijft hangen in industrie-erfenis, digitalisering fabriek stokt

    Overheid

    Kort: Kabinet trekt stekker uit NDS-raad, breedbandmarkt groeit door (en meer)

    shutterstock_2726036819 Ivan Marc
    Data & AI

    Kort: EU-regeldruk leidt tot id-hub, Gartner verwacht groei wereldwijde it-bestedingen (en meer)

    Data & AI

    Tien toezichthouders bewaken naleving ai-verordening

    Innovatie & Transformatie

    Siemens presenteert autonome industriële ai-agent

    ...

    Footer

    Direct naar

    • Carrièretests
    • Kennisbank
    • Computable Awards
    • Magazine
    • Ontvang Computable e-Magazine
    • Cybersec e-Magazine
    • Topics
    • Phishing
    • Ransomware
    • NEN 7510

    Producten

    • Adverteren en meer…
    • Jouw Producten en Bedrijfsprofiel
    • Whitepapers & Leads
    • Vacatures & Employer Branding
    • Persberichten

    Contact

    • Colofon
    • Computable en de AVG
    • Service & contact
    • Inschrijven nieuwsbrief
    • Inlog

    Social

    • Facebook
    • X
    • LinkedIn
    • YouTube
    • Instagram
    © 2026 Jaarbeurs
    • Disclaimer
    • Gebruikersvoorwaarden
    • Privacy statement
    Computable.nl is een product van Jaarbeurs