Er is geen twijfel mogelijk: de introductie van Java is niets minder dan een revolutie. De meeste startende bedrijven in Californië en elders hebben de PC de rug toegekeerd en richten zich nu volledig op Java-applicaties. Dit zal de komende jaren een enorme impact op de IT-industrie hebben.
De redenen voor het succes van Java zijn ingewikkeld. De taal werd in eerste instantie gebruikt voor het ontwikkelen van objecten die dynamisch in een web-browser konden worden geladen, zodat de terminal waarop de browser draaide, ze kon uitvoeren. Men zag dit als een grote verbetering ten opzichte van de veel eenvoudiger sequentiële scripts die aanvankelijk werden gebruikt om invulformulieren en dergelijke in browsers te implementeren.
Java is echter meer. Java als programmeertaal is object-georiënteerd; het is niet de eerste object-georiënteerde taal maar misschien wel de laatste. De syntax van Java is afgeleid van C++, in tegenstelling tot Smalltalk, dat nergens van afgeleid is. Java is daarom niet zo ‘puur’ als Smalltalk, maar heeft een veel groter commercieel draagvlak. Grof gezegd is Java een soort C++, maar dan zonder C. Dat is een enorme stap voorwaarts. C++ was een object-georiënteerde uitbreiding van C, en bevat daarom veel traditionele, procedurele en andere eigenschappen van systeemtalen; C had nooit voor applicaties gebruikt mogen worden. Java heeft alles in zich om een echte, object-georiënteerde standaardtaal te worden.
De Java-klassebibliotheken zijn niet compatibel met C++-bibliotheken. De voortschrijdende ontwikkeling van de taal zal zich richten op de klassebibliotheken, maar ook op uitbreidingen van de taal zelf.
De huidige opwinding rond Java draait om het aanmaken van actieve objecten die kunnen samenwerken met Internet-tools. In deze omgeving worden Java-applicaties gecompileerd tot standaard byte-code formaat en gekoppeld aan Html-pagina’s op web-servers. Deze objecten worden geïnterpreteerd in de browser. De web-pagina’s worden pas van de server geladen als ze nodig zijn. Momenteel werkt men aan de ontwikkeling van compilers die de byte-code à la minute vertalen en van cacheing, een techniek om de performance te verbeteren. De belangrijkste eigenschap van de Java-objecten is dat ze onafhankelijk zijn van de processor waar zij op draaien, zodat Java-applicaties op een breed scala van platforms kunnen worden geïmplementeerd. De industrie wordt hierdoor bevrijd van het juk van Microsoft en Intel. Het zijn natuurlijk nog steeds opties, maar de wurggreep is gebroken, waardoor de concurrentie eindelijk kan losbarsten. Dit zal weer leiden tot een toename van kwaliteit, value for money èn functionaliteit. Naast de technische kwaliteiten is dit de ware reden voor het succes van Java; het is een kans voor de volgende generatie softwarehuizen om marktaandeel van Microsoft af te nemen. Daarom zijn IBM, Sun en Oracle de applicatie-ontwikkelaar zo behulpzaam. Tenminste, zolang hij voor Java kiest en Active X maar links laat liggen. Commerciële kansen wegen nu eenmaal zwaarder dan gelijk hebben.
In de Internet-wereld worden de klassebibliotheken van Java bepaald door de browsers; zij concentreren zich op gui-interfacing, simpele privé-bestandjes en toegang tot het Tcp/ip-netwerk. Andere standaardfuncties worden daaraan toegevoegd, zoals Jdbc – voor de toegang tot SQL-databases, vergelijkbaar met Odbc – en samenwerking met het gedistribueerde object-model, Corba, door middel van Joe.
Omdat Java-objecten dynamisch worden geladen, bevinden sommige objecten zich niet op applicatieniveau, maar op systeemniveau. Een object waarmee remote procedure calls kunnen worden uitgevoerd voor Tuxedo- of Cics-transacties, zou de deur openen voor Java en NC’s in transactiesystemen. Dat zal ongetwijfeld gebeuren. Alleen Microsoft zal met Active X proberen om Java aan PC-applicaties te koppelen, waardoor het niet op andere platformen zal draaien.
Versie 4 van OS/2 heeft een geïntegreerde Java runtime-module. Een browser, Netscape Navigator, is leverbaar als optie. Maar als alle nieuwe ontwikkelaars met Java werken, dan zal OS/2 alle nieuwe applicaties kunnen draaien, terwijl Windows zijn belangrijkste voordeel kwijtraakt! Het is toch een vreemde wereld.
Java moet ook een algemene ontwikkeltool worden die C++ de komende twee jaar gaat vervangen. De tijdsschaal is afhankelijk van de beschikbaarheid van volwassen programmeeromgevingen en klassebibliotheken. Dit gebeurt vrij snel voor de huidige PC-sector vanwege alle gui-ontwikkelomgevingen die reeds verkrijgbaar zijn voor C++, Smalltalk, Visualbasic en dergelijke. Deze systemen kunnen gebruik maken van de mechanismen voor het afhandelen van schermen en gebeurtenissen en bieden een omgeving waarin de klassebibliotheken ongestoord verder kunnen rijpen. Sun, Microsoft, Borland, Symantec en IBM leveren momenteel Java-ontwikkelomgevingen. Zij vervangen de huidige compilers door Java-compilers (en debuggers), maar behouden de omgeving die de programmeur zo goed kent, inclusief het beheer van de broncode.