[Web pekare och referenser till krönikan] --- [Läsarnas åsikter] --- [Tillbaks till krönikor]

Peter S. Magnusson

En kopp Java och Netscape 2.0, tack!

Datateknik, Oktober 1995

Det är en gammal sanning att en hackers bästa vän är en kopp kaffe. Själv identifierar jag mig med Dilbert-figuren som bytte till intravenöst kaffe, för att spara in tiden det tar att gå till kaffebryggaren.

Tydligen har kaffet också inspirerat James Gosling och kompani på Sun när de utvecklade Java, ett objekt-orienterat språk som Sun numera lanserar som en teknologi för distribuerad programmering. James Gosling var redan innan Java något av en Internet-legend (han skrev den första C-versionen av textredigeraren Emacs, bland annat).

Bakgrunden till Java var ett projekt som startade under våren 1991 på Sun, med sikte på konsumentelektronik. Man tänkte sig en framtida miljö bestående av flera olika konsumentelektronikprodukter sammankopplade i ett stort heterogent nätverk, ivrigt pratande med varandra. För detta scenario krävdes en ny programvarumodell. Första ansatsen var att modifiera C++, men denna strategi fungerade inte. Därför föddes "Oak" (numera Java) under sommaren 1991.

Java är mycket likt C, men Gosling har i princip plockat bort allt överflödigt eller farligt.

Dessutom har han lagt till lite saker som C saknade: en ny operator för högershift med nollfyllning (">>>"); strängar; källkoden (och tecken) följer Unicode-standarden; ny kommentarkonvention för automatisk generering av dokumentation; numeriska typer har samma bitbredd på alla plattformar; ny logisk datatyp.

De stora skillnaderna mot C är framför allt: hård typning; en enkel undantagsmodell; objektmodell lik den i C++; stöd i språket för flertrådning enligt Hoare's monitormodell; "interfaces" a la Objective C; dynamisk laddning av klasser; kompilatorn genererar arkitekturoberoende bytekod; inga pekare - skräpminnesinsamling används för att rensa gamla objekt.

Det mest säregna hos Java är stödet för distribuerad programmering. Färdigkompilerade program kan hämtas över exempelvis Internet och exekveras lokalt. Det är förstås en stor fördel, men samtidigt förknippat med problem efter som det finns risk att man med Java sprider virus.

Java har annars ett flertal spärrar mot farliga program. Dels begränsar språket möjligheterna till skadliga fel, och detta bekräftas när koden laddas inför interpretering. Dels är rättigheterna under körning starkt begränsade - operatorn "new" är kopplad till klassen ClassLoader, som kan påtvinga en säkerhetspolicy på alla nya objekt. Java-miljön kommer att tillhandahålla stöd för digitala signaturer för att kunna verifiera ursprung inför rättighetsklassning. I miljön ingår också att ett objekt kan fråga vem som anropar, för att därmed kunna respektera exportförbud!

I dagsläget är prestanda hos interpretatorn cirka 20 gånger långsammare än C, något som är fullt acceptabelt. Skillnaden lär minska med tiden.

På det stora hela är Java ett mycket trevligt språk. Det är sparsamt i sin syntax och praktiskt, men ändå kraftfullt. Många av dess kvaliteer kommer nog av att det togs fram som ett bra verktyg, inte som en målsättning i sig - ungefär som C fast mer genomtänkt. Det är notabelt att Suns WWW-bläddrare HotJava är skrivet i Java, liksom Javas kompilator. Javautvecklarna har hittills skrivit över 500 000 rader egen Java-kod.

Det som snabbt populariserat Java sedan lanseringen i våras är att Sun samtidigt släppte versioner på HotJava och demonstrerade hur World Wide Web kan utökas med små exekverbara objekt, så kallade applets. Dessa utgör delegerad intelligens och avlastar därmed nätet och servern, enligt samma princip som intelligenta terminaler.

Riktigt intressant är Java därför att Netscape satsar på Java i senaste versionen (2.0) av sin WWW-bläddrare Navigator (som har 80 procent av marknaden).

Netscapes strategi är tydlig - de vill få Navigator att bli en ny oumbärlig komponent i personliga datorsystem (PC och arbetsstationer). Denna strategi har lett till stora förändringar i bläddraren. Dels finns utförligt stöd för att hantera datorpost och diskussionsforumet News, funktioner som bidrar till att användare alltid har Navigator igång. Dels stöds distribuerade tillämpningsprogram på ett listigt sätt: Navigator stödjer senaste versionen av Java, men tillför LiveScript, ett eget skriptspråk som användare kan skriva i själva HTML-dokumentet.

Netscape har, mycket riktigt, observerat att vanliga dödliga inte kommer att programmera Java. Istället hoppas man efterlikna framgången hos HyperTalk och Visual Basic och erbjuda något som är enkelt att använda men som går att bygga ut. LiveScript har vidare den mycket intressanta fördelen att man enkelt kan titta på dess källkod, till skillnad från Java eller CGI/Perl. Precis som HTML-programmerare kan använda view source-funktionen hos bläddrare för att se hur andra programmerat sina HTML-sidor, så kommer LiveScript-kod att på samma sätt spridas från användare till användare.

Vidare stödjer Navigator hierarkiska bokmärken. Detta är inget annat än den nya tidens filsystem - det behövs ingen "File Manager"-motsvarighet längre eftersom en URL kan peka på en lokal fil!

Kommer Netscape att lyckas i sin ambition att bli 2000-talets Microsoft? Tja, inte är mångmiljard-värderingen av Netscape på Wall Street i underkant. Netscape är på väg att slå Microsoft med Gate's egen strategi: sno någon annans teknologi (Cern http server, NCSA Mosaic, Sun Java), hacka som fasen för att vara först och häftigast på marknaden, sälj till ett mycket lågt pris, och skapa en plattform som 1 000-tals andra företag skriver program för. Jag tror att Netscape inom fem år kommer ha sålt eller gett bort över 100 miljoner Navigator-licenser.

Peter S. Magnusson

Datateknik


[Web pekare och referenser till krönikan] --- [Läsarnas åsikter] --- [Tillbaks till krönikor]