J-Fall 2009


dinsdag, november 17, 2009

Op woensdag 11 november bezocht ik voor de derde keer de Java-conferentie J-Spring/J-Fall van NLJUG in Spant! in Bussum. Het feit dat er geen sessies over Spring 3, Grails en Groovy waren vond ik overigens erg opvallend (en jammer). De onderwerpen met de meeste sessies waren Java/JDK 7, agile software development, Java EE 6 en JavaFX.

Daarnaast was er ook aandacht voor Comet, OSGi, jBPM, HTML5, parallellisme, Android, Google App Engine, Git, SSO, Adobe Flash Builder 4/Adobe LifeCycle Data Services ES, Google Wave, Eclipse e4, Test-Driven Development en Genetic Programming.

Tijdens de parallelsessies waren er steeds zes sessies tegelijk, dus ik heb lang niet alle sessies kunnen bijwonen. Het volledige programma vind je hier. Hieronder een overzicht van de sessies die ik op deze dag bijgewoond heb met een korte ‘recensie’.

Writing Asynchronous Web Applications (Comet) using the Atmosphere Framework

Jean-Francois Arcand (Sun) vertelde over Atmosphere, waar hij co-auteur van is. Dit framework biedt een abstractielaag waarmee je gemakkelijk gebruik kunt maken van Comet/AJAX Push. Zonder Atmosphere zul gebruik moeten maken van specifieke API’s van je applicatieserver (geen portable code dus!) of je zult moeten wachten tot Servlet 3.0 beschikbaar is met Async support.

Het is echter sterk aan te raden om met Atmosphere aan de slag te gaan, want met de annotaties van Atmosphere schrijf je ook veel compactere code dan wanneer je direct Servlet 3.0 Async support zou gebruiken. Een heldere presentatie met goede voorbeelden. Nou nog een toepassing verzinnen waarbij Comet/AJAX Push van pas zou komen…

Scaling Out with Hadoop and NoSQL

Age Mooij (Xebia) is enthousiast over Scala en NoSQL. Hij is momenteel bezig bij RIPE NCC, één van de vijf beheerders van IP-adressen op het internet, waar ze met een heleboel data werken. Deze data is opgeslagen in gecomprimeerde tekstbestanden, maar in deze vorm is het eigenlijk niet mogelijk om queries te draaien tegen deze data om bijvoorbeeld statistieken te verzamelen. Voor deze klus is de keuze gevallen op de niet-relationele database Apache Hadoop met MapReduce en HBase.

Tijdens de presentatie passeerden echter ook andere key-value, document (CouchDB, MongoDB), column (Cassandra) en graph (Neo4j) databases kort de revue. Een goede introductie in de wereld van NoSQL-databases, maar omdat ik zelf al redelijk bekend was met dit soort databases (en CouchDB in het bijzonder), had ik persoonlijk liever een wat diepgaandere sessie gezien.

The Quest for Parallellism: How To ‘Upgrade’ Your Application

Jan-Hendrik Kuperus (Sogeti) vertelt ons dat alle alarmbellen af zouden moeten gaan op het moment dat je als applicatie-ontwikkelaar new Thread intikt. De boodschap: manage geen threads, maar manage tasks! Als je gebruik maakt van een servlet container wordt er al heel veel werk voor je gedaan, maar verder was de boodschap gebruik te maken van ExecutorServices, Futures en al het moois dat java.util.concurrent.* je verder biedt. Helaas weinig nieuws.

Slides

JDK7: What’s In and What’s Not

Simon Ritter (Sun) praat zijn publiek in sneltreinvaart bij over wat hen te wachten staat in de volgende versie van de JDK: Project Coin (kleine veranderingen in de taal), modulariteit (JSR-294), Project Jigsaw, updates voor concurrency en collections, NIO.2, elliptic curve cryptography en Unicode 5.1, compressed 64-bit pointers, garbage-first garbage collector, Project Da Vinci Machine (extra support voor dynamische talen) en nog wat ander klein grut.

Daarnaast wordt er ook even stil gestaan bij wat er niet in zal verschijnen, waaronder closures, safe rethrow, multi-catch, null-safe operators, large arrays, first class properties en operator overloading. Ook JSR-296 (Swing Application Framework), JSR-295 (Bean Binding) en JSR-277 (Java Module System) hebben het niet gered.

Ik had nog weinig gelezen over JDK7, dus dit was een fijne manier om snel weer helemaal op de hoogte te zijn. De roadmap zegt dat de laatste milestone in februari wordt verwacht, waarna de release candidates zullen verschijnen. Nog even geduld dus!

Slides

TDD As If You Meant It

Willem van den Ende en Rob Westgeest van QWAN gaven als duo een presentatie over een extreme vorm van Test-driven Development. In hun optiek is het het beste om Test-drive Development te doen alsof je het echt meent. In de praktijk betekent dit in het kort:

  1. Schrijf een falende test.
  2. Schrijf code in de body van de testmethode die ervoor zorgt dat de test slaagt.
  3. Refactor de code en pas bijvoorbeeld extract method toe op duplicatie.

Voor de refactorstap hanteerden ze een flink aantal regels, maar helaas staan de slides (nog) niet online, dus die kan ik hier niet reproduceren. Het idee was in ieder geval dat er alleen productie-code mocht ‘ontstaan’ volgens die refactorregels en nooit zomaar omdat je verwacht dat dat de uitkomst ging zijn. Volgens de heren is een bijkomend voordeel dat deze manier van werken vaak ook code-design beter maakt. En natuurlijk braaf na elke verandering (elke regel!) je tests draaien!

Een flink deel van de sessie werd besteed aan een live demo. Het was zeker interessant om de heren op deze manier aan het werk te zien, maar aan het einde van de rit had ik toch het idee dat ze net iets te ver doorgeslagen waren en bijvoorbeeld het draaien van tests na elke veranderingen wel erg veel overhead oplevert. En volgens mij was ik niet de enige in het publiek die met dat idee de zaal verliet. Aan de andere kant vind ik dat ik best wat serieuzer met tests aan de slag mag gaan en dit was zeker een leerzame sessie.

J-Spring 2010 (14 april) heb ik maar vast in de agenda gezet.

One Response to “J-Fall 2009”


  1. Nils Breunese Says:

    Ondertussen blijkt een groot deel van de mededelingen over JDK7 alweer achterhaald. Zie bijvoorbeeld http://blog.finalist.com/2009/11/23/devoxx-2009-heeft-java-toekomst/ voor meer up-to-date informatie over wat er wel en niet in JDK7 verwacht wordt.

Leave a Reply


In order to submit a comment, you need to mention your name and your email address (which won't be published). And ... don't forget your comment!

Comment Form