JAVABørre Stenseth Foruten å være en øy i Indonesia, en kaffetype (fra samme øy), og en lite påaktet dans fra før krigen, så er Java et programmeringsspråk fra Sun Microsystems. Det er det siste som påkaller en viss oppmerksomhet i denne sammenheng. Java er et programmeringsspråk som har store fellestrekk med C/C++. Språket som språk betraktet er vel isolert sett ikke grunnlag for spesielt stor oppstandelse. Når Java likevel påkaller betydelig oppmerksomhet både i faglige kretser og i mer strategisk sammenheng er det først og fremst et resultat av riktig timing og riktig fokus. Java introduseres som et svar på ønsket om mer funksjonalitet på Internettet og det introduseres og kommenteres som et svar på en økende bekymring over Microsofts dominans på programvaremarkedet. Java er både en interessant teknisk løsning og det er et sentralt innspill i kampen om Internettet. Fenomenet er også ganske interessant sett fra et mediesynspunkt. Oppstyret rundt lanseringen og kommentarene viser tydelig at tiden er moden for en ny bekreftelse av den amerikanske drømmen. Steve Jobs har mer eller mindre forsvunnet og Bill Gates har skiftet image fra kreativ nyskaper til økonomisk maktfaktor med betydelig bremseeffekt. Javas tilblivelse er allerede myteomspunnet og er i ferd med å skape sine helter. Hvorfor Java akkurat nåVi har en eksplosiv vekst i bruk av internettet. Det som har fått anvendelsen til å ta av, er realiseringen av Word Wide Web. Først Mosaic og så Netscape har gjort nettet tilgjengelig for alle. Det er ingen grunn til å vente annet enn at antall brukere, antall informasjonstilbydere og mengden av informasjon vil øke. Vi er i en fase som er preget av en overgang fra nyhetens begeistrede optimisme mot en voksende utilfredshet med de løsningene vi har tilgjengelig. Vi er ikke lenger fornøyd med å surfe nettet etter passiv informasjon i noen få standardformater. Det er en tydelig avstand mellom maskinens potensiale og brukernes ønsker på den ene siden og det vi får ut av en nettvandring på den andre. Hvis vi ser bort fra de mer overordnede spørsmålene knyttet til kapasitet, internettet struktur og problemer med informasjonens volum, er det to tydelige mangler:
Java kan bli et alternativ til denne spiralen. Den bærende ideen er at et Javaprogram kompileres til en maskinuavhengig kode som transporteres over nettet og interpreteres av en lokal interpretator. Eller sagt på en annen måte: Java kompileres til en virtuell maskin som kan emuleres på de vanlige plattformene. Hvordan JavaJavaprogrammer opptrer i hovedsak to forskjellige skikkelser.
En måte å oppfatte mulighetene som Java gir er å oppfatte nettet som en datamaskinressurs. Vi trenger ikke fylle opp vår egen harddisk med alle tenkelige applikasjoner for å være forberedt på å handtere ulike typer data. Vi kan konseptuelt betrakte nettet som en ressurs, ikke bare for data, men også for databehandling.
Java for hvemEn av de tingene som har ført til en eksplosiv vekst av Web-aktiviteten er at det fram til nå har vært enkelt å lage Web-sider. Det kreves ingen datakunnskap for å sette opp et enkelt HTML-dokument med enkel tekstformatering, bilder i gif-format og lenker. Det krever estetisk sans og evne til å organisere informasjon for å lage tiltrekkende og effektive sider, men i prinsipp er det et verktøy for alle. Dette er selvsagt Web-samfunnets styrke og det er et resultat av den fornuftige design og nøkternhet som browserprodusentene har greidd å opprettholde fram til nå. Når kravene til funksjonalitet øker er det flere tenkelige utviklingslinjer. To tydelige er:
Det er litt vanskeligere å svare på om Java som språk er det rette. Java er i sin form et typisk verktøy for skolerte programmerere. Selv om Java er basert på C++ har det en image som er svært lik Smalltalk, og det fristende å minne om den optimismen som preget Smalltalk-tilhengerne tidlig på 80-tallet. De hevdet med stor styrke at Smalltalk var et programmeringsspråk som var lett tilgjengelig for de fleste og de investerte stor faglig presistje i å lansere Smalltalk som et allment verktøy for interaktiv modellering. Det er mange likhetstrekk mellom Java og Smalltalk. Begge er rendyrket objektorienterte og begge er slik at styrken og effektiviteten ligger i funksjonaliteten i eksisterende klassebiblioteker og forståelsen av disse. En erfaring er at læringskurven er ganske slak i starten, inntil brukeren får nødvendig oversikt. Det er langt færre enn i hvert fall de ivrigste Smalltalk tilhengerne mente som blir effektive. Teoretisk er selvsagt mulighetene tilstede i og med at klassebibliotekene kan og vil vokse og spesialeres for ulike typer applikasjoner. Å skrive en applikasjon blir å lage en enkel avledning av en eksisterende klasse. Java blir likevel trolig språket for etablerte C++ programmerere. Det er en viss fare for at det så og si blir for stort gap mellom de to utviklingtrekkene som er nevnt ovenfor. Vi vil få to helt adskilte utviklingskulturer. Erfaring med lignende situasjoner tilsier at dette ikke vil vare. Gapet vil bli forsøkt overbygget, enten med enkle programmeringsverktøy i editorene, eller med forenklende språkoverbygninger på Java eller med objektteknologi som OLE eller OpenDoc.
Java er involvert i krigDet er trolig her, i gapet mellom editorene og det tradisjonelle programmeringsspråket, at Microsoft vil sette inn sitt strategiske motstøt. En del av Microsofts omfattende strategi for å få kontroll over programvaren for Internettet, er en kombinasjon av Visual Basic og OCX (OLE custom contols). Denne trusselen er åpenbart tydelig for SUN, som sammen med flere andre har annonsert JavaScript som er nettopp en overbygning på Java for kjapp og enkel utvikling som ikke krever C++ type kompetanse. Det er interessante at Oracle og Sybase er blant dem som nevnes som støttespillere i denne satsingen. Enkel databasetilgang vil trolig bli en viktig faktor i Internett-krigen.Det vil føre for langt å gå inn på detaljer i Microsofts strategi, men den er typisk nok ganske omfattende og i øyeblikket ganske vond å få oversikt over, med mange komponenter og kombinasjonsmuligheter, se http://www.microsoft.com/internet/. Kanskje vi er vitne til en situasjon der Microsofts strategi med økende kompleksitet kan slå tilbake og bli et stort problem for Microsoft selv i krigen om nettet. Microsoft har annonsert sine løsninger midt i 1996. Markedet tåler kanskje ikke utsettelser på denne fronten like godt som det tydeligvis har tålt utsettelser tidligere. Hva med Apple? Apples image har vært mediemaskinen fram for noen, og det neste logiske steget ville være å bruke denne imagen og bakgrunnen som grunnlag for et solid grep på Internettet. Har Apple gått glipp av muligheten for å gjøre sine produkter til ledende på Internett? Copeland trekker ut i tid og spekulasjoner sier at det tidligst kommer i 1997. Apples web-programmeringsspråk, Dylan, er skrinlagt etter at Java kom. Apple har annonsert støtte for Java. Cyberdog er annonsert for lansering i januar 1996. Cyberdog er bygget på OpenDoc-teknologi og det vil gi muligheter for å integrere nettjenester i andre applikasjoner. Det er imidlertid tvilsomt om det vil kunne gi noen kunkurransefordel ramfor Microsofts OLE-teknologi. De nærmeste månedene vil bli svært interessante fra et strategisk synspunkt. Stadige nyheter og rykter om allianser og lanseringer ligner bildet av gruppering og omgruppering av tropper før det store slaget.
Hvor er Java idagSammen med de første versjonene av Java ble det lansert en browser, HotJava, som hadde innebygd en interpretator for Javas p-kode. Dette var selvsagt nødvendig for at språket skulle kunne testes og demonstreres i Web-omgivelser. Det er helt avgjørende for Javas utbredelse at interpretatoren blir inkorporeret i de markedsledende Web-verktøyene. Netscape annonserte sin support for Java i mai 1995, se http://www.netscape.com/newsref/pr/newsrelease25.html.Det har vært problemer med noen versjoner. Se f.eks. http://www.isisnet.com/home/newnetscape.html eller http://www2.netscape.com/newsref/pr/index.html eller http://www.ccs.org/winsock//netscape.html for å sjekke status for ulike versjoner og plattformer.
JavaSelve språket er sterkt beslektet med C/C++. Syntaksen for de vanlige programkonstruksjonene er lik. Det er likevel flere viktige forskjeller. Vi kan se på noen av dem, uten å gå i detaljer.
ObjektorientertJava er rent objektorientert. Språkdesignen og formen det distribueres på ligner mer på Smalltalk enn C++. Java understøtter ikke multippel inheritance, men har et interface-begrep som i noen grad gir tilsvarende løsningsmuligheter.Språkets slagkraft og fleksibilitet står og faller med klassebibliotekene. Ikke uventet er bibliotekene ved lansering, i tillegg till de grunnleggende mekanismene i språket, godt utbygd i retning av nettjenester (telnet, ftp, www, nntp). Det er like lett å hente en fil på nettet i Java som det er å åpne en lokal fil i tradisjonell C. Vi finner klasser for håndtering av grafiske elementer som knapper, menyer, bilder etc.
HukommelsesadministrasjonJava har ikke pekeraritmetikk. Språket har kraftig typesjekking og det har garbage collector. Det siste betyr altså at vi som programmerere er fritatt for ansvaret for å frigi dynamisk allokert hukommelse. Ikke-refererte objekter fjernes av systemet.
InterpretertStrategisk ligger selvsagt Javas hovedstyrke i uavhengigheten av plattform. Java-programmer skal kunne utvikles og kjøres smertefritt på de vanligste plattformene. Det store spørsmålet er selvsagt hvorvidt det valget som er truffet når det gjelder den virtuelle maskinen, p-koden, er godt nok og robust nok. Den virtuelle maskinen må være effektiv for den type applikasjoner som Java kommer til å bli brukt til.Det har alltid vært en innvending mot interpreterte språk at de arbeider langsomt. Dette avhenger selvsagt av hvordan interpreteringen foregår. En ren interpretering fra kildekode vil selvsagt gå senere enn en interpretering av en mellomkode, som Javas p-kode. I Javas tilfelle er det en faktor til som vil være avgjørende for å oppnå en tilfredsstillende hastighet. Språket understøtter full multithreading. I praksis vil det si at programmet kan bruke tid til tidkrevende oppgaver når slik tid er tilgjengelig. Tidkrevende oppgaver i et typisk Javaprogram er å hente og tolke data fra kilder på nettet. Oppdatering av informasjon kan f.eks. skje "parallellt med" at brukeren får betjening i en endel interaktive oppgaver.
SikkerhetEt språk som er ment å ha nettet som arbeidsområde må ha mekanismer som ivaretar noen vitale sikkerhetsaspekter. Et program som skal "transporteres med" en web-side og utføres på en lokal maskin er en betydelig kilde for både planlagt og ikke-planlagt ødeleggelse og snoking. Det er lagt betydelig vekt på dette i Java og i presentasjon av Java. Det fører for langt å gå inn på dette her, men sikkerhetsaspektet gjelder både kontroll av tilgang til lokale ressurser og det gjelder kontroll av p-koden som potensiell virustransportør og som destruktiv kode.Noen av de endringene som er gjort i forhold til C/C++ er motivert først og fremst ut fra et sikkerhetsaspekt.
UtviklingsmiljøUndertegnede har testet utvikling Java på Windows NT. Det eneste som er tilrettelagt som støtte for utvikling er en HotJava-basert klassebrowser, med noen enkle søkemekanismer. Dette gir et minimum av hjelp til å skaffe seg oversikt over klassebibliotekene. Ellers er det bare å finne fram en editor du liker, skrive koden, lagre den somminkaffe.java, åpne et vindu for å skrive kommandoer og kalle opp
kompilatoren med kildekoden som parameter, javac
minkaffe.java, og du
får laget p-kode versjonen: minkaffe.class. Og så er det
bare å teste enten via HotJava og et html-dokument med <APP
Class="minkaffe"> - tag eller som et frittstående program,
Java minkaffe.
Det oppleves som en betydelig nedtur etter å ha jobbet en stund med Visual C++. Det er også viktig å merke seg at Java, både ved utvikling og kjøring, baserer seg på en bestemt katalogstruktur. Det er litt fingertrøbbel å få satt miljøparametre rikig. Verktøyene som følger Java er:
Hva vi skal gjøre med JavaMed det fokus vi har hatt på Internett og nettapplikasjoner er Java høyst interessant. Vi vil ta det i bruk og skaffe oss erfaringer med språket og hvilket potensiale det har. En prosjektgruppe i 3.klasse har fått et spesielt ansvar for å følge opp Java og vi vil dra igang et internt seminar.
Java referanser
Copyright: 1996, Høgskolen i Østfold. Last Update: 28.06.97, Thomas Malt. |