De JavaOne van 2014 werd van meet af aan neergezet als ‘bigger and better’. Lekker Amerikaans natuurlijk, maar er was geen woord van gelogen. Het bezoekersaantal leek te zijn gestegen en er heerste een goede vibe.
De plaats van handeling van deze editie van JavaOne was dit jaar verdeeld over twee hotels in het centrum van San Francisco. De keynotes waren op alternatieve locaties. De openingskeynote op zondag was in het Moscone Convention Center (thuisbasis van grote broer Oracle OpenWorld dat gelijktijdig werd gehouden) en de zogenaamde Community Keynote op de afsluitende donderdag werd in het Marriott Marquis hotel gehouden.
Officiële bezoekersaantallen zijn niet gegeven, maar de schattingen lopen uiteen tussen de 8.000 en 10.000 bezoekers. Het aanbod aan onderwerpen was zoals vanouds veelzijdig. In totaal (keynotes, technische sessies, hands-on labs en bird-of-a-feather sessies) waren er ruim 500 sessies om uit te kiezen. Dat aantal werd nog groter als je beschikte over een combi-pas voor Oracle OpenWorld (OOW). In dat geval waren er zelfs enkelen duizenden sessies te bezoeken, verdeeld over vele locaties in de stad.
Naast een grotendeels vertrouwd format met vooral veel technische sessies en tutorials waren er dit jaar een aantal nieuwe onderdelen in het programma. Zo was er bijvoorbeeld een Agile track, waarin ook duidelijk aandacht aan 'proces' en de meer softe kant van ons vak werd gegeven. Eigenlijk is het wel opvallend dat dit nog nieuw is, want op zowel J-Fall als op vele andere conferenties zien we een dergelijke track met aanpalende onderwerpen aan ons vakgebied al veel langer. Ook nieuw dit jaar was een onderdeel genaamd IGNITE. Een concept dat je misschien zult kennen van O'Reilly conferenties, zoals OSCON. Hierbij krijgen sprekers 20 slides met maximaal 5 minuten spreektijd, waarbij de slides automatisch iedere 15 seconden verspringen. IGNITE sessies gaan meestal over niet-Java gerelateerde passies. Een leuke manier om sprekers eens op een heel andere manier te leren kennen en soms nog hartstikke leerzaam ook.
De zaterdag voorafgaand aan JavaOne stond in het teken van Java Kids Day. Een grote groep vrijwilligers onder aanvoering van de Amerikaanse afdeling van Devoxx4Kids heeft die dag zo'n 175 kinderen begeleid in onderwerpen als Mindcraft modding, Arduino, Python, Java en Lego Mindstorms.
De JavaOne keynotes zijn verdeeld in drie onderwerpen: tijdens de opening volgt er een strategy update en meteen daarna de technical keynote. Op de afsluitende dag van de conferentie is er nog een community keynote waarin vooral de rol van de Java community wordt onderstreept. Dus zeg maar de bijdrages aan Java die niet door Oracle worden gedaan, maar door andere bedrijven, vrijwilligers, etc. Ook worden traditioneel een aantal van de prijswinnaars van bijvoorbeeld de Duke's Choice Awards in het zonnetje gezet. De belangrijkste highlights van de verschillende keynotes lees je hier onder.
Strategy Keynote
Oracle benadrukte tijdens de strategy keynote dat community engagement één van de key metrics is waarmee ze haar succes intern meet. In het afgelopen jaar waren er zo'n 80 officiële, nieuw geregistreerde Java User Groups bijgekomen wereldwijd en dat geeft aan dat er nog veel community beweging op en rondom het Java-platform zit. Ook hebben Oracle Java evangelisten dit jaar meer dan ooit deelgenomen aan sessies en bijeenkomsten. Bijvoorbeeld veel sessies die als onderdeel van de Java 8 tour zijn georganiseerd ter ere van de launch van de nieuwe Java SE versie eerder dit jaar.
Oracle benadrukte dat de launch van Java SE en Java ME eerder dit jaar volgens planning is verlopen en gaf aan veel uptake van deze nieuwe versies te zien. Er werd gememoreerd aan het feit dat Java 8 de eerste release van Java is, die van het begin tot eind volledig onder de verantwoordelijkheid van Oracle heeft plaatsgevonden. Iedereen werd vervolgens aangespoord om te blijven upgraden naar de laatste versie van Java. Om nog eens te benadrukken hoe belangrijk dit is werden voorbeelden met lambda expressies gegeven en werden er uitspraken van bedrijven en benchmarks aangehaald, waarmee werd onderstreept hoeveel code-reductie en performancewinst er met Java 8 te halen valt. Dit is deels ook zonder dat je expliciet nieuwe en geavanceerde features van Java 8 toepast: de JVM zelf maakt gebruik van nieuwe hardware-faciliteiten (waar bijvoorbeeld fork/join van profiteert) en kan daarmee meer dan 20% betere performance halen zonder dat je zelf een regel code aanpast.
Major updates voor Java SE verschijnen ieder half jaar (u20 is net uit, u40 en u60 zijn al gepland voor 2015). Java SE 8u20 bevat een aantal nieuwe tools: Java Advanced Management Console, Java Mission Control 5.4 en een MSI Enterprise JRE Installer. Op het gebied van performance brengt deze update string de-duplication, garbage-first (G1) garbage collector, en Nashorn server-side JavaScript optimalisaties.
Ondertussen is ook het werk aan Java 9 begonnen. Java SE 9 is gepland in het voorjaar van 2016 en heeft Jigsaw (modularity), HTTP 2.0 en JSON ondersteuning, cloud voorzieningen en ahead of time compilation als belangrijkste thema’s. In Java SE 9 gaat voor het eerst in het bijna 20-jarige bestaan van Java sprake zijn van het actief verwijderen van API’s. Classes en methodes die in sommige gevallen al heel lang deprecated zijn, zouden dan wel eens concreet uit het platform kunnen verdwijnen. Daarmee wordt de last van backwards compatibility heel langzaam een beetje verminderd. Welke vaart dit concreet zal lopen valt nog even te bezien, maar opzienbarend is het wel. Het werk aan Java 9 vindt volledig in openheid plaats en early access builds zijn nu al te downloaden van http://jdk9.java.net.
Het thema van de JavaOne van dit jaar was: 'Create the Future'. Iets wat vooral bleek te slaan op de rol van Java als lijm in de Internet of Things (IoT) wereld. Op het gebied van IoT, mobiel en embedded heeft het Java-platform inmiddels heel wat in de aanbieding. Allereerst is er Java Card voor hele kleine omgevingen (Credit Cards, Security Badges en andere smart cards). Als we iets groter gaan qua beschikbare resources (geheugen, opslag, verwerkingscapaciteit en batterijduur) is Java ME Embedded de volgende Java variant voor toepassing op IoT devices, smart pens, feature phones en voor domotica. Java ME is bij ontwikkelaars veelal onbekend. Oracle hoopt dat te veranderen, ondermeer door Java ME een pure subset van Java SE te laten zijn in plaats van een exotische, verre neef. Tijdens JavaOne werden Java ME Embedded 8.1 EA gepubliceerd, met ondersteuning voor Freescale FRDM-?K64F devices naast onder meer Raspberry Pi en Qualcomm, en met betere ondersteuning in NetBeans. ME 8.1 draait in slechts 190 KB geheugen. Java SE Embedded (Profile) is een subset van Java SE die kan worden toegepast in omgevingen die wat ruimer zitten qua resources, maar die niet de volledige Java SE API library behoeven. SE Embedded maakt gebruik van een minimale Hotspot VM uitvoering. Iedereen die Java SE kan programmeren kan ontwikkelen met Java SE Embedded, al zul je af en toe tegen een beperking aanlopen. De evolutie van SE Embedded omvat de ontwikkelingen van het SE platform naast specifieke ondersteuning voor hardware platforms en verdergaande beperking van de ‘footprint’ en slimme versnelling van de opstarttijd van de JVM.
Volledig aan de andere kant van het Java spectrum bevindt zich Java EE. Dit platform heeft net een nieuwe release achter de rug in de vorm van Java EE 7 en er wordt momenteel gewerkt om alle ideeën en specs voor de nieuwe versie op de rit te krijgen. Belangrijke onderdelen van Java EE 8 (ruwweg gepland voor eind 2016 / begin 2017) zijn de nieuwe MVC JSR (die het MVC patroon native onderdeel van Java EE wil gaan maken), Servlet 4.0 (dat HTTP 2.0 en SPDY ondersteuning gaat bieden, net als Java SE 9), JMS 2.1, JSF 2.3, CDI 2.0, JSON Binding, Security en JAX-RS 2.3. JCache, de specificatie van caching op Java EE servers, is ook onderdeel van Java EE 8. Deze specificatie was net niet op tijd klaar voor Java EE 7, maar is inmiddels wel gepubliceerd. Ook andere JSR's zullen gepubliceerd en geïmplementeerd worden, voordat de hele Java EE 8 specificatie is afgerond. GlassFish 4.1 is recent overigens gereleased, met naast de volledig Java EE 7 implementatie ook ondersteuning voor JMS over WebSockets, WebSockets 1.1, certificering met Java SE 8 en CDI 1.2. Ook hier zien we dus tussentijdse updates van Java EE specificaties.
Technical Keynote
Traditioneel is de technical keynote het onderdeel waar de meeste developers naar uitkijken. Wat is er nieuw of is er binnenkort te verwachten en zou er nog een grote verrassing komen? Die grote verrassingen zijn er de laatste jaren niet meer zoveel geweest en dat is tegelijk een goed en een slecht teken. Veel ontwikkelaars verwachten ieder jaar toch wel iets nieuws en zijn teleurgesteld als er niets komt. Aan de andere kant kun je van een taal en een platform dat volgend jaar zijn twintigste verjaardag gaat vieren niet verwachten dat er nog ieder jaar revolutionaire wijzigingen zullen zijn.
De technische keynote begon met een terugblik op de evolutie van de taal Java en zoomde vooral verder in op Java SE 8. In de vooruitblik op toekomstige versies van Java SE werd alvast gehint naar een aantal zaken die we zeker kunnen gaan verwachten. Het lang verwachte Project Jigsaw, dat modularisatie van de JDK gaat geven, lijkt er nu toch eindelijk te gaan komen in Java SE 9. Ook werd er een tipje van de sluier opgelicht van project Panama dat foreign functions, data layout control en arrays 2.0 aan Java moet gaan toevoegen.
Een ander hoogtepunt in de technical keynote waar ieder jaar naar wordt uitgekeken is 'The demo’. Dit is een terugkerende traditie van de laatste paar JavaOne's in de vorm van een technisch uitdagend project, dat onder leiding van twee Oracle engineers wordt uitgevoerd. We hebben de afgelopen jaren al heel wat geeky knutselprojecten gezien. Dit keer was het een ‘Java car’: een IoT project in de vorm van een compleet dashboard van een auto met pedalen, stuurwiel en display, alles uiteraard volledig door Java aangestuurd. Tijdens de demo liep de auto vast (dat was dan weer een beetje jammer) en moest het systeem gereboot worden om de ‘demo gods’ tevreden te stellen.
De technical keynote eindigde helaas in een enorme domper, doordat er zover over de beschikbare tijd heen was gegaan waardoor de keynote zo’n beetje halverwege moest worden afgebroken om plaats te maken voor de keynote van OpenWorld. Gelukkig werd het restant van de technical keynote op donderdag, voorafgaand aan de community keynote, afgemaakt.
Community Keynote
Highlights van de community keynote bestonden uit een korte recap van het Devoxx4Kids event, waarbij enkele enthousiaste kinderen op het podium mochten vertellen over hun avonturen met het hacken van Mindcraft, Lego Mindstorms en aanverwante zaken. Ook was er aandacht voor de winnaars van een IoT challenge die Oracle voorafgaand aan JavaOne heeft gehouden als follow-up op de Massive Open Online Course (MooC) op het gebied van Java embedded, Raspberry Pi en IoT. Hieraan hadden een kleine 3.000 developers deelgenomen. De winnaars van de challenge kregen een geheel verzorgde reis naar JavaOne en vertelden trots over hun inzendingen, die zich voornamelijk in de hoek van home automation afspeelden. Zo was er een werkplek die zichzelf aanpaste qua licht, comfort en sfeer aan de hand van de gebruiker en was er een volledig geautomatiseerde omgeving voor kamerplantjes die vervolgens genoeg licht en water kregen.
Java gaat dit jaar zijn twintigste levensjaar in en volgend jaar zal die leeftijd groots gevierd worden. Details werden er nog niet over prijsgegeven, dus we moeten het voorlopig doen met een handvol stickers die werden uitgedeeld. Over verjaardagen gesproken, de Java Community Process (JCP) organisatie viert dit jaar haar vijftiende verjaardag. Dit werd wel alvast uitgebreid gevierd tijdens de JCP party op maandagavond, met onder andere een speciaal optreden van een voor de gelegenheid gevormde Java all-star band, The NullPointers, met daarin een aantal bekende gezichten uit de Java User Group en Java Champions communities. Hoe goed ze ook hun best deden, ze stonden helaas in de schaduw van de oer-Amerikaanse rockband Aerosmith, die de eer had het traditionele appreciation event op te luisteren. Hoewel deze rock-opa’s al stevig op leeftijd zijn, werd er een spectaculaire show neergezet waar de spetters vanaf vlogen en waar menig liveband een puntje aan kon zuigen.
Je kunt alle keynotes overigens on-demand terugkijken via [1].
Meanwhile… The Other Side of Town
Zoals bekend deelt JavaOne San Francisco met Oracle OpenWorld (OOW). OOW is waar de enterprise marketing machine van Oracle tienduizenden klanten en partners onthaalt op aankondigingen, demonstraties, feestjes en grootspraak over de rug van concurrenten, zoals SAP en SalesForce die het flink moesten ontgelden. Sommige thema’s op OOW komen enige tijd nadat JavaOne hier al aandacht aan heeft gegeven en soms is het andersom. Multitenancy, het delen van fysieke resources door verschillende “tenants”, is al enkele jaren een belangrijk thema voor Oracle, met name in cloud omgevingen. Hier moet schaalbaarheid en lage TCO worden bereikt door meerdere partijen binnen dezelfde omgeving te hosten, maar ze moeten daarin wel vergaand van elkaar gescheiden worden. De Oracle Database 12c release introduceerde multitenancy in de database, WebLogic 12.2.1 zal dat doen met partitions op Java EE Server niveau en de volgende stap is multitenancy in de JVM. Dit laatste is overigens niet een nieuw onderwerp, want IBM is er al minstens sinds 2012 mee actief, zie [3]). Multitenancy leidt tot application density (efficiënter gebruik van vooral geheugen en CPU). De eerste indicaties uit het WebLogic team wijzen op een factor 5 tot 10 verbetering van deze density, met name door veel slimmer class loading te doen en veel minder duplicate objecten te instantiëren. Een klein nieuwtje: sinds JavaOne is WebLogic 12.1.3 gecertificeerd voor Java 8 (maar nog niet volledig Java EE 7 compliant).
Big Data werd uitvoerig besproken, vooral aan de hand van Big Data SQL connector. Hiermee kan vanuit de relationele Oracle Database met normaal SQL niet alleen de relationele data worden benaderd, maar kunnen ook documenten op Hadoop’s HDFS als external table in de query worden meegejoind. In lijn met Impala, Hive, Presto en Hortonworks legt Oracle dus een relationele SQL laag over big raw data. En dat allemaal met de zeer rijke Oracle SQL taal, inclusief analytische en pattern-matching functies en recursieve joins. Big Data komt hiermee een stuk meer binnen bereik van de gemiddelde Oracle Database-gebruiker.
Opvallend was de aandacht vanuit Oracle voor (server side) JSON en REST en ook JavaScript en Node.js. Zowel de nieuwe Oracle Mobile Cloud Service, aankomende versies van Service Bus en SOA Suite en zelfs de Database ondersteunen deze technologieën. Oracle SQL kan data rechtstreeks uit JSON documenten queryen. In het voorjaar komt Oracle zelfs met een Node.js cloud service, naast de bestaande WebLogic Cloud Service.
Cloud was uiteraard het belangrijkste onderwerp van OOW. Oracle kondigde (voor het derde jaar op rij) een uitgebreide collectie cloud services aan: van Storage en Compute (IaaS) tot Java, Database, Mobile, Document, Developer (PaaS) en tientallen applicaties (SaaS). De voornaamste PaaS services zijn (in tegenstelling tot vorige jaren) nu wel beschikbaar. Het deployen van Java EE applicaties op basis van een Oracle database is eenvoudig, maar niet gratis (afgezien van de eerste maand trial). IBM maakte gebruik van haar slot in de zondagse Keynote sessie voor een plug van de BlueMix cloud dienst die wel volledig gratis kan worden gebruikt ([2]). Oracle gebruikt overigens als belangrijk onderscheidend vermogen dat het platform dat je on premise gebruikt exact hetzelfde is als het Cloud platform en dat je dus eenvoudig applicaties van PaaS naar on premise en terug kan schuiven.
Indrukken van een First Timer
Onder de schrijvers van dit artikel waren enkele JavaOne first-timers. Hun indrukken van de JavaOne week: San Francisco is een fantastische stad om een week te verblijven. Het openbaar vervoer is erg goed: voor 20 dollar heb je een retourtje vliegveld/centrum met de BART (een soort metro) en voor nog geen 30 dollar kun je een week lang onbeperkt met alle bussen en trams reizen. Zoals elk jaar zijn de hotelkamers in het centrum enorm duur. Zo’n 400 dollar per nacht voor een eenvoudige kamer is geen uitzondering. Een interessant alternatief wanneer je met een groep komt, is het huren van een huis via Airbnb. JavaOne als conferentie is erg goed georganiseerd. Op elke hoek staat iemand om je te helpen en overal is redelijk goedwerkend gratis WiFi. De sprekers en sessies zijn over het algemeen van goede kwaliteit. Hoeveel je uit de sessies haalt, ligt voor een groot deel aan jezelf. Je moet echt goed de tijd nemen om je eigen schema samen te stellen door niet alleen naar titels van talks te kijken, maar ook naar de sprekers te kijken en de abstracts te lezen. Een van de straten direct naast het Hilton is afgezet voor het ‘Duke’s Cafe’: een strook van ongeveer 100 meter vol loungebanken en een bar. Hier kun je de hele dag gratis koffie krijgen en vanaf 14.00 uur zelfs gratis bier. De netwerkmogelijkheden zijn enorm. De sprekers zijn erg benaderbaar, alhoewel ze direct na een sessie vaak wel enigszins bestormd worden. En als al dat technologiegeweld je nog niet genoeg is, kun je zo’n beetje elke avond wel op een feestje terecht. Kortom, JavaOne is zonder twijfel één van de vetste Java-events van het jaar en is de tijd en kosten echt waard. Zeker als je met een groep collega’s gaat is het naast een heel leerzame week ook enorm gezellig.
Conclusie
Hoewel het predicaat "bigger and better" niet voor alles op ging deze week was het zeker een solide conferentie die smaakt naar meer. JavaOne is en blijft een belevenis die iedere Java developer eens mee zou moeten maken. Het is natuurlijk onmogelijk om in een conferentieverslag alle onderwerpen uit de meer dan 500 sessies te behandelen. Gelukkig zijn alle sessies opgenomen en worden deze in de komende maanden op Parleys.com gepubliceerd. Hou daarvoor het @Java Twitter account in de gaten. Dan kun je ook als je er niet bent geweest toch nog een hoop van de conferentie meekrijgen.
Links
[1] https://www.oracle.com/javaone/live/on-demand/index.html#javaone [2] https://ace.ng.bluemix.net/ [3] http://www.slideshare.net/Graeme_IBM/jvm-multitenancy-javaone-2012