JavaPolis 2006 dag 2

Gepubliceerd op: 14.XII.2006 01:11 CET
Categorieën: events, java

Koffie en heerlijke gebak dingetjes met chocolade erop en room erin, hmmmm.. De koffie is goed verzorgd hier bij JavaPolis!

10:12 donderdag

Keynotes, keynotes, keynotes.. Eigenlijk zijn de keynotes hier erg slecht. Met uitzondering van misschien van mevrouw Tolson gisteren, want dat was ook echt een keynote.

Nu zit ik al meer dan een half uur naar Erich Gamma (ja die van de Gang of Four) te luisteren over hoe de eclipse group bij IBM z’n software produceert; daily builds voor het component team, weeklies voor het hele team, milestones voor de community en releases voor de gebruikers. Ik had het allemaal al eens gehoord op OSCON vorig jaar en hoef het al helemaal niet in een keynote te horen.

Ik denk dat de organisatie gewoon te grote time slots geeft en dat de sprekers dan maar besluiten om een volledige presentatie op te gaan lepelen. Maar het kan nog erger!

Voor Gemma sprak Marc Fleuri, van JBoss, hij komt op in jaren negentig hip-hop outfit en Public Enemy over de geluidsinstallatie om de aandacht te trekken maar verzand al heel snel in een saai verhaal over Open Source en geld verdienen. Mij wordt het helemaal niet duidelijk waarom hij voor Public Enemy, kan wel raden, maar ben na 3 minuten al helemaal niet meer geïnteresseerd.

Gelukkig heb ik net genoeg Wifi om zelf te vermaken.

12:06 donderdag

Grails! Of wel Groovy on Rails. Graeme Rocher vertelt over het Grails project dat hij opgestart heeft. Ik moet eerlijk zeggen dat ik er een beetje lacherig over deed voor ik naar deze presentatie ging. M’n vraag had ik al klaar, “is jullie werk overbodig geworden door JRuby on Rails”, maar naarmate z’n presentatie vorderde werd m’n vraag al beantwoord. Grails is een prachtig stuk werk. Het is een full stack web framework dat naar Rails en Django en waarschijnlijk ook Rife een prachtige omgeving biedt om op het Java platform web applicaties te bouwen. Maar.. tja.. je moet wel van Groovy houden en dat doe ik (nog) niet.

Maar okee, wat is Grails allemaal. Het is een met Spring geknoopt framework dat je instaat stelt op een Rails achtige manier applicaties te bouwen. Dus reloadable (reload in de browser draait nieuwe code), alle componenten testbaar en een console om dingetjes uit te proberen. Klinkt als of je gewoon kan gaan JRuby-en on Rails maar Grails biedt veel extra’s; alle componenten zijn geïmplementeerd via Spring en op een transparante manier ingepakt in Groovy classes met alle dynamische foefjes die je in Rails ook tegen komt. Je kan op een hele elegante manier taglibs maken, in Groovy, welke reloadable zijn gemakkelijk gebruik van elkaar kunnen maken (DRY!).

Waarom is dit gaaf? Omdat dit echt integreert in het Java platform. Zo kan je applicaties als war-files uitleveren. Je kan, is de default geloof ik, je model door hibernate af laten handelen, Grails verzorgt de automatische mappings zoals Rails dat doet maar bestaande hibernate modellen kunnen ook in Grails code gepakt worden. Nu heb je ook hibernate transacties en andere fancy shit. Dit GORM component kan natuurlijk in de bijgeleverde console gebruiken en zo kan je, ala Rails, je hibernate model commandline manipuleren, dat is zo handig dat zelfs buiten een Grails project zou willen kunnen.

Ik ben overtuigd, Grails is cool en verdient veel meer aandacht dan het nu krijgt. Als het gebruik zou maken van JRuby in plaats van Groovy zou het mijn Java web platform zijn. JRuby on Rails doet, door z’n oorsprong, veel te veel zelf en is daarom niet zo goed geïntegreerd als je zou willen. Vooral ActiveRecord valt in deze categorie, er zijn verschrikkelijk goede ORM’s voor Java deze via Spring wrappen is een veel beter oplossing van een nieuwe introduceren welke eigenlijk niet thuis hoort op dat platform.

14:12 donderdag

Lunch was weer middelmatig maar voldeed. Nu DWR, een component uit de Spring beweging om Ajax verkeer mogelijk te maken tussen browser en server. Ik heb van de zomer al een presentatie hierover gezien door Bram Smeets en was toen ook erg onder de indruk van de schoonheid waarmee ze het Ajax probleem opgelost hebben.

Deze presentie is anders. Joe Walker (spreker) en Geert Bevin (computer jockey) bouwen ter plekken een spel, Battleships!, een multi player shooter zoals zeeslag met chat. Vanuit de zaal is het mogelijk om met Wifi op de versie te spellen welke op dat moment ontwikkelt wordt. Erg stoer en vooral dapper!

Ze maken gebruik van reverse Ajax een nieuwe feature in DWR 2.0. Reverse Ajax is een manier om vanaf de server calls te doen naar de browser, ook wel push genoemd. DWR ondersteunt twee soorten, passive en active. In deze eerste, passive, modus worden berichten naar de browser opgespaard tot dat de browser weer contact opneemt met de server en in de active modus wordt er een lijn naar de browser open gehouden om berichten door heen te drukken. De enige webserver die dit op dit moment efficiënt kan is Jetty om dat deze requests waar niets op gebeurd kan parkeren andere webservers zullen vrij snel uit hun sockets lopen.

Mooi spul! Dat wil ik ook in m’n JRails web framework! ;)

15:12 donderdag

Phobos! Nog een web framework? Ja! Fantastisch toch!? Deze is in JavaScript geschreven! Scripting rules!

Ludovic Champenois vertelt met een bijna ondraaglijk zwaar Frans accent over het Phobos project. Nog een MVC web framework naar het voorbeeld van Rails en andere vlotte web frameworks. Het doet model via JPA, maakt naast Controller-View style (met een variant op JSP) ook CGI style request afhandeling mogelijk, DOJO/jMaki dingen erin en kan applicaties in war-files uitleveren.

Na Grails zie ik niet veel nieuws. Tot Ludo het verhaal wat breder trekt en verteld over hoe verschrikkelijk snel Rhino is (de in Java 6 mee geleverde JavaScript engine) en hoe er hard gewerkt wordt om het debuggen van JavaScript transparant in Netbeans te laten verlopen. Er wordt heel hard gewerkt door het Netbeans team om scripting een prettige beleving te maken, vooral JavaScript en Ruby. Netbeans geeft je zelfs een hele “Phobos Server” omgeving waar allerlei zaken voor rond Phobo’s applicatie geconfigureerd kunnen worden en waar je zelfs de scripts zelf aan kunt passen.

Toch is deze oplossing erg intrigerend, vooral als je rich web apps gaat bouwen. Zo kan je bijvoorbeeld, als de browser het ondersteund, je validaties welke je op de server doet in de browser hergebruiken. Hier zie ik nog wel wat onverwachte wendingen uitkomen..

16:42 donderdag

Ik ben moe.. heeeeel moe.. Maar toch ben ik het praatje over Closures binnen gelopen. Neal Gafter geeft een heel helder verhaal over wat closures zijn en waarom Java deze nodig zou hebben. Ik zelf kan niet meer zonder sinds ik verlieft geworden ben op Ruby en hoef niet overtuigt te worden maar in slaap komen lukt niet.

In Java zijn closures iets lastiger omdat Java strong typing heeft en checked exceptions, beiden moeten afgehandeld worden en dat levert toch niet zulke fraaie code op als in Ruby. Toch is Gafter met z’n, work-in-progress-preposal, erg goed geslaagd in het vinden van een elegant oplossing. Hij is een goede spreker en slapen komt er helemaal niet van.

Zie javac.info voor het voorstel van Neal.

17:51 donderdag

Nu ben ik op. Ik ga laat de laatste sessie ronde zitten. Getver, ik heb m’n vest ergens laten slingeren en kan hem nergens terug vinden..

20:01 donderdag

Na een echte zak Belgische frieten laat ik me toch overhalen om ook nog naar de BoF meeting over closures te gaan. Een klein groepje, van ongeveer 15 man en Neal Gafter, er is dus ruimte om Neal persoonlijk aan de tand te voelen. Er worden een hoop waarom-doe-je-het-niet-zus-en-zo vragen gesteld en Neal bewijst dat hij lang over het onderwerp na gedacht heeft en illustreert z’n bevinden met wat voorbeelden.

Erg leuke sessie en het leek erop dat iedereen die aanwezig was achter Neal z’n voorstel staat. Nu is het tijd voor een Belgisch biertje, een tripel of misschien wel de quadruppel, in de stad. Morgen ga ik naar huis, er staat niets meer op het programma waarvoor ik naar Metropolis af wil reizen.