ActiveX en Java

Marc van Oostendorp

Marc van Oostendorp

Dit artikel is in druk verschenen in Multimedia Computing Magazine, augustus 1996.

Rond de jaarwisseling was Microsoft opeens om. Tot die tijd had men zich bij de software-gigant meestal een beetje laatdunkend uitgelaten over het Internet. Aparte on-line diensten, zoals het eigen MicroSoft Network (MSN), werden veel interessanter gevonden. Maar MSN werd op zijn zachtst gezegd niet zo'n groot succes terwijl de rage rond het Internet almaar grotere vormen aannam. Kleine, door studenten opgezette bedrijfjes als Netscape kwamen uit het niets op en bouwden binnen korte tijd een ontzagwekkend marktaandeel op in deze nieuwe markt.

Dit kon Microsoft zich niet langer veroorloven. Het bedrijf besloot zijn strategie volledig om te gooien en zich te concentreren op het Internet. MSN werd van een aparte on-linedienst omgezet in een gewone Web-site, er werden andere initiatieven op het gebied van informatiediensten gestart -- zoals het elektronische opinieblad Slate. Maar belangrijker dan dit alles is dat het bedrijf zich nu alweer bijna een jaar toelegt op de markt waar het groot in is geworden: software.

Het Microsoft-programma Internet Explorer (of Internet Verkenner, zoals de Nederlandse versie heet) kan tegenwoordig vrijwel alles wat Netscape Navigator, het bladerprogramma van de directe concurrent ook kan, en vaak nog meer. De beide bedrijven concurreren om het hardst waar het gaat om de nieuwste snufjes van Web-ontwerp en het inbouwen van programmamodules van derde bedrijven die het mogelijk moeten maken pagina's te bekijken die zich weinig gelegen laten liggen aan de HTML-standaard. Macromedia's Shockwave waarmee Director-filmpjes in een Web-pagina kunnen worden opgenomen worden in de nieuwste versies van allebei de programma's bijvoorbeeld standaard ingebouwd.

Ook zijn in de nieuwe Internet Verkenner mogelijkheden opgenomen om pagina's te bekijken waarin wordt gewerkt met ŽŽn van de programmeertalen Java en JavaScript die tot niet al te lang geleden werden gezien als de sterkste troeven in de handen van de anti-Microsoftbeweging. Beide talen zijn platform-onafhankelijk, wat wil zeggen dat een stuk software dat in deze talen ontwikkeld is op alle soorten computers kan draaien -- zowel op een Apple Macintosh als op een Windows-computer dus, en bovendien ook nog eens op een UNIX-machine. Deze ontwikkeling zou de software-wereld eindelijk veel onafhankelijker maken van de grillen van Microsofts Windows.

Maar ook op dit gebied heeft Microsoft een aggressieve strategie ingezet die op twee fronten tegelijkertijd werkt. Enerzijds wordt Java niet alleen ingebouwd in de Internet Verkenner maar zelfs in de nieuwste versies van het besturingssysteem Windows 95 (versies 2.0 en 3.0) en wordt op deze manier elk mogelijk argument om van Windows af te stappen ten gunste van een op Java gebaseerd systeem. Tegelijkertijd komt Microsoft met een systeem dat op zijn minst gedeeltelijk als een alternatief voor Java en JavaScript moet worden gezien; maar dan wel een alternatief dat exclusief onder Windows 95 draait.

ActiveX is gebaseerd op Microsofts OLE-techniek. OLE (Object Linking and Embedding) is van oudsher de techniek waardoor verschillende programma's in een Windows-omgeving met elkaar kunnen communiceren; de techniek die het mogelijk maakt dat u bijvoorbeeld gegevens uit een database-programma kopieert naar uw tekstverwerker en die het mogelijk maakt dat u vanuit die tekstverwerker vervolgens het elektronische-postprogramma start.

ActiveX breidt deze samenwerking van Windows-programma's uit naar het Internet. Een ActiveX component kan met een Web-pagina over het Internet worden verstuurd en vervolgens op het lokale systeem samenwerken met andere Windows-programma's. Zo kunnen bijvoorbeeld in Word aangemaakte documenten worden opgenomen in een Web-pagina en kan de gebruiker deze documenten vervolgens zelfs bewerken in zijn Web-browser. Een ander voorbeeld is dat een Web-pagina wordt gekoppeld aan een nieuwsdienst zodat de gebruiker op elk moment dat hij een pagina opvraagt de meest actuele informatie krijgt gepresenteerd. Maar ook animaties of interactieve applicaties kunnen in een ActiveX component worden verwerkt en dus via het Internet worden verstuurd.

De verhouding tussen Java en ActiveX is tamelijk ingewikkeld. Aan de ene kant kunnen met behulp van de juiste ActiveX-component Java-modules worden aangeroepen door elk willekeurig Windows-programma. Aan de andere kant kunnen als het goed is in de nabije toekomst nieuwe ActiveX-componenten in Java worden ontwikkeld. Los van dat alles staat dan nog dat men bij Microsoft ook mogelijk houdt met de mogelijkheid dat Java nauwelijks een rol van betekenis gaat spelen -- dat de meeste ActiveX-componenten zullen werken zonder ooit enioge Java-module aan te roepen en dat Microsofts eigen Visual C++ de voornaamste ontwikkeltaal zal blijven.

JavaScript is een enorm populaire, iets vereenvoudigde, door Netscape ontwikkelde variant van Java die grote populariteit onder Web-ontwikkelaars geniet. Het is erg eenvoudig om in deze taal extraatjes aan een Web-pagina toe te voegen, zoals lichtkranten, dialoogvensters en dergelijke. Bovendien zijn met JavaScript zogenaamde cookies te benaderen, bestandjes op de harde schijf van de gebruiker waarin elke Web-site een kleine hoeveelheid gegevens kan opslaan. Zo kan een site over meerdere sessies onthouden wat de interesses van de gebruiker zijn en hoe regelmatig hij de site bezoekt.

Ook hier is Microsofts strategie: tegelijkertijd meegaan en een alternatief bieden. Sinds versie 3.0 kan ook de Internet Verkenner modules in JavaScript lezen en komen er waarschijnlijk ook losse ActiveX-modules die het mogelijk maken om in andere Windows-programma's met deze programmeertaal te werken. Tegelijkertijd komt Microsoft met VBScript, een taal die gebaseerd is op MicrosoftsVisual Basic.

De verschillen tussen Visual Basic en VBScript is vooral gelegen in de beveiliging. Omdat de laatste taal bedoeld is voor verzending via het Internet, zijn er een aantal mogelijkheden uit de eerste taal verwijderd, zodat het in principe niet langer mogelijk is om bijvoorbeeld virussen te schrijven, of programma's die gegevens van de harde schijf wissen.

Er zijn twee grote problemen met de eigen produkten van Microsoft. Ten eerste is ze wel erg sterk gericht op slechts én platform: Windows 95. Een van de redenen voor het grote succes van het Internet was nu juist de platform-onafhankelijkheid. Ook het betrekkelijk recente succes van intranets -- interne netwerken die gebaseerd zijn op Internet-technologie -- moet gedeeltelijk verklaard worden uit het feit dat op een dergelijk netwerk gemakkelijk een groot aantal verschillende systemen kunnen worden aangesloten. Op ActiveX-gebaseerde systemen zijn wat dat betreft weer een stapje terug.

Het tweede probleem is zo mogelijk nog serieuzer. Veel kenners wijzen op de gaten die er in de beveilgingsstructuur van zowel ActiveX als VBScript te vinden zijn. Deze gaten hebben te maken met het feit dat Microsofts strategie op OLE gebaseerd is. Deze technologie is ontwikkeld met een indivduele PC in het achterhoofd, hoogstens gekoppeld aan een bedrijfs-intern netwerk. Dat is een situatie waarin beveiliging geen hoge prioriteit heeft. Elke OLE-component heeft daarom in principe onbeperkte toegang tot alle middelen van de computer -- van het intern geheugen tot en met de harde schijf.

Nu hebben ActiveX-componenten en VBScripts zelf deze onbeperkte toegang niet, maar ze kunnen wel onbeperkt met andere OLE-componenten communiceren. Dat betekent dat ze andere Windows-programma's kunnen starten, die dan alsnog vervelend werk kunnen gaan doen. Niemand hoeft eraan te twijfelen dat virusschrijvers creatief genoeg zullen zijn om het destructieve potentieel van deze mogelijkheden ten volle uit te buiten.

Ook over de beveiliging van Java en JavaScript zijn wel negatieve berichten in de pers verschenen. Vervolgens zijn de ontdekte gaten echter weer meteen gedicht en bovendien lijken de problemen niet echt principieel te zijn -- eerder gelegen in de een overhaaste implementatie in sommige programma's. Het genoemde probleem met ActiveX en VBScript raakt echter de kern van deze twee systemen. Het is dan ook niet helemaal duidelijk hoe het opgelost kan worden.

Tegenover deze twee grote nadelen staan wel twee voordelen. Doordat Microsofts technieken sterk op één platform gericht zijn kun je als ontwerper wel technisch het onderste uit dat platform halen. Waar een ontwerper in Java en JavaScript altijd moet uitgaan van een soort grootste gemene deler van de verschillende systemen waarop zijn programma's moeten kunnen draaien, weet een ontwerper van ActiveX-component vrij precies voor wat voor een soort computer hij werkt en kan hij zich daar dus geheel op richten.

Een ander voordeel is dat ActiveX en VBScript gebaseerd zijn op de vertrouwde lijn van visuele programmeertalen van Microsoft. Veel programmeurs hebben ervaring met deze ontwikkelsystemen die bovendien zo'n vijftien jaar de tijd hebben gehad om ontwikkeld te worden. Het zal nog even duren voordat er voor Java en JavaScript instrumenten komen die wat betreft gebruiksgemak en uitgebreidheid de vergelijking met Visual Basic en Visual C++ kunnen doorstaan.

Microsoft veroorlooft zich de luxe op twee paarden tegelijkertijd te wedden: het eigen paard en dat van de naaste concurrent. Zo moet je bijna wel winnen. Welk van de twee paarden uiteindelijk als eerste zal eindigen, blijft echter onduidelijk. Technisch lijken Java en JavaScript op dit moment veelbelovender dan Microsofts alternatieven. Maar Microsoft heeft al vaker bewezen in staat te zijn technisch superieure concurrenten uit de markt te drukken.


Informatie over Java op de site van Sun.
Informatie over JavaScript op de site van Netscape.
Informatie over ActiveX op de site van Microsoft.