Devoxx 2010: Next Big Language on the JVM

Er is discussie in Java-land. Of beter gezegd: JVM/Java-land. Java als taal zou op z’n retour zijn…


In dit stukje ga ik mijn persoonlijke mening omtrent dit onderwerp neerleggen, daarbij gevoed door een presentatie op Devoxx 2010 waar ik als Javaan vrolijk van werd. Stephen Colebourne ging in op de vraag: wat wordt het volgende grote ding op de JVM? Clojure? Groovy? Scala? Fantom? Volgens Stephen geen van allen… Maar misschien iets anders, als de mensen achter Java in gaan zien dat backwards compatibility ook geschonden kan worden, oftewel: BI-Java (Backwards Incompatible Java). De inhoud van de presentatie is ook in een leesbare blog geschreven: http://www.jroller.com/scolebourne/entry/the_next_big_jvm_language1

Ik denk dat het goed is om voor de toekomst in elk geval vast te houden aan dat ene ding dat Java met zich mee heeft gebracht: de JVM. De JVM biedt een snelle goede oplossing voor “write once, run anywhere” en dat zal in de toekomst alleen maar meer van belang zijn. Ik denk dat het in de discussie over nieuwe talen vooral moet gaan over het programmeren voor de JVM en niet over de JVM zelf.

In de nieuwe talen die ontstaan zie je dat dit zowel functionele als OO-talen zijn. Ieder met hun eigen grammatica en eigenaardigheden, maar vaak met een zelfde doel: efficienter programmeren voor de JVM. Ik kan me dat wel voorstellen, maar in mijn ogen komt er met het idee dat het allemaal efficent moet een nadeel om de hoek kijken. Het komt de leesbaarheid vaak niet ten goede en dat is bij onderhoud, refactoring, debugging etc. iets waar ik grote waarde aan hecht. Het feit dat bij de nieuwe, vooral functionele, talen voor één stuk code vaak meerdere manieren zijn om het op te schrijven zijn baart me zorgen. En wanneer het dan ook nog afhankelijk wordt van een gekozen oplossing elders in de code, zie ik nog meer problemen. Het kan dan wel snel zijn qua ontwikkelen op het moment zelf, maar er kan ook een afhankelijkheid ontstaan van die ene developer die de code geschreven heeft…

Het voordeel dat Java (zoals het nu is) heeft, is dat het in principe door de “inefficiente” code zich laat lezen als een boek en het redelijk eenduidig is. Natuurlijk kan je lelijke en mooie code schrijven, efficient en inefficient, maar hoe je de code ook schrijft… Het laat zich altijd lezen en de werking is altijd goed te analyseren. Het nadeel dat Java alleen wel heeft is dat het door de jaren heen geevolueerd is tot wat het nu is en qua taal alleen maar groter is geworden. Alleen maar groter, omdat het backwards compatible moet zijn. En daar zit mijns inziens de pijn. Daardoor blijven ongelukkig gekozen zaken bestaan…

Op dit moment zijn er vrij veel Java ontwikkelaars die Java niet de rug toe zullen keren omdat dat een verandering is, en veranderen, dat is moeilijk… Daarom denk ik dat het niet onaardig zou zijn om alle slechte dingen van Java eens uit Java te halen en er eens wat goede andere inzichten aan toe te voegen (zoals wat beperkte functionele eigenschappen misschien…?). Wanneer dat onder de vlag Java wordt uitgebracht, zal de community van Java developers dat oppakken omdat het een nieuwe versie van de JDK is. Deze verandering is een stuk beter behapbaar en lijkt mij voor heel veel mensen de juiste polderoplossing…

Java is m.i. simpelweg te groot en mensen te vasthoudend om Java de rug toe te keren en bovendien is lastig te zeggen wat op dit moment de opvolger zal zijn… Omdat ze als paddestoelen uit de grond schieten.

One thought on “Devoxx 2010: Next Big Language on the JVM

  1. Ik ben het helemaal met je eens dat het hoog tijd is dat er (iig éénmalig) een stuk erfenis wordt afgestoten door een niet meer backwards compatible versie van Java uit te brengen.

    Wat je nu vooral ziet zijn heel veel talen die ieder één aspect van Java anders willen aanpakken. Maar wat hen allemaal bindt is de JVM. En het mooie is dat die talen ook allemaal te gebruiken zijn. Maar ze houden één grote gemene deler: Java

    Dus als die backwards incompatible versie eindelijk eens uitkomt kunnen we roepen “De King is dead, long live the King!” en dat zal weer Java zijn 😉

Reacties zijn rijkdom!

%d bloggers liken dit: