Javas chefarkitekt: Sådan bliver Java 8 mere moderne – på en konservativ måde
»Der er en konstant uenighed om, hvor meget, der skal ændres, og hvor hurtigt det skal ske. Vi bliver hadet fra begge sider. Men vi har en meget lav tolerance for ændringer, der ikke er kompatible. Vi vil ikke ødelægge folks kode. Og vi vil ikke gå efter, hvad der er moderne lige nu, i jagten på nye, cool ting,« sagde han.
I Java 8, som kommer på gaden engang til foråret, kommer der nye muligheder, der trækker Java i en mere funktionel retning.
»Listen over nye features er faktisk ret kort. Men de vil til gengæld have stor betydning for produktiviteten hos Java-udviklerne. Der var mange ting, vi kunne have tilføjet, men vi valgte at satse på nogle få, der så har stor effekt,« forklarede Brian Goetz.
Punkt 1 på den korte liste over vigtige ændringer er, at Java 8 får lambda-udtryk (expressions).
»Det er endelig blevet tid til lambda-udtryk. Det vil gøre det muligt at udvikle mere kraftfulde biblioteker. Koden bliver lettere at læse, og der vil være færre fejl,« lød det fra Brian Goetz.
Spørgsmålet var så, hvordan syntaksen skulle bygges op – og det havde affødt uendelig meget debat, sagde Java-chefarkitekten.
»Det er det, udviklere gør – det var ren ’bike-shedding’ (at diskutere en konkret, men generelt uvæsentlig del af problemet, red.). Vi endte med at stå med mange forskellige løsninger, hvor den ene ikke var mere Java-agtig end den anden, og så endte vi med en syntaks, der også bliver brugt i andre sprog,« forklarede han.
Den typiske, lidt utaknemmelige reaktion på nyheden om lambda-udtryk, har været: Hvorfor skulle det tage så lang tid? Men der er mange detaljer, der skal på plads, når der bliver ændret i Java, og det stadig skal være bagudkompatibelt, sagde Brian Goetz.
Et blidt, funktionelt puf
I forlængelse af lambda-mulighederne får Java 8 også default metoder, der tidligere også har været kaldt defender-metoder eller virtual extension-metoder. Og generelt bliver Java drejet i retning af de funktionelle sprog, der er blevet så populære på det seneste. Det skal dog ske stille og roligt, for ellers bliver Java-udviklerne forskrækkede, vurderede Brian Goetz.
»Vi giver folk et blidt puf i retning af en mere funktionel stil. Vi bruger ikke f-ordet så meget, for det skræmmer folk, men langsomt vil folk se, at det er nemmere at arbejde på den måde, og så vil folks dovenhed sørge for, at de går den vej,« sagde han.
De nye muligheder i Java 8 er dog kun et skridt på vejen i sprogets løbende udvikling, understregede han. For eksempel er det blevet mere tydeligt, nu hvor Java bliver lidt mere funktionelt, at der mangler nogle tricks, for eksempel tuples, som de funktionelle sprog er født med.
»Vores næste store mål er value types. Men det vil tage noget tid. Java vil ikke have tuples om 1-2 år – det vil være for ambitiøst,« sagde chefarkitekten, som også lige måtte vise en Oracle-standardbesked om, at den slags forudsigelser kan ændre sig og ikke er nagelfaste.
Den overordnede historie om de ændringer, der kommer nu med Java 8, er, at Java er fuld af liv og tilpasser sig nye krav til programmeringen – men i et stille og roligt tempo.
»Med en stor nok indsats, er det muligt at lære en gammel hund nye tricks. For få år siden troede mange, at Java var et overstået kapitel. At alt godt har en ende, og den slags. Men jeg synes, vi har vist, at det ikke er tilfældet, og at vi kan udvikle Java, uden at bryde med kompabiliteten og med vores principper for Java,« sagde Brian Goetz
Han kiggede også lidt tilbage i tiden til Javas fødsel i 1990’erne, hvor sproget var ’cutting edge’.
»I 1992-1995 var C dominerende, og det var temmelig desillusionerende for mange, for der var helt klart brug for noget bedre. Det var meget lowlevel. Mange af de features, man valgte at tage med i Java dengang, var meget vovede. Garbage collection og JIT (just-in-time, red.) var meget store satsninger, som lykkedes – men det var ikke oplagt, at de ville det,« forklarede han.
Selvom Java var ’vovet’, var det samtidigt konservativt fra fødslen af, og nemt at gå til for udviklerne. Tanken var, at det skulle være et ’arbejder-sprog’, et, der får opgaven løst uden fine fornemmelser.
»Det var ikke bare en masse funktioner, som James Gosling (Javas skaber, red.) så puttede i en stor sæk. Alt det risikable var ’over vandlinjen’, og under vandlinjen var Java meget konservativt og sikkert. Så udviklerne fik alle de nye funktioner, de ønskede sig, men i et sprog, der lignede noget, de kendte,« sagde Brian Goetz.
At det på den måde lykkedes at få ’solgt’ Java til udviklerne, ved at pakke de nye ting ind i velkendte rammer, var helt afgørende for Javas udbredelse. I dag arbejder ni millioner udviklere verden over med Java, og både indbyggertal og økonomien i Java-udvikling svarer i grove træk til Sverige, lød meldingen.
»Det var alle Jedi mind tricks moder. Hvis du skal lokke folk over, skal du snyde dem en lille smule. Og tricket her var fantastisk succesfuldt,« sagde Brian Goetz.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.