Sidst på dagen havde jeg (Nikolaj Brinch) valgt at gå til General Session om fremtiden for Java (mainly SE).
Gennemgang af nye features som kan komme i OpenJDK (lambda mm.) som ligner det vi har haft i megegt lang tid i andre sprog. Dog finder Sun/Oracle på deres egen syntaks for dette, som er kludret i forhold til hvordan det i dag er i Groovy, (J)Ruby og Scala. Det er underligt at man ser ud til at have viljen til at indføre de ting som er i disse sprog, men nægter at lære af dem, og introducere den elegante syntaks som f.eks. er i Scala. Sun/Oracle skal igen (med deres store fine tænkehat) bevise at de i hvert fald som et stort klogt firma kan gøre det meget bedre end de små populære sprog. Her tager de i mine øjne fejl.
Et andet eksempel er det enormt kludrede Generics som har hærget Java siden version 1.5. Det ser ud til at blive forbedret, således at man skal skrive mindre, men stadigvæk er det alt for meget at skrive, og det er stadig umuligt at være DRY i Java.
Det vil være rigtig fedt hvis de tilføjer disse features til Java 7, 8 eller 9, men tag nu syntaksen fra noget af det som allerede er elegant (elegance har aldrig være noget hverken Sun eller Oracle har været særlig stærke til).
Classpath forbedringer. module-info.java er Grapes/Grab for Java. Det er skønt, men skal selvfølgelig konfigureres. Det bliver spændende at se om konfigurationen kan deles mellem Maven/Ivy/Grapes og JSR 294 (Java module system). Ligeledes skal det blive spændende at se om OSGi supporten bliver god (altså om module-info.java og bundle manifests bliver compatible). Det virker lidt sært at module-info.java bliver opfundet, når nu manifest alledere indeholder Classpath: attibutten som kan indeholde netop denne information , og at OSGi bundles allerede bruger manifestet til at specificere dette. Men ok så har man vel sat sig mellem Grapes og OSGi???
Java EE 6 Web Profile, ser stadig stor og tung ud, den er i hvert fald større end plain vanilla Tomcat. Faktisk bliver det spændende at se om Tomcat for fremtiden vil blive en EE 6 Web Profile server, og dermed inkludere EJB, CDI og managed beans. Det blvier den vel nødt til med mindre projektet vil dø? Dermed bliver det også spændende at se hvorledes fremtidige version af JBoss og Geronimo ser ud, da de så skal bruge “en halv Tomcat” til at lave en server, da de jo selv indeholder CDI og EJB. Rigtigt gode forsimplinger til udviklingen, men med Spring Framework, Grails o.l er det ikke rigtigt noget som betyder så meget for det som nu er muligt (eller ikke skal laves)har været dagligdag hvis man brugte disse rameworks. Måske gør det det nemmere at være Seam udvikler?
Java EE bevæger sig i den rigtige retning, men ligesom Java SE, går det MEGET langsomt. Der er opløftende, men vi må håbe at Oracle i fremtiden sætter lidt mere damp under kedlerne, så vi kan få innoveret og implementeret teknologien hurtigere, så .NET m.fl. ikke løber helt fra os.
Det må nogle andre skrive om…
NOTE: Vi har domænet Java9 – før Java version 9 er ude!!! Java9 – the future of Java…