Ooit leek de wereld heel eenvoudig. Adepten van de. Net-omgeving konden in heel wat programmeertalen aan de slag, maar zaten wel vast aan Windows. De Java-isten konden hun toepassingen dan weer op een grote verscheidenheid aan systemen draaien ('write once, run anywhere', weet je wel), maar zaten wel vast aan Java. Maar dat is allang niet meer het geval. Op events als JavaOne en zeer zeker ook Devoxx, is in de voorbije jaren dan ook de aandacht voor andere talen op het Java platform met reuzensprongen gegroeid. Meer nog, vandaag kan je van een ontwikkelaar in de Java omgeving eigenlijk een stevige mate van meertaligheid vereisen. En daarbij denken we heus niet aan de andere landstaal, of kennis van het Engels.
...

Ooit leek de wereld heel eenvoudig. Adepten van de. Net-omgeving konden in heel wat programmeertalen aan de slag, maar zaten wel vast aan Windows. De Java-isten konden hun toepassingen dan weer op een grote verscheidenheid aan systemen draaien ('write once, run anywhere', weet je wel), maar zaten wel vast aan Java. Maar dat is allang niet meer het geval. Op events als JavaOne en zeer zeker ook Devoxx, is in de voorbije jaren dan ook de aandacht voor andere talen op het Java platform met reuzensprongen gegroeid. Meer nog, vandaag kan je van een ontwikkelaar in de Java omgeving eigenlijk een stevige mate van meertaligheid vereisen. En daarbij denken we heus niet aan de andere landstaal, of kennis van het Engels. De beschikbaarheid van andere talen dan Java op de Java Virtual Machine (JVM) is zeker niet nieuw. In 1997 werd al gewerkt aan Jython - een implementatie van de Python programmeertaal. Vandaag telt de lijst van talen op de JVM al haast 60 namen, van Ada tot Yeti. De Java-omgeving zelf staat ook meer open voor andere talen, met in de Java 7 JDK de implementatie van de jsr 292, in casu een bijkomende bytecode voor de ondersteuning van 'dynamically typed' talen op de JVM. Een kantelmoment was evenwel de opkomst van talen op de JVM, die zich aandienen als complementair met en zelfs mogelijke vervangers van Java. Allicht de meest besproken taal in deze groep is Scala, de taal die werd ontwikkeld door Martin Odersky aan de Ecole Polytechnique Féderale de Lausanne. Deze taal kreeg heel wat aandacht door de mogelijkheden inzake functioneel programmeren, en zou in een aantal projecten echt Java hebben vervangen. Veteranen van Devoxx weten dat dit event al een paar jaar bijzondere aandacht aan deze taal besteedt, ook dit jaar (inclusief een 'Scala update' sessie). Maar met talen als Scala, Groovy, Clojure, JRuby, AspectJ en andere - stuk voor stuk talen die zich in de voorbije jaren in de kijker hebben gewerkt - is blijkbaar nog niet aan elke behoefte - functioneel, elegantie of wensdroom - voldaan. Er worden immers nog steeds nieuwe talen geconcipieerd en ook op deze jubileumeditie van Devoxx (JavaPolis, voor de veteranen) kunnen bezoekers van deze nieuwkomers proeven. Zo is er Fantom, een taal die ook op JavaOne 2011 aan bod kwam. Op hun site (fantom.org) beantwoorden de auteurs zelf de vraag 'waarom fantom?'. Het doel is een taal voor 'software die naadloos op zowel de Java VM als de. Net CLR draait', inclusief de mogelijkheid om Fantom naar JavaScript te compileren. In de toekomst zou Fantom mogelijk ook op Objective-C voor de iPhone beschikbaar kunnen komen, wordt gemeld. Veel belang wordt gehecht aan de Fantom api's, die een laag tussen de code en de Java/. Net api's vormen en - volgens de auteurs - 'beautiful' zijn. Voorts nemen de auteurs - Andy en Brian Frank - op een aantal punten een 'kerk in het midden'-positie in, zoals inzake 'strong vs dynamic typing' en het 'class/interface'-model ('mixins'). Voorts biedt Fantom de onderhand obligate mogelijkheden inzake functioneel programmeren, closures, concurrency etc. Nog een nieuwkomer is Kotlin, waar eveneens op Devoxx aandacht wordt aan besteed. Het is een absolute nieuwkomer - aangekondigd in juli van dit jaar - en het geesteskind van het Tsjechisch bedrijf JetBrains. De opzet is "het creëren van een Java-compatibele taal, die zo snel als java compileert maar 'sfaer' en meer compact is dan Java.' En in het bijzonder ook minder complex dan de 'meest volwassen concurrent van Java, Scala'. Kotlin compileert Java code, kan Java oproepen en kan door java worden opgeroepen, aldus de site. Een beta wordt eind dit jaar verwacht. Overigens houden alle taalbouwers elkaar scherp in de gaten, want Fantom blogde al over het verschil tussen die taal en Kotlin. Voorts komt ook de taal Ceylon aan bod op Devoxx. Deze taal werd in april van dit jaar voorgesteld door Gavin King, van Hibernate faam, werkzaam bij RedHat. Het doel is een taal die een aantal van Java's aanslepende problemen (onder meer modulariteit) en 'verouderde' elementen moet aanpakken, maar toch makkelijk onder de knie te krijgen door Java en C# ontwikkelaars. Wel wordt geklaagd dat de taal niet compatibel is met Java. Kortom, het is duidelijk dat we allang voorbij het tijdperk van de 'one size [language] fits all' zijn. Dat klinkt logisch en vanzelfsprekend, maar voor heel wat ontwikkelaars zal dit het leven zeker niet makkelijker (maar allicht wel interessanter) maken. Maar het maakt wel events als JavaOne en Devoxx (met de sessies later ook op Parleys.com) zo aantrekkelijk voor ontwikkelaars, want hier kunnen ze haast aan vergelijkend 'talenonderzoek' doen!Guy KindermansHAAST 60 TALEN OP JAVA VM