Oracles Simon Ritter presenterte nyheter som kommer i Java SE 8, men innledet med et historisk tilbakeblikk. (Bilde: Harald Brombach)

Java skal bli MYE bedre

Klar melding fra Oracle på JavaZone i Oslo.

OSLO SPEKTRUM (digi.no): Utviklerkonferansen JavaZone ble arrangert i Oslo denne uken. Onsdag presenterte Simon Ritter, som har stillingsbetegnelsen technology evangelist i Oracle, en rekke av nyhetene som planlegges i Java SE 8 (Standard Edition), den neste utgaven av plattformen.

Det som er klart, er at Oracle ønsker at det ikke på nytt skal ta omtrent fem år mellom den nåværende og den neste versjonen av Java SE, noe som var tilfellet mellom versjon 6 og 7. Java SE 7 kom i slutten av juli i år, og Oracle planlegger at Java SE 8 skal lanseres i desember 2012.

– Min erfaring med Oracle så langt, er at når selskapet oppgir en dato for lansering, så det gjerne den datoen det faktisk blir, sa Ritter, som jobbet for Sun inntil selskapet ble kjøpt av Oracle.

Ritter mener at noe av årsaken til at det tok så lang tid å få ferdig Java SE 7, var dels det nevnte oppkjøpet, dels mye fokus på JavaFX, men også arbeidet med å åpen kildekode-implementeringen av Java, OpenJDK.

For å gjøre den videre utviklingen av Java-spesifikasjonen mer effektiv, ønsker man å stramme inn tidslinjen for behandlingen av spesifikasjonsforespørslene (JSR). Alle Java-spesifikasjoner stammer Java-fellesskapet og er formalisert gjennom Java Community Process (JCP). Oracle ønsker å forbedre hvordan dette fungerer.

– Oracle har lært mye om fellesskap det siste året, sa Ritter. Han forteller at det planlegges å gjøre utviklingsprosessen mer åpen og transparent, ved at utviklere gis tilgang til mer informasjon om utviklingen av spesifikasjonene. Disse planene er beskrevet i JSR348.

Blant målene Oracle har for Java, er å få utviklermiljøet til å vokse ved at flere programmerer med Java. Selskapet vil jobbe for økt bruk av Java, ikke bare i bedriftssystemer, men også i pc-er og integrerte enheter.

Dessuten vil Oracle sørge for at gjøre Java mer konkurransedyktig.

– Dette inkluderer blant annet forbedret ytelse og å tilpasse det til hvordan det faktisk brukes i dag, sa Ritter.

Men det er ikke bare enkelt å gjøre endringer i et 15 år gammelt språk, som brukes av svært mange og på mange ulike steder. Ritter nevnte under foredraget at man på et tidspunkt må vurdere om det er på tide å bryte med bakoverkompatibiliteten for å kunne legge til helt nye og «fantastiske» ting. Men det var ingenting ved det Ritter sa som tyder på at dette vil skje i forbindelse med Java SE 8. Tvert imot fortalte han at selv om en rekke Java-klasser har blitt avskrevet (deprecated), så har ingen av disse blitt fjernet fra klassebiblioteket.

Under foredraget presenterte Ritter en rekke større og mindre nyheter som kan ventes i Java SE 8. Den ene handler om å tilpasse Java til dagens virkelighet hvor prosessorer ikke lenger klokkes stadig høyere, men i stedet har flere kjerner og støtter for å kjøre mange samtidige tråder.

Java-maskoten «Duke» besøkte JavaZone 2011.
Java-maskoten «Duke» besøkte JavaZone 2011. Bilde: Harald Brombach

Håndtering av blant annet parallelle arrays og collections i Java krever mye kode, selv for å løse enkle problemer. Løsningen man har valgt er lambda-uttrykk, noe som skal kunne erstatte dagens bruke av «anonymous inner classes» og dermed redusere mengden av kode som kreves. Også en rekke andre programmeringsspråk har støtte for lambda-uttrykk, inkludert Scala, som mange Java-utviklere ser ut til å ha fått øynene opp for.

Også flere av de andre nyhetene som kan ventes i Java SE 8 skal kunne bidra til å redusere mengden av koding som er nødvendig for å løse en del oppgaver, men Ritter sa at det samtidig er viktig at det som egentlig skjer, for eksempel i kompilatoren, ikke skjules for utvikleren, siden det kan vanskeliggjøre debuggingen.

Bruken av Java i små enheter med begrensede ressurser tvinger ifølge Ritter fram et behov for å dele opp blant annet Java klassebibliotek i ulike moduler.

– Da trenger man bare installere de klassene man faktisk trenger. Samtidig må man være forsiktige på grunn av prinsippet «write once, run everywhere», sa Ritter, men understreket at det fortsatt jobbes med å bestemme hvordan dette kan gjøres.

Med Java SE 8 skal det blir enklere å fortelle en Java-applikasjon hvor du ulike jar-filene finnes.

– Man har oppdaget at man kan bruke «*» som jokertegn, slik at man kan inkludere alle filene i en mappe i «classpath»-en, sa Ritter. Han nevnte også at det vil innføres en egen fil, «module-info.java», hvor utvikleren kan opplyse om hvilke jar-filer som kreves av kompilatoren for å kjøre programmet. Denne metoden skal også kunne skille mellom ulike versjonsnummer for jar-filene.

– Vi vil altså få noen gode og store forbedringer i Java SE 8. Det er mer nytt enn i Java SE 7. Regn også med å se mer i Java SE 9, avsluttet Ritter.

    Les også:

Til toppen