De toekomst van Java

Als het web rondneust in blogs. Of je kijkt naar de portofolio van uitgeverijen. Dan wordt de trend voor de java wereld zichtbaar.
Op de JVM zijn meerdere programmeertalen beschikbaar. En in projecten worden die steeds vaker gebruikt.
Dat proces is eigenlijk al lange tijd gaande. Een ervaren java programmeur kent meerdere talen en technologieen. Tot voor kort waren dat html, css, sql, xml, ant/maven. Aangevuld met javascript, spring, hibernate/jpa, ...
Daar komen nu ook andere programmeertalen bij.  Bijvoorbeeld Groovy, JRuby, Scala, Clojure. Die talen worden ingezet naast  Java of in plaats van Java

  • Groovy en JRuby worden ingezet in combinatie met hun productieve webframeworks: Grails en Rails.
  • Scala en Clojure zijn functionele talen (FP),
    Met FP kun je parallel programmeren en DSL's maken; geschikt voor backend, cloud of andere complexe toepassingen

 
De vraag wordt dan: Welke taal moet je na Java leren?
Ik zou zeggen: Scala

  • Scala  bevat zo'n beetje alle concepten die ook in andere talen voorkomen. Zodat je via Scala kunt doorstomen naar JRuby, Clojure, ..
  • In Scala kunt je op een OO manier werken, die op Java OO lijkt.
    Daardoor begint de leercurve voor een Java programmeur relatief vlak.  Later kun je stap voor stap de FP concepten inbreien.
  • Scala leeft in het Java ecosysteem, dus alle frameworks en bibliotheken zijn toegankelijk. Vanuit Java kun je Scala aanroepen en vanuit Scala kun je Java aanroepen. Je kunt Scala als onderdeel van een Java project inzetten. En dit past weer in de trend om de beste taal/tool te gebruiken, die aansluit bij het soort probleem. 
  • Scala werkt ook onder .NET.