JavaPolis 2006 dag 1

Gepubliceerd op: 13.XII.2006 00:43 CET
Categorieën: events, java

Yay, Antwerpen! Vandaag, morgen en vrijdag op op het conferentie gedeelte van JavaPolis. Het is druk op de converentie vloer in bioscoop Metropolis!

woensdag 10:17

Op dit moment probeer ik naar een keynote van Omar Tazi van Oracle te luisteren maar het lukt me niet.. Het is de tweede spreker die ik hoor op deze conferentie en ik krijg nu al XML naar m’n hoofd en een heleboel afkortingen met een J erin. Dit is verschrikkelijk! Nu begint hij ook nog webservices te deployen..

woensdag 10:51

Opluchting, Omar verlaat het podium en maakt plaats voor een team van Sun. Eerste spreker is Laurie Tolson, ze vertelt over het onder de GPL verschijnen van de Java Virtual Machine een paar weken geleden. En ergens tussen haar slides, dat Ubuntu Glassfish (Yet Another Application Server) gaat leveren binnenkort, heel cool!

Ze wordt opgevolgd door Simon Ritter en Angela nog wat. Ze demonstreren een paar ongebruikelijke toepassingen van Java ME in de vorm van robotjes (real live robocode!) en een VR handschoen. Grappig. Verder nog wat blah blah over de Java community.

woensdag 12:11

Pauze, voor mij in ieder geval. Ik ben nog helemaal gaar van het Oracle bombardement. Even lekker zitten genieten van m’n nieuwe zwarte MacBook.. Ofwel rake test langs zien vliegen!

woensdag 14:01

Na wat rust en geschuifel door de menigte dan nu eindelijk m’n eerste echte sessie; “When Failure Happens” door Bill Venners ook wel bekend van Artima Buzz. Eigenlijk ging het de hele drie kwartier over exceptions. Bill heeft James Gosling (vader van Java) en Anders .. (van van C#) gesproken over exceptions en het door Gosling geïntroduceerde fenomeen checked exception (exceptions waarvan de compiler afdwingt dat je ze opvangt en geen onderdeel van C#). Uiteraard is Anders tegen en Gosling voor. Anders vind finally-achtige (ensure in Ruby) constructies belangrijker en Gosling legt juist de nadruk op het afhandelen van fouten.

Bill haalt ook nog wat anekdotes aan over hoe fantastisch TDD is, maar geeft wat voorbeelden van dingen die je van te voren niet had kunnen verzinnen en dus vergeten bent in je tests op te nemen.

Lekker praatje, ik heb er niets van geleerd maar Bill Venners is een aardige man die goed kan vertellen.

woensdag 15:13

JRuby! Charles Nutter en Thomas Enebo geven samen een praatje over JRuby, Ruby, Rails en JRuby on Rails. Charles neemt vooral het woord Thomas vult aan met een korte introductie Ruby en het ter plekke geven van een kort demonstratie JRuby on Rails applicatie in elkaar zetten in 3 minuten. Ze beginnen met de Ruby superhelden; Matz, DHH en Why, en als je ze zo ziet staan zijn ze net The Dynamic (programming language) Duo. Het vertrouwen in Ruby straalt er vanaf.

De demonstratie had ik allemaal wel gezien. Behalve een korte demo van Ruby editing in Netbeans met wat simpele refactorings erin. Dat kan best eens heel erg cool worden!

Ene, schaamteloze reclame boodschap, Finalist, daar werk ik voor, organiseerd dinsdag a.s. in Rotterdam een praatje van deze twee helden, kom ook!

woensdag 17:07

Een beetje laat, de sessie was al 20 minuten onderweg, kom ik “Java Performance Myths” door Brian Goetz binnen lopen. Goetz loopt een serie mythen af van Java code constructie die langzaam dan wel sneller zouden zijn en weerlegt deze allemaal door iets te vertellen over hoe de Java VM en compiler tegenwoordig werken.

Hij verteld hoe de garbage collector efficiënter is dan malloc en free in C.

Hoe agressief de Java compiler dode code verwijderd en hoeveel dode code er in typische benchmark code zit en de resultaten van deze metingen dus onbruikbaar maakt als je niet goed oplet. Hij vertelt over dynamische en speculatieve optimalisaties door de JIT compiler en hoe deze de draai tijd van software ondeterministisch maakt.

Hoe dramatisch de kosten van synchronisatie om laag zijn gegaan en daarmee het jammer is dat er een HashMap (niet threadsafe) variant geïntroduceerd is bij Hashtable (wel threadsafe) maar hoe we hier door de hoe compatibiliteits eisen tussen JRE release nooit meer vanaf kunnen komen. Overigens is het krijgen van een synchronisatie lock als deze bezet is (nog) vele malen duurder als deze op dat moment bezet is, maar dan heb je een heel ander probleem dan keihard performance aldus Goetz.

Hij gaat verder over hoe final methodes helemaal niet sneller zijn. Het idee hier was dat er directe calls gedaan kunnen worden in plaats van zogenaamde virtual calls welke langzamer zijn. De compiler is echter zelf veel beter instaat dit te bepalen en kan dit zelfs voor situaties waarin het gebruik van final niet mogelijk was geweest omdat er een andere class is welke deze methode toch override. Het final keyword moet gebruikt worden waarvoor hij gemaakt is, om aan te geven dat een methode niet ge-override mag worden, basta.

De Java VM is zo verschrikkelijk goed aan het worden dat problemen zich nog zeer zelden in dit soort details zitten. Goetz kan hier heel goed over vertellen. Ik heb op het puntje van m’n traptrede gezeten.

woensdag 17:53

Aansluitend geeft Geert Bevin een presentatie over “Web Continuations”. Hij begint met een duidelijk verhaal over wat continuations zijn en illustreert dit met savegames en een paar simpele voorbeelden in pseudocode. Voor wie het niet weet, het is een constructie waarbij de huidige state van een programma opgeslagen kan worden om later weer in verder te gaan, zoals een savegame.

Bevin is de initiator van het Rife project, een full stack web framework, en laat zie hoe je in een Rife actie gebruik kan maken van continuations. Hij illustreert hoe je iets wat je normaal in meerder acties onder moet brengen en aan elkaar moet plakken met sessie data, heel elegant kan doen moet continuations. De hele flow van een serie wizard schermen kan zo heel netjes in een enkele overzichtelijk methode beschreven worden.

Ik vond dit de interessantste sessie. Via de Ruby on Rails podcast had ik al eens van seaside gehoord van Avi Bryant maak nu heb ik eindelijk een live demo gezien van het concept en ben erg onder de indruk. Het sterkt me ook in het idee dat al die diagrammen waar code uit gegeneerd wordt gewoon niet werken. Het is veel belangrijker dat programmeertalen krachtig genoeg zijn, zodat dit soort brandjes-blus-tools niet nodig zijn.

woensdag 22:55

Ik heb een heerlijke dag gehad. Eigenlijk een beetje tegen m’n verwachtingen in, na een half jaar Java vrij te zijn, had ik niet verwacht weer zoveel inspirerende dingen te zien! Morgen meer!