De echte ‘moeder van al die objectgeoriënteerde technieken’ is Simula ’67, en niet COM, meent Roelof Osinga. Deze taal inspireerde velen tot het schrijven van oo-talen, waaronder Java.
In zijn artikel ‘Vooronderstellingen’ (Computable, 19 februari, pag. 51) reageert Egbert Nierop op een column van Martin Healey. Hij gaat mij in zijn stellingname toch even te ver, met name wanneer hij stelt dat COM de moeder zou zijn van ‘al die objectgeoriënteerde technieken in een bijna willekeurige programmeertaal’. Zelfs als met die bijna willekeurige programmeertaal Basic bedoeld wordt, is dit onjuist.
De moeder van oo moet toch echt Simula ’67 moeten zijn. Het was deze taal die het Xerox Parc-team inspireerde tot het bouwen van Smalltalk ’72, en Bjarne Stroustrup tot het schrijven van C++ (de naam dateert uit de zomer ’83). En het leidde tot nog wat andere oo-talen in die jaren. Zelfs Java dankt haar bestaan indirect aan Simula ’67. Het OLE-verhaal is, zoals vele MS-verhalen, niet een eenduidige. OLE werd bij Windows 3.0 geïntroduceerd, maar vrijwel totaal herzien bij Windows 3.1. OLE staat, zoals we allen weten, voor Object Linking and Embedding. Het begrip COM kwam pas tot zijn recht met de introductie van de OCX, iets dat noodzakelijk werd bij de overgang naar 32 bits. De VBX-structuur was immers niet geschikt voor 32 bits, althans volgens Microsoft. Borland zag dat anders en heeft wel degelijk 32 bits VBX’en ondersteund. In die tijd was er ook IBM’s OS/2 2.x met zijn SOM, dat later onderdeel is geworden van de Unix-Corba. In tegenstelling tot OLE, een componentsysteem, was SOM een oo-systeem dat zelfs ‘multiple inheritance’ ondersteunde.
Tegengas
Om tegengas aan Corba en met name SOM te geven, werd COM naar voren geschoven. Dat COM ‘single inheritance’ was, werd niet als een probleem beschouwd. Vervolgens kwam IBM met Dsom en kondigde MS Dcom aan. Tenslotte verdween OS/2 grotendeels van het strijdtoneel en kwam Internet in opmars. Dus werd ‘The Road Ahead’ aangepast met een Service Pack waarin Internet ook voorkwam en werd OCX tot Activex omgedoopt.
Ook werd gesteld dat Dcom – ofwel OLE Network – een protocol is. Dat is het niet in die zin. Dcom gebruikt gewoon rpc (‘remote procedure call’) in de DCE-standaard (de meeste Unix systemen gebruikten ONC). Overigens gebruikt OLE ook voor lokale processen (Lightweight) rpc waardoor Dcom transparant wordt. Indien nodig, moet er immers zogenaamde ‘marshalling code’ geschreven worden. Lokaal of op afstand, dat maakt niet uit. Desalniettemin laat Dcom al het netwerkverkeer over aan de DCE-routines.
Ik wil hiermee overigens niet zeggen dat de heer Healey het altijd bij het rechte eind heeft.
Roelof Osinga, Leeuwarden
idd!!!, met je domme tegengas