JavaLand 2017

Das Phantasialand Brühl öffnete vom 28. bis 30. März 2017 seine Pforten, um den Besuchern des nun zum 4. Mal stattfindenden JavaLands Eintritt zu gewähren. Und es kamen derer sehr viele: zur Eröffnung wurde verkündet, dass es sich um ca. 1.650 Teilnehmer handelt – ein neuer Rekord! Die Verkündung erweckte aber zeitgleich die Befürchtung, dass es daraufhin an den zwei Vortragstagen sehr eng zugehen könnte. Dies war aber definitv nicht der Fall. In den Sälen und auf dem Gelände des Freizeitparks konnten sich die Teilnehmer sehr gut verteilen, auch bei der Versorgungslogistik (Speisen und Getränke) gab es zumindest keine für mich spürbaren Engpässe.

Direkt nach der ersten, für meine Begriffe sehr guten Keynote, die sich mit dem nötigen Kulturwandel in altehrwürdigen Unternehmen durch Digitalisierung beschäftigte, war gleich mein Vortrag an der Reihe: “Schatten der Vergangenheit: Analyse von Git-Repositories” – natürlich mit jQAssistant. Ein Blick auf die Programmübersicht des Tages zeigte mir, dass mein Vortrag mit einer Chili-Schote markiert war: Teilnehmer hatten das Thema im Vorfeld der Konferenz als “heiss” bewertet. Das ist eine Einschätzung, die ich naturgemäß teile, zeitgleich aber den Druck verstärkte, ggf. hohe Erwartungen zu erfüllen und eine gute Präsentation abzuliefern. Mit den Besucherzahlen der aktuellen Hype-Themen konnte sich mein Vortrag am Ende zwar nicht messen, aber es waren trotzdem viele Leute da, es gab eine Menge Spaß und das Publikums-Feedback war sehr positiv! Einer der Gründe: die Präsentation bestand zum großen Teil aus einer Live-Demonstration von Abfragen auf Daten des Git-Repositories, das nicht ganz zufällig die Server-Komponente des offiziellen und quelloffenen Konferenz-Planers “DukeCon” beinhaltete. Die Autoren der Anwendung selbst waren anwesend – dank Ankündigungen in sozialen Medien im Vorfeld sicherlich auch nicht zufällig… Sie bestätigten die gefundenen Erkenntnisse, wie z. B. Expertenwissen über Technologien oder stets in den Ergebnissen wiederkehrende Hotspots – mehr Überzeugungskraft für einen Vortrag kann sich ein Sprecher einfach nicht wünschen!

Nachdem ich meine “Pflicht” also mit großer Freude erfüllt hatte, konnte ich verbleibende Zeit der Konferenz entspannt nutzen. Interessanterweise schaffte ich es nur zu wenig anderen Vorträgen, die sich für mich eher zufällig thematisch im Umfeld von Java EE ansiedelten. Interessant war dabei, dass wie schon bei der JavaOne 2016 das Thema Microservices in diesem Umfeld auf sehr starkes Interesse stößt, allerdings das zur Verfügung stehende Ökosystem teilweise noch einige Lücken aufweist. Dies wurde im sehr gut besuchten Vortrag meines JUG Saxony Mitstreiters Thorben Janssen deutlich.
Darüber hinaus standen natürlich insbesondere die aktuellen Schlagwörter Java 9, Reactive, Container & Co. auf der Konferenzagenda. Ich widmete mich jedoch eher den persönlichen Gesprächen mit bestehenden oder potentiellen jQAssistant-Nutzern bzw. anderen Sprechern und warf einen Blick auf die Community-Aktivitäten (Code-Golf, Meet The Libs), um dort ein paar Inspirationen für den JUG Saxony Day zu erhalten. Im Ganzen war ich damit so ausgelastet, dass ich es zum wiederholten Mal nicht auf die Achterbahn schaffte! Vielleicht klappt das dann ja endlich im kommenden Jahr…

Apropos: den Termin habe ich mir schon im Kalender vorgemerkt, die Tore des nächsten JavaLands werden vom 20. bis zum 22. März 2018 geöffnet sein!

Slides zum Vortrag:
“Schatten der Vergangenheit: Analyse von Git-Repositories” (PDF)

Fotos zum JavaLand 2017:

JavaOne 2016

Konferenzen sind der ideale Ort, um aus dem Entwickler-Alltagsgeschäft auszubrechen und wieder mal ein Gefühl dafür zu bekommen, welche Hype-Wellen gerade über das Ökosystem rollen oder gerollt werden. Die diesjährige JavaOne 2016 in San Francisco – das ist die Oracle-Hauskonferenz – machte hier keine Ausnahme und ein Blick auf die Agenda der angebotenen Sessions und Tutorials zeigte deutlich die angesagten Schlüsselworte: Cloud, Microservices, Reactive Programming sowie IoT.

Etwas abseits des Mainstreams hatte ich das Vergnügen, eine Session gestalten zu dürfen: “jQAssistant: Verify Your Design and Architecture“. In dieser lagen die Schwerpunkte einerseits auf der Einführung in Philospohie und Funktionsweise des Werkzeugs, insbesondere aber in der Modellierung von Architekturkonzepten in Codestrukturen bzw. deren Abbildung im Graphen sowie der Formulierung von Regeln in ausführbarer Dokumentation (Asciidoc) für Entwickler. Das unmittelbare Feedback war sehr positiv, insbesondere der letzte Aspekt stieß wiederum auf sehr reges Interesse. Dieser zeigt einen gangbaren Weg auf, die zwar gebräuchlichen, aber naturgemäß stets veralteten Wiki-Seiten bzw. Word-Dokumente abzulösen.

Ich konnte insgesamt nur zwei volle Tage vor Ort sein. Einen Abend davon nutzte ich, um jQAssisant bei der Neo4j-Meetup-Group von San Francisco vorzustellen. Dabei lag der Schwerpunkt auf der Exploration bestehender Anwendungsstrukturen sowie der Gewinnung bzw. Bewertung individueller Metriken.

Leider konnte ich die Keynote der JavaOne mit den sehnsüchtig erwarteten Aussagen zur Zukunft von Java EE nicht besuchen. Das Ergebnis ist mittlerweile bekannt: es gibt ein Commitment zum Standard, Java EE 8 soll Ende 2017 verabschiedet werden und stellt im Wesentlichen eine Auffrischung mit kleineren (Configuration) und ausbleibenden Ergänzungen (MVC) dar. Zwischenzeitlich wird bereits an Java EE 9 gearbeitet, welches – wie die Gerüchteküche es im Vorfeld auch bereits vermutete – eine Neuausrichtung wagt und ein reaktives Programmiermodell anvisiert. Interessant ist dabei der Zeitplan: das Ergebnis soll bereits ein Jahr später verabschiedet werden, was selbst ein Oracle-Mitarbeiter in einem persönlichen Gespräch als zu ambitioniert und unrealistisch einschätzte. Wer den Spezifikationsprozess über die Jahre verfolgt hat, kann diese Auffassung bestätigen. Es ging Oracle offensichtlich erst einmal darum, ein Signal für Java EE zu senden und das sollte trotzdem gelungen sein.

Parallel dazu war deutlich erkennbar, dass man sehr bemüht ist, den Boden für eine hohe Akzeptanz des kommenden Java 9 zu bereiten. Es wurden viele Sessions angeboten, die sich den neuen Features (z. B. JShell) und der wahrscheinlich “heißesten” Änderung widmete: der Modularisierung mit Project Jigsaw und den damit ggf. verbundenen Inkompatibilitäten bei der Migration bestehender Anwendungen. Es wurde auffallend oft (aber zurecht) betont, welchen Stellenwert eine auf Stabilität orientierte Weiterentwicklung hat und dass bisher keine bereitgestellte Funktionalität entfernt wurde. Mit Java 9 wird hier allerdings, wenn auch sehr langsam, ein Paradigmenwechsel eingeleitet: um eine Modularisierung der Plattform zu ermöglichen, wurden 6(!) public-Methoden entfernt. Es wurde deutlich gemacht, dass sich der Prozess des Entsorgens von Altlasten in kommenden Versionen fortsetzen wird. Das wurde insbesondere in einer Fragestunde unter dem Titel “Meet the JDK architects” (mit Mark Reinhold, John Rose und Brian Goetz) sehr deutlich. Diese Session war überhaupt sehr aufschlussreich und unterhaltsam, weil zuweilen mit recht trockener Ironie argumentiert wurde. Getrieben durch Fragen von Entwicklern wurde klar, welche Werte bei der Weiterentwicklung von Plattform und Sprache eine Rolle spielen: Stabilität und ein nachweisbarer Mehrwehrt für neue Features. Die Untersützung von Ahead-Of-Time-Compilation oder Currying wurden unter letzterem Betrachtungswinkel als klar “Low-Priority” deklariert, währenddessen eine Verringerung des Overheads beim Thread-Handling in Aussicht gestellt wurde, um reaktiven Programmiermodellen bzw. entsprechenden Frameworks entgegenzukommen. Die Antwort auf die Frage nach dem “biggest regret” in der Geschichte von Java war übrigens wenig überraschend “Serialization”, verbunden mit der Aussage, dass der aktuelle Mechanismus die mit Abstand meisten Security-Issues verursacht hat…

Im Hinblick auf die Agenda der Konferenz möchte ich abschließend noch auf eine kleine Wahrnehmung am Rande hinweisen: es gab bekanntermaßen vor nicht allzu langer Zeit Spekulationen über eine möglicherweise unsichere Zukunft von JavaFX. Dem entgegen stand aber eine spürbare Menge der JavaOne-Sessions, die sich diesem Thema widmeten. Ähnlich optimistisch fiel dazu auch die Einschätzung in einem Panel zu RIA-Technologien aus, in welcher u. a. auch JavaFX als Basis für Cross-Plattform-Entwicklung im Bereich mobiler Geräte diskutiert wurde.

Slides zu meiner Session:
jQAssistant: Verify Your Design and Architecture (PDF)

Impressionen zur JavaOne 2016 in San Francisco:

Eindrücke von der GeeCON 2016 in Kraków

Die GeeCON fand vom 11. – 13. Mai 2016 im Multikino in Kraków statt. Der Name der Konferenz weckt schnell Assoziationen zu “Geek” und das ist offensichtlich auch so beabsichtigt: sie richtet sich an Entwickler, die mit Technologien basierend auf der Java Virtual Machine arbeiten, und neuen Ansätzen bzw. Entwicklungen aufgeschlossen gegenüberstehen. Damit bietet sie ein sehr gutes Umfeld für einen Vortrag über jQAssistant, welcher auch seinen Weg in die offizielle Agenda fand und mir die Möglichkeit gab, das Werkzeug einem sehr interessierten Publikum zu präsentieren. Offensichtlich fiel das Thema auf fruchtbaren Boden: am Ende der Präsentation gab es so viele Fragen und Diskussionen, dass es nur unter Schwierigkeiten möglich war, das Notebook einzupacken, um Platz für den nächsten Sprecher zu schaffen.

Aufgrund zeitlicher Restriktionen konnte ich leider nur an einem von drei Konferenztagen teilnehmen, so dass die Möglichkeiten, sich andere Vorträge anzusehen, beschränkt waren. Hervorheben möchte ich jedoch gern “Scaling microservices at Gilt” von Adrian Trenaman. Er schilderte basierend auf mehrjährigen Erfahrungen sehr deutlich und in klaren Worten die Motivation hinter der Migration hin zu einer Microservice-basierten Architektur, den nicht ganz geradlinigen Weg dahin sowie die aufgetretenen Probleme und notwendigen Transformationen in der Organisationsstruktur und konnte dies insbesondere auch mit nachvollziehbaren Metriken untermauern.

Interessant war im Übrigen die Wahl des Veranstaltungsortes für die Konferenz: es handelte sich um ein Multiplex-Kino mit großen Platzkapazitäten (die trotzdem leider für einige Vorträge nicht ausreichend waren) und hervorragende Technik – ich habe meine Slides bzw. die Entwicklungsumgebung noch nie in dieser Größe und Auflösung gesehen! Auch andere Sprecher zeigten sich entsprechend beeindruckt.

Abschließend soll ein herzlicher Dank an das Organisationsteam gehen, das Programm war vielseitig und die Stimmung unter den Teilnehmern sehr gut. Kurzum: ich komme gern wieder!

Slides zum Vortrag:
“jQAssistant – Verify Your Design And Architecture” (PDF, 1MB)

Fotos zur GeeCON 2016:

Mit jQAssistant in Wien

Vorträge auf Konferenzen und in User Groups erfüllen zwei wichtige Rollen: Zuallererst geht es natürlich darum, das eigene Thema dem anwesenden Fachpublikum zu präsentieren. Fast interessanter ist es jedoch, mit den Teilnehmern ins Gespräch zu kommen: man erhält unmittelbares Feedback zum präsentierten Ansatz und muss sich teils messerscharfen Nachfragen und Kritiken stellen, die widerum dabei helfen, den eigenen Ansatz zu validieren und die eigenen Argumente zu schärfen.

Das Konferenzjahr 2016 wurde mit einem Ausflug nach Wien eröffnet. Dort ergaben sich gleich zwei Möglichkeiten für den Kontakt mit dem Publikum: Am Abend des 18. Januar präsentierte ich jQAssistant im Rahmen eines gemeinsamen Meetups der Enterprise Java Group Wien und der Graph Database Austria vor einer Zuhörerschaft, die sich vorwiegend aus Architekten und Entwicklern zusammensetzte. Wir verbrachten zwei sehr intensive Stunden mit Präsentation, Demonstration und Diskussionen, die vor der eindrucksvollen Kulisse der Wiener Hofburg wie im Fluge vergingen.

An den folgenden beiden Tagen fanden in Wien die Software Quality Days 2016 statt. Oliver Fischer (E-Post Development GmbH) und ich waren mit unserem Vortrag “Clean Structures – Kommunikation von Architektur- und Designregeln” Teil des offiziellen Vortragsprogrammes. Inhaltlich beschäftigt sich dieser mit den Frage, warum die Definition und die Durchsetzung von Strukturierungsregeln auf verschiedenen Ebenen in größeren Projekten unabdingbar ist, woran Ansätze wie Peer-To-Peer-Kommunikation oder Wikis scheitern und wie jQAssistant Lösungsmöglichkeiten durch ausführbare Entwickler-Dokumentation sowie unmittelbares und vor allem verständliches Feedback bei Regelverletzungen liefern kann. Die Diskussionen im Anschluß zeugten von einer sehr positiven Rezeption unserer Ideen. In persönlichen Gesprächen danach konnten wir sehr spannende Anregungen aufgreifen. Komplettiert wurde der positive Eindruck durch zahlreiche weitere interessante Vorträge im Konferenzprogramm. Fazit? Die Reise nach Wien lohnte sich auch abseits seiner Sehenswürdigkeiten und Kaffeehäuser!

Slides zum Vortrag:
“Clean Structures – Kommunikation und Durchsetzung von Architektur- und Designregeln” (PDF, 1 MB)

Das JavaLand 2015 im Rückblick

Nach der erfolgreichen Premiere im letzten Jahr stand bei mir Ende März die zweite Auflage der Konferenz auf der Agenda. Der auf den ersten Blick ungewöhnliche Veranstaltungsort – das Phantasialand Brühl – stellte dabei einen passenden Rahmen für die einerseits ernsthafte Auseindersetzung mit dem Themen aus dem Java-Universum dar, vermittelte aber eben auch jenen Spaßfaktor, welcher der Community Leben einhaucht. Leider habe ich es aber auch in diesem Jahr nicht geschafft, eine Runde auf der Achterbahn (“Black Mamba”) zu drehen…

Der Grund hierfür lag schlicht und einfach darin, dass eine Konferenz eben mehr ist, als nur ein Vortragsprogramm abzuarbeiten: Leute treffen, Ideen austauschen, Feedback geben bzw. einsammeln, Kontakte austauschen und dabei das eine oder andere alkoholfreie bzw. -haltige Erfrischungsgetränk zu sich zu nehmen. Da kann es auch schon passieren, dass die Vorbereitung der Beispiele für den eigenen Talk kurzerhand auf Mitternacht verschoben werden muss. Mein Vortrag “Yes We Scan – Softwareanalysen mit jQAssistant” (Folien als PDF, präsentierte Besipiele folgen) war zu meiner Freude sehr gut besucht und es ergaben sich im Nachhinein – trotz des kurz bevorstehenden Konferenzendes – sehr fruchtbare Diskussionen, beispielsweise über die geeignete Visualisierung von Strukturen. Allein dafür hat sich die Reise gelohnt!

Darüberhinaus gab es natürlich eine Menge anderer spannender Talks. Der allgegenwärtigen IoT-Welle konnte ich noch einigermaßen ausweichen und mich eher auf Qualitätsaspekte konzentrieren. Ich möchte an dieser Stelle den Vortrag “Abhängigkeiten managen with degraph” von Jens Schauder besonders herausheben: Einerseits trifft das von ihm präsentierte Thema natürlich einen besonders empfindlichen Nerv bei mir, andererseits war es aber die Form des Vortrags, die ich als sehr praxisnah und äußerst anschaulich empfunden habe: Der Vergleich einer Code-Basis mit der Organisation von Socken in Kleiderschränken oder die Benennung von Abhängigkeitsmustern als “Wäscheleinen” ist sehr bildhaft und eingängig!

Negativ getrübt wurde der Eindruck im JavaLand durch diverse technische Probleme mit Mikrofonen und den fehlenden WiFi-Zugang – obwohl bei näherer Betrachtung letzteres vielleicht sogar eine positive Auswirkung auf die Kommunikation der Teilnehmer gezeigt haben könnte.

Alles in allem war das JavaLand 2015 eine überaus gelungene und lohnenswerte Veranstaltung, die mich mit vielen Eindrücken und Ideen nach Hause entlassen hat – der Termin im nächsten Jahr (08.03. – 10.03.2016) ist im Kalender bereits blockiert.

 1 2 3 4 Vor