Sun Microsystems wijzigt zelf de regels voor zijn programmeertaal annex platform Java. De producent past zijn platformonafhankelijke platform aan voor gebruik in ingebedde realtime-apparatuur. Dit houdt aanpassingen in die de software optimaliseren voor hardware die direct (realtime) moet reageren op data-invoer.
Eind deze maand presenteert het bedrijf de voorlopige specificatie voor realtime-Java aan de leden van de zelf-opgerichte standaardisatie-organisatie Java Community Process. Sun verwatert zijn Java-credo ‘write once, run anywhere’ om uit te komen op ‘write carefully, run anywhere conditionially’. De geplande nieuwe implementatie is wel compatibel met de huidigie Enterprise-, Special- en Micro-uitvoeringen van Java.
Java-uitvinder James Gosling presenteerde deze plannen vorige week op de Embedded Systems Conference in het Moscone Convention Center te San Francisco. Hij heeft samen met diverse andere ontwikkelaars de afgelopen drie jaar gewerkt aan Java-uitbreidingen die het platform geschikter moeten maken voor realtime-toepassingen. Hierbij valt te denken aan ingebedde chips voor netwerkrouters, mobiele telefoons, liften, auto’s en vliegtuigen.
Het ontwikkelteam onder leiding van Gosling heeft tot op heden geen volledig succes geboekt. Daarom voert Sun nu wijzigingen door die Java betere realtime-eigenschappen moeten geven. De twee voornaamste concessies zijn het toestaan van Java-programmahandelingen buiten de zogeheten sandbox in het computergeheugen waarin de applicatie draait, en het schrappen van Java’s afval-verzamelfunctie.
De sandbox is oorspronkelijk ingesteld om apparaten te beschermen tegen Java-programma’s die via een netwerk binnenkomen en die dus niet automatisch te vertrouwen zijn. Dit beperkt echter het prestatieniveau van die applicaties. Door ingebedde Java-toepassingen voortaan wel toegang tot het hele geheugen te geven, moet de snelheid hoger uitvallen.
Afval
De afval-verzamelaar scant het geheugen regelmatig op applicatierestanten die niet zijn opgeruimd wanneer een taak is beëindigd. Dit vormt echter een piek in de belasting van een computer, wat voor realtime-apparatuur niet acceptabel is.
Gosling zegt dat Sun geen afval-opruimer heeft kunnen maken of vinden, die zijn taak kan uitvoeren zonder het systeem relatief zwaar te belasten. Sun laat deze universele Java-functie nu weg, maar applicatie-ontwikkelaars kunnen het weer toevoegen indien hun ontwerp de prestatiebelasting kan opvangen.
Volgens Gosling zijn de wijzigingen met open armen ontvangen door ontwikkelaars van ingebedde systemen. Hij erkent echter dat Java-ontwikkelaars minder ingenomen zijn met de aanpassingen. "Als je de specificatie laat zien aan een Java-programmeur zal die zeggen: ‘Je wilt me in een dwangbuis stoppen’. Maar laat het zien aan een ingebedde systeemontwikkelaar en die zal zeggen: ‘Dit biedt mij heel veel ruimte’."
Optimaliseren
Ironisch genoeg, verdedigde Microsoft zich met het argument van optimalisatie toen Sun een rechtszaak aanspande wegens Java-vervuiling. Microsofts Java-implementatie voor Windows bevat namelijk eigenschappen die niet in de oorspronkelijke specificatie zijn opgenomen.
Die zaak is eind januari geschikt na zich ruim drie jaar te hebben voortgesleept. Sun bestempelt die schikking als een overwinning; Microsoft betaalt namelijk twintig miljoen dollar en mag de komende zeven jaar Java alleen gebruiken in bestaande producten.
Microsoft claimde ook de overwinning aangezien zijn Java-optimalisatie geen halt is toegeroepen. Verder lanceerde de Windows-leverancier krap twee dagen later een tegenoffensief middels de eerste versie van het Java-migratiepakket Jump (Java User Migration Path). Dit moet ontwikkelaars die Microsofts Java-implementatie gebruiken, overhalen hun Visual J++-producten over te zetten naar het toekomstige .Net-platform met als belangrijkste programmeertaal C# (spreek uit: c-sharp).