Een teleurstellend gegeven rond de huidige generatie ontwikkeltools is de onwil van Sun en Microsoft om op enig gebied samen te werken. Sun ondersteunt Windows-clients en Microsoft ondersteunt een Java Virtual Machine (JVM) in Internet Explorer, maar het is geen geheim dat dat beide partijen pijn doet.
Sun en Microsoft denken alleen aan hun eigenbelang en zijn zich beide bewust van het feit dat de andere partij een formidabele opponent is. Sun heeft Java ontwikkeld om het toenemende gebruik van web-browsers te ondersteunen. Daarbij was het duidelijk de bedoeling om PC’s door NC’s te vervangen. Tot Suns grote verdriet zorgde de introductie van een JVM in Windows ervoor dat gebruikers het NC-pad konden kiezen zonder hun PC’s door fysieke NC’s te vervangen; in plaats daarvan werd de PC als een virtuele NC gebruikt.
Microsoft probeert Unix uit de markt te drukken en NT uit te laten groeien tot het belangrijkste serverbesturingssysteem. Veel organisaties zijn zo naïef dat ze daar ook nog tijd en geld aan verspillen. De kans op herstel van de relatie tussen Microsoft en Sun is heel klein. We moeten ermee leren leven dat beide reuzen voortdurend met elkaar op de vuist gaan. Eerlijke concurrentie is op zich niet slecht, maar in de praktijk bestaat deze concurrentie uit het trucje om producten te ontwikkelen die oppervlakkig gezien gelijkwaardig zijn, maar genoeg toeters en bellen hebben om incompatibel te zijn.
Java mag dan als anti-Microsoft-maatregel door Sun ontwikkeld zijn, het is en blijft een zeer goede uitvinding. De manier waarop IBM ermee aan de slag is gegaan en goede tools, componenten en applicaties ontwikkelt, is zeer verfrissend.
IBM neemt de Java-standaard uiterst serieus en houdt effectief enig toezicht op de ontwikkeling ervan, al is het de hoogste tijd dat de standaard nu door Sun wordt overgedragen aan een door gebruikers gedomineerd orgaan.
Niet alleen IBM verovert marktaandeel met Java. Ook middleware-leveranciers profiteren ervan, met name leveranciers van applicatieservers als Progress, Silverstream en dergelijke. Merk op dat Java vooral als server-programmeertool grote successen boekt, en niet zozeer als tool om de gui van een browser te verbeteren, wat de oorspronkelijke bedoeling van Sun was.
De Application Server op basis van Enterprise Java Beans is een zeer aantrekkelijk idee. Ook al zijn de verschillende producten minder uitwisselbaar dan men had gehoopt, ze zijn toch compatibeler dan enig ander concept.
De ontwikkeling van de Application Server is slecht nieuws voor Microsoft, omdat deze servers niet afhankelijk zijn van een specifiek besturingssysteem. IBM levert zijn product, WebSphere, voor alle belangrijke besturingssystemen, inclusief NT en Linux. In contrast hiermee heeft Microsoft de gebruikelijke truc uitgehaald en de Application Server, Active Server Pages en dergelijke alleen voor NT uitgebracht. En de Microsoft-oplossing volgt niet de huidige industrietrend om alle kaarten op Java te zetten. Java wordt gepositioneerd als alternatieve programmeertaal in Microsofts Visual Studio, maar deze omgeving is niet compatibel met EJB en zal niet kunnen profiteren van het groeiende aantal EJB-componenten.
Wat Microsoft wel goed geregeld heeft, is de ontwikkelomgeving zelf, Visual Studio. Deze omgeving ondersteunt een groot aantal verschillende talen voor de ontwikkelaars van Windows-applicaties, een prima manier om ontwikkelaars zowel tevreden als gevangen te houden. Alleen IBM levert met VisualAge een beter product, dat echter is gericht op ontwikkelaars in grote bedrijven.
En nu ziet het er naar uit dat Microsoft zijn greep op de Windows-ontwikkelaars gaat versterken door een nieuwe programmeertaal te introduceren, C# (kennelijk uitgesproken als "C sharp").
C# moet concurreren met Java en mag, als het aan Microsoft ligt, Java geheel vervangen. Maar net als Java is C# een soort verbeterde versie van C++, met enkele welkome objectgeoriënteerde uitbreidingen. Net als Java is het een nieuwe taal, die geen last heeft van de noodzakelijke continuïteit met legacy-applicaties. De belangrijkste aanval is dat C# als programmeertaal voor Windows-omgevingen wordt gepositioneerd tegenover Java zelf, onder de voorwaarde dat de tekortkomingen van de Java-syntax en de Java-‘runtime’ in de nieuwe taal worden verholpen. Daarnaast deelt C# ‘run-time libraries’ met andere programmeertalen, waardoor programmeurs uit verschillende talen kunnen kiezen. Dit in scherpe tegenstelling tot Java, waarvan het de bedoeling is dat het als enige taal wordt gebruikt. Wel maken interfaces via EJB toegang tot andere diensten en daarmee andere ontwikkelomgevingen mogelijk.
Voor mij is het weer een bewijs van de puinhoop waarin de IT-industrie zich bevindt. Zou het niet prachtig zijn als alle moeite die in C# wordt gestoken direct wordt geïnvesteerd in het verbeteren van wat we al hebben: Java!
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal IT-bedrijven en professor aan de Universiteit van Wales.