Java: Fra håndholdte til enterprise-servere og tilbage igen

Prosabladets skribent ser på Java-teknologiens historie og udvikling.

Java blev gjort tilgængelig for offentligheden i 1995, men jeg blev først rigtig opmærksom på Java i foråret 1996. På det tidspunkt arbejdede jeg for et mindre softwarehus, hvor jeg programmerede i C og Visual Basic. Da en af mine udviklerkollegaer begejstret fortalte om det nye Java fra Sun og viste mig et par websider med nogle Java-appletter, sagde jeg noget i stil med:

– Nå, det er ligesom Microsofts ActiveX.

Jeg havde ingen anelse om, hvor stor betydning Java ville få. Selv ophavsmændene til Java fejl- og undervurderede Javas fremtidige anvendelsesområder og betydning for it-industrien.

Javas hardware-fadder

I sommeren 1992 præsenterede James Gosling og hans medkumpaner i ”The Green Team” hos Sun Microsystems en prototype af en håndholdt computer. The Green Team havde fået til opgave at finde ud af, hvad den næste store trend i it ville blive.

Projektdeltagerne så en klar trend: Sammensmeltningen af computere og forbrugerelektronik. De udviklede derfor en prototype, der skulle gøre det nemt og enkelt at styre de mange forskellige elektroniske apparater, som de forudså, ville stå i fremtidens hjem.

Prototypen Star7 med en interaktiv 5-tommers trykfølsom farveskærm var på mange måder forud for sin tid og havde meget tilfælles med vore dages smartphones. En væsentlig forskel var dog, at Star7 var murstenstyk og ikke havde multitouch.

Sun havde satset på, at Star7 kunne få succes i den gryende kabel-tv- og on-demand-video-industri, men selvom det ikke skete, fortsatte Sun og The Green Team arbejdet med den underliggende Star7-teknologi.


Hardwaren var bogstaveligt talt det mest håndgribelige resultat af Star7-arbejdet, men det var softwaren, som var mest interessant. Oprindeligt havde James Gosling og hans medudviklere overvejet at anvende C++ til at udvikle softwaredelen af prototypen, men for at understøtte features som garbage collection, distribueret programmering og threading - features, som de anså for at være essentielle for fremtidens programmeringssprog -  valgte de at udvikle deres eget programmeringssprog. Det nye sprog blev først navngivet Oak, men blev senere omdøbt til Java.

Animeret 3D-molekyle

Da Java-teknologien ikke vandt fodfæste i kabel-tv-industrien, vendte Sun blikket mod internettet. I 1993 havde Mosaic-browseren fået succes, og udviklerne hos Sun byggede en Java-baseret klon af Mosaic med navnet WebRunner - senere kendt under navnet HotJava.

WebRunner havde indbygget en Java Virtual Machine (JVM), der gjorde det muligt at eksekvere programmer i form af Java-appletter i browseren. Sun præsenterede WebRunner i starten af 1995 på en af de første TED-konferencer. James Gosling viste, hvordan WebRunner kunne visualisere et 3D-molekyle og en sorteringsalgoritme.

På det tidspunkt var websider statiske, så rygtet om webbrowseren med dynamisk indhold spredte sig hurtigt i tech-kredse, hvorefter Sun gjorde browseren og Java tilgængelig via download. 23. maj 1995 erklærede Netscape, at den på det tidspunkt mest udbredte browser ville understøtte Java, hvilket fik interessen for Java til at eksplodere.


Java var afgjort en hot browserteknologi, men for mange udviklere med fokus på forretningsapplikationer i midt-90'erne var det også noget, der begrænsede Javas appel. Webbaserede forretningsapplikationer var noget, som lå ude i fremtiden, og de fleste forretningsapplikationer kørte på virksomhedens servere og/eller mainframes, hvor brugerne via terminal-løsninger eller klient/server-løsninger fik adgang til virksomhedens applikationer. Her kom Java til kort.
Men da Java Enterprise Edition blev introduceret 1998, rykkede Java ind på virksomhedernes servere. Enterprise-it forandrede sig - blandt andet med IBM's satsning på Java i form af WebSphere Application Server og udviklingsmiljøet Visual Age for Java, hvilket fik mange store virksomheder til at tage Java seriøst som sprog til udvikling af forretningsapplikationer.   

EJB-hysteri og alternativer

I de følgende år blev teknologier som JDBC, JNI og JMS udnyttet til at skabe bro mellem web og forretningsapplikationer. Omkring år 2000 arbejdede jeg for IBM's konsulentafdeling, og på det tidspunkt var Enterprise Java Beans (EJB) den store forkromede enterprise-løsning.

Selvom vi som udviklere ved, at vores systemer handler om at skabe forretningsværdi, så har ny teknologi en underlig dragende effekt på os, hvilket kan få os til at forveksle midlet (teknologi) med målet (forretningsværdi). Jeg husker stadig min skuffelse, da jeg kom på et projekt, hvor EJB ikke stod på menuen.

EJB lovede at gøre mapningen mellem relationelle databaser og objekterne i Java enkel og ligetil, ligesom transaktionshåndtering på tværs af objekter skulle blive nemmere. Det fungerede fint - i teorien. I realiteten var EJB et komplekst og langsomt performende monstrum. Den australske Java-udvikler Rod Johnson, der havde været på lidt for mange kuldsejlede EJB-projekter, skrev derfor det Java-baserede Spring-framework, der sammen med det objekt-relationelle Hibernate-framework gav enterprise-Java-udviklere et letvægts-alternativ til EJB.
   

Debug everywhere

Jeg undgik EJB-frustrationerne og kom omkring år 2000 på et projekt, der på mange måder foregreb trends i det nye årtusinde. Reality-programmer som Big Brother med sms-afstemning og en syndflod af dårlige ringetoner købt via overtakserede sms'er afspejlede en samfundsmæssigt dårlig smag - eller også var jeg ved at blive gammel.

Sammensmeltningen af computere og forbrugerelektronik, som havde ansporet Sun til at udvikle Star7, var dog i fuld sving med en rivende mobiludvikling. Teleselskaberne havde brug for systemer til at opsamle statistik om de forskellige sms-typer, som folk anvendte i stor stil. Sammen med nogle kollegaer gik jeg i gang med at udvikle en sms-gateway, der kunne holde styr på sms'erne, som flød gennem teleselskabernes netværk. Vores stjerne-udvikler løste udfordringen med at give realtidsinformation om sms'erne i peak-perioder, men da koden skulle flyttes fra et styresystem til et andet, opstod der performance-problemer. Java er i princippet platformsuafhængigt, da et Java-program eksekveres på JVM'en, der ligger som et lag oven på styresystemet. I realiteten kan der være subtile forskelle på eksempelvis implementeringen af JVM'ens TCP/IP-håndtering på to forskellige styresystemer. Vi erfarede på førstehånd, at Javas ”Write once, run anywhere” i nogle tilfælde er ”Write once, debug everywhere”.    

Tilbage til udgangspunktet

Mit første Java-udviklingsprojekt rettet mod mobilsektoren foregik på server-siden, men i de følgende år kom Java til at blive en vigtig del af mobilen.
Med Googles Android-platform har Java fået et stærkt fodfæste som udviklingssprog på mobilplatformen. Det er i øvrigt sket, mens Eric Schmidt har været Googles bestyrelsesformand. Han var CTO hos Sun i starten af 1990'erne og var med til at ændre Java-strategien væk fra kabel-tv-industrien og mod internettet.
Med en stærk kodebase i enterprise-it og på mobilområdet synes Java at stå stærkt, men der er problemer forude.
Oracles opkøb af Sun har medført kritik fra tidligere Java-støtter om udviklingen af Java (se boks).
Min egen ukvalificerede sammenligning med ActiveX var måske ikke skudt helt ved siden af, når det gælder sikkerhed. De seneste års mange rapporter om Java-sårbarheder er ikke med til at dæmpe bekymringen hos eksempelvis danske NemID-brugere.

    
<INDSÆT Tabel>