Nå starter Java 8-debatten

Red Hat mener neste Java-versjon må bli bedre på nettsky.

Publisert Sist oppdatert

Java 7 er på gaten, nå må det tenkes fremover av medlemmene Java Community Process (JCP). Nettsky er et hett tema for 8-versjonen.

- Java 8 er ment å rettes eg mot nettskyen, for en bredere utrullingsarena, sier Mark Little, seniordirektør ingeniørkorpset til Red Hats midtvareforretning samt Red Hats utsendte til JCP-komiteen.

Han bemerker seg at Oracle utelot mange av de planlagte funksjonene i Java 7 for å ikke forsinke utgivelsen ytterligere. Disse kan dukke opp i Java 8, skriver Computerworlds nyhetstjeneste.

To ting

Minst to av disse funksjonene vil være viktig i å gjøre den neste versjonen av Java klar for bredskala skyutrulling, ifølge Little.

Det ene er såkalt multitenancy, som gjør at JVM på en trygg måte kjører flere applikasjoner Det andre er modularitet, en reorganisering av JDK til et sett klart definerte sterkt samspillende moduler.

- Modularitet og sann multitenancy i JVM vil være kritisk for 8 hvis Java vil være dominerende i skyen, sier Little.

Modularitet er det Red Hat helst vil se i 8-versjonen. Modularitet vil kutte ned størrelsen på de fleste Java-utrullinger, fordi ikke alle utrullinger trenger Javas kjernebiblioteker. Det vil gjøre at uviklere enklere kan bruke Java, ved å la dem kun bruke det de trenger, heller enn hele kodebasen.

Modularitet

Modularitet vil også hjelpe å fikse et utviklerproblem Little kaller classloader-helvete.

Det opplever utviklere når et Java-program aksesserer flere JAR-filer, eller samlinger med vanlig brukte rutiner. En applikasjon kan bruke en klasse fra en JAR, når den faktisk trenger en annen versjon av den klassen som ligger i en annen JAR. Eller den kan bruke JAR som brukes av et annet program, der JAR-filen fjernes når det andre programmet er ferdig som gjør at det første programmet stopper.

- For å kunne flytte ut modulene inn og ut som du vil uten å kødde til hele miljøet, må du ha støtte for det i JVM, sier Little.

Prosjekt Jigsaw har forsøkt å løse problemet, det var det ingeniørene i Sun foretrakk. Jigsaw var satt opp til å komme i Java 7, men ble trukket ut i 2010 for å klare å sende ut den nye versjonen i år.

Men Little tror det kommer til å dukke opp deler av Jigsaw, eller et annet prosjekt, OSGi, i Java 8.

Multitenancy

Når det gjelder multitenancy, å kunne kjøre flere applikasjoner fra ett JVM på en sikker måte, er funksjonaliteten essensiell for at Java skal brukes i nettskyen, der flere parter deler samme infrastruktur.

Java Enterprise Edition har i dag en omvei for å løse dette problemet.

- Men om JVM i seg selv ikke tilbyr multitenancy, er det begrenset hva vi kan gjøre før ting potensielt tuller seg til av kjeltringnaboer som opererer i samme JVM, sier Little.

Analytiker John Rymer i Forrester Researh er enig.

- Å legge multitenancy til i JVM er viktig. I dag må hver leverandør komme opp med en egen måte å virtualisere applikasjonsserveren på.

Closures

En annen funksjon mange har ventet lenge på i Java, er såkalte closures; muligheten til å skape en funksjon i en annen funksjon og la dem dele variabler. Det ville gjort det lettere å kjøre Java mer effektivt på tvers av flere prosessorkjerner.

Oracles sjefsarkitekt for Java, Mark Reinhold, har vært entusiastisk til å inkludere det i Java-konseptet, men han mente løsningen ikke var klar for Java 7. Closures-kampen fortsetter mot Java 8.

Closures ville gjort Java konkurransedyktig med andre språk som støtter det, som Javascript og Scala.

- Arbeidet med Closures ser ut som det vil bli en kompatibel, men mer begrenset versjon enn hva vi allerede har i Scala, sier Martin Odersky, Scalas skaper.

Oracle har ikke sagt når Java 8 skal komme, men JCP-komiteen ser helst at det ikke drøyer like lenge som for Java 7.

- Vi vil ikke vente nye fem år mellom 7 og 8, sier Little.