Sun-programmerere oppgitt over Java

I et internt notat, forklarer flere Sun-programmerere hvorfor de mener Java ikke egner seg for kommersielle applikasjoner under Solaris.

Notatet ble publisert på nettstedet Internal Memos denne uken, under tittelen The Java Problem. Notatet forklarer at selv om Java som programmeringsspråk tilbyr en rekke fordeler i forhold til C og C++, er implementering på Suns eget operativsystem Solaris så mangelfull at selskapets programmerere vegrer seg mot å bruke det. ”En gjennomgang av problemet tyder på at disse vanskelighetene ikke skyldes selve Java, men at de heller gjenspeiler mangler og uoverensstemmelser som er typiske for prosjekter der det ikke er etablert en effektiv kommunikasjon med partnere og brukere”, heter det blant annet.

Den foreslåtte løsningen er enkel: Den går ut på at Sun holder seg til sine egne prinsipper, og underlegger Java-implementeringen i Solaris Suns interne regelverk Software Development Framework (SDF).

Hovedproblemet, ifølge programmererne, er at Solaris-implementeringen av Java gjør det bortimot umulig å lage applikasjoner som kan supporteres og kjøres pålitelig i kommersielle miljøer. De har klaget på vedvarende lus i implementeringen, og fått som svar at dette er lus man ikke akter å fikse.

Blant de viktigste lusene er overforbruk av virtuelt minne, vedvarende flaskehalser og tabelleditorer som er inkompatible mellom ulike versjoner av Java Developers Kit (JDK).

Programmererne sier de har inntrykk av at Solaris-implementeringen ikke er prioritert, og at ressursforbruket ikke betraktes som et alvorlig problem. Selv mener de at grunnlaget for vellykkede Java-applikasjoner til Solaris er en solid Java virtuell maskin, og argumenterer for at Solaris-folkene må sørge for å gi dem det. I stedet opplever de å avspises med holdninger som utenforstående kjenner igjen fra klagemål mot en unevnelighet: At ny funksjonalitet går foran alt annet, og at bedringer av grunnmuren må nedprioriteres.

Ressursproblemet illustreres med at et enkelt ”Hello World”-program i Java for Solaris krever 9 megabytes med kompilert støttekode for å kjøres, mens et tilsvarende program i Python nøyer seg med 1,6 MB. For større programmer er misforholdet noe mindre, men likevel så omfattende at programmererne antar at Java Runtime Environment for Solaris bør kunne reduseres med 80 prosent.

Ressursproblemet innebærer at det skal ikke så mye til før et antall samtidige brukere av en Java-applikasjon overbelaster minnet til en typisk Solaris-server.

En del av kritikken fra Sun-programmererne er rettet mer direkte mot måten Sun håndterer Java på, og som innebærer at det gjerne dukker opp inkompatibiliteter fra en versjon til neste, slik at applikasjoner er avhengige av én bestemt utgave. Notatet gir eksempler på inkompatible endringer fra JDK 1.1 til 1.2, fra 1.3 til 1.4, og fra 1.2.2 til 1.3.1. Dette innebærer at dersom en server skal kjøre flere Java-applikasjoner, må man sørge for at de forholder seg til hver sin Java virtuelle maskin.

Programmererne ”anbefaler sterkt” at ledelsen i Sun sørger for å underlegge Java de strukturerte prosessene i selskapets Software Development Framework, slik at problemene kan løses – og Javas faktiske potensial frigjøres.

Til toppen