Blog

Meine Tage auf der Devoxx: Rückblick auf die Konferenz 2009

Andrew Phillips

Aktualisiert Oktober 23, 2025
11 Minuten

Ich bin gerade von der Devoxx 09 in Antwerpen, Belgien, zurückgekommen, einer Konferenz, die wahrscheinlich als diejenige bekannt werden wird, auf der sich Closures wieder in Java 7 eingeschlichen haben. Obwohl ich keinen besonderen Drang verspürte, für Tag 3 zurückzukehren, gab es in den ersten beiden Tagen mehr als genug interessantes Material, sowohl technisch als auch abstrakt, an dem ich zu knabbern hatte. Hier einige Gedanken und Kommentare zu meinem persönlichen "Teil" der Devoxx.

Andrews Agenda

Was ich gesehen habe (und, für Neugierige, was ich verpasst habe)1:

Mi

  • Keynote: Java, die Plattform für die Zukunft
  • Keynote: Java EE 6 und GlassFish V3: Entwicklung einer Plattform
  • Agile Mythenjäger
  • Die Revolution der Gleichzeitigkeit
  • Traditionelle Programmiermodelle: Steinmesser und Bärenfelle im Google-Zeitalter
  • Halten Sie sich Ihre Optionen offen, auch wenn die Cloud keine ist
  • Verteilte Programmierung auf die Google-Art

Thu

  • Keynote: Wissen wir wirklich, wie man Software entwickelt?
  • Keynote: Die Lücke in der Professionalität schließen
  • Die gar nicht so dunkle Kunst des Performance-Tunings
  • Google Appengine Java - Groovy Baby
  • Traditionelle Programmiermodelle: Steinmesser und Bärenfelle im Google-Zeitalter
  • Verwendung von BTrace und DTrace zur Instrumentierung und Analyse von Java-Anwendungen
  • Leistung für Leistungsscheue

Diese Ankündigung

Ja, es ist schon etwas ironisch, dass ich die große Ankündigung der Konferenz verpasst habe: dass sich Closures vielleicht doch noch in Java 7 einschleichen. Ich hatte nämlich beschlossen, auf Marks Vortrag zu verzichten, weil ich davon ausging, dass er nichts enthalten würde, was er nicht schon anderswo vorgestellt oder gebloggt hatte. So viel zum Thema Instinkt. Es erübrigt sich zu sagen, dass die Neuigkeiten ziemlich schnell durchgesickert sind, und natürlich hat fast jeder eine Meinung zu dieser unerwarteten (gelinde gesagt) Entwicklung. Einige Beispiele2, wie sie aussehen könnten [java] Collections.sort(strings, #(String a, String b) a.length() - b.length()); Collections.sort(strings, #(String a, String b) { return a.length() - b.length(); }); [/java] [java] @Shared int clickCount = 0; button.addActionListener(#(ActionEvent e) { clickCount++; }); [/java]

Was brummt

Angesichts der Tatsache, dass Sun und Adobe "Premium-Partner" der Veranstaltung waren, war es kaum überraschend, dass es eine ganze Reihe von Vorträgen zu JavaFX und Flex gab. Der Auftritt von Oracle war etwas interessanter, da der Schwerpunkt auf den neuen Funktionen der kommenden WebLogic-Versionen lag. Das war natürlich etwas unternehmensmäßiger, als man es von Entwicklerkonferenzen gewohnt ist. Ich persönlich fand es interessant zu sehen, dass sie sich mit einem ersten Angebot, das die Erstellung von Images virtueller Maschinen aus konfigurierten Systemen ermöglicht, für den Bereich der Bereitstellung zu interessieren beginnen. Nach dem, was ich gesehen habe, fehlen dort noch einige wichtige Konzepte (die wir bei XebiaLabs natürlich mit Deployit zu adressieren versuchen), aber es ist interessant zu sehen, dass die Middleware-Anbieter beginnen, diesem Thema Aufmerksamkeit zu schenken. Abgesehen von den Sponsoren waren die Hauptthemen der Konferenz, soweit ich sehen konnte, die "üblichen Verdächtigen" - Nebenläufigkeit, OSGi, Cloud und Scala. Von diesen Themen scheinen Gleichzeitigkeit/verteilte Programmierung und OSGi in den Unternehmen etwas mehr an Bedeutung zu gewinnen (gemessen an der Anzahl der Personen, die sie tatsächlich für reale Projekte zu nutzen scheinen); Scala und Cloud sind nach wie vor etwas, an dem man "interessiert" ist und mit dem man "spielen" kann, das aber immer noch einen leicht experimentellen Charakter hat. Ich kann allerdings nicht sagen, dass ich etwas entdeckt habe, das es nicht schon seit mindestens einem Jahr auf der Konferenz gibt. Keine wirklichen Überraschungen, mit anderen Worten.

Höhepunkte

Professionellste Denkanstöße

Ein gemeinsamer Preis für Ivar Jacobson und Onkel Bob, die beide einen recht kritischen Blick auf den aktuellen Zustand der Softwareentwicklungsbranche warfen und einige zum Nachdenken anregende Bemerkungen machten. Der Hauptpunkt von Ivars Vortrag war, dass es der Softwareentwicklung als Disziplin an einer soliden theoretischen Grundlage mangelt. Sie taumelt von einer (methodologischen) Modeerscheinung zur nächsten, anstatt ein kumulatives Wissen über die besten Praktiken zu entwickeln. Sein Ansatz zur Vermeidung der seiner Meinung nach immer wiederkehrenden Tendenz, das Kind mit dem Bade auszuschütten, besteht darin, Methoden wie Agile in verschiedene Praktiken zu unterteilen. In diesem Rahmen bilden diese die "atomaren" Einheiten und machen es angeblich einfacher, gemeinsame Merkmale verschiedener Methoden zu identifizieren und sie schrittweise zu verbessern. Die Frage, ob die iterative Praxis in z.B. Scrum wirklich dasselbe ist wie die iterative Praxis in einer anderen Methodik oder ob Prozesse wirklich nur "Taschen" von Praktiken sind, zu denen Sie andere hinzufügen können, ohne das inhärente Gleichgewicht zu stören, bleibt unbeantwortet. Auf jeden Fall hat Ivar eine Gruppe von Thought Leaders zusammengetrommelt und ruft zu folgenden Aktionen auf, zu denen alle Entwickler eingeladen sind, beizutragen. Im Gegensatz dazu konzentrierte sich Onkel Bobs Vortrag weniger auf den Prozess und mehr auf die technische Seite der Softwareentwicklung. Sein zentraler Grundsatz: Entwickler müssen lernen, sich mehr wie erfahrene Fachleute zu verhalten. Das bedeutet für ihn unter anderem:

  • Lernen, nein zu sagen (wie oft haben Sie schon einen Arzt sagen hören: "Fff, das wird schwierig, aber wir werden versuchen, Ihre Leber bis morgen fertig zu bekommen.")
  • Das Recht auf eine technische Karriere zu fordern, die die gesammelten Fähigkeiten und Erfahrungen angemessen anerkennt (anstatt Entwickler zu zwingen, Manager zu werden, um voranzukommen)
  • Stets ein "professionell-ethisches" Niveau der Codequalität anstreben(unabhängig vom Geschäftswert)

Ich fand es interessant festzustellen, dass die Einstellungen, auf die Bob sich bezog, am häufigsten in zunftähnlichen Berufen (wie Jura oder Medizin) zu finden sind, deren Praktiken in der Regel eher auf Erfahrung und Tradition als auf harter Wissenschaft beruhen. Aber heben wir uns die Debatte über "Softwareentwicklung: Handwerk oder Wissenschaft?" für eine gesellige Kneipenrunde auf, oder?

Technisch am meisten zum Nachdenken anregend

Rückblickend war der Vortrag von Cameron Purdy nicht mehr und nicht weniger als eine gut vorgetragene, kenntnisreiche Präsentation über die Vorteile von ereignisgesteuerten Architekturen. Die Beobachtung, die er als Einleitung verwendete, fand ich jedoch faszinierend: Programmieren zu lernen ist schlecht für die Skalierbarkeit. Das Argument geht in etwa so: In fast allen Sprachen, die Sie als Programmieranfänger lernen, können Sie etwas schreiben wie: [java] int gesamt = 0; int i = 10; addToTotal(i); // jetzt gesamt = 10 i = 20; addToTotal(i); // jetzt gesamt = 30 [/java] Trival. Aber in unserer "natürlichen" Interpretation dessen, was der Code tun wird, sind die folgenden Erwartungen versteckt:

  • die Anweisungen werden ausgeführt
  • werden die Anweisungen in der geschriebenen Reihenfolge ausgeführt
  • die Anweisungen werden genau einmal ausgeführt

Cameron will damit sagen, dass bei verteilten Systemen diese Anforderungen - garantierte Ausführung, globale Ordnung und exakte einmalige Verarbeitung - so ziemlich die strengsten und damit kostspieligsten Erwartungen sind, die man haben kann. Systeme, die fehlertolerant, frei von Race Conditions und idempotent sind, haben eine viel bessere Chance, gut zu skalieren und zu verteilen.

Bester technischer Inhalt

Vertrauen Sie Google, wenn es darum geht, den Vortrag mit der größten Bandbreite an "coolen Sachen" zusammenzustellen. Gregor Hohpe hielt einen sehr ansprechenden Vortrag über MapReduce, Bigtable, Sawzall und andere, unterbrochen von Erwähnungen von Dingen wie Bloom-Filtern und anderen interessanten theoretischen Konzepten. Das gemeinsame Thema hier war definitiv der Tausch von Funktionalität gegen Skalierbarkeit, mit der Schlussfolgerung, dass wir oft mit viel weniger Funktionalität auskommen können, als man erwarten könnte. Sawzall zum Beispiel führt blitzschnelle verteilte Aggregationen durch, kann aber aufgrund der fehlenden Historie (Sie sehen nur die aktuelle Zeile) nicht einmal Duplikatprüfungen durchführen. Was tun Sie also, wenn Sie feststellen, dass die Ingenieure in der Schokoladenfabrik in Mountain View auch nur das winzige bisschen Funktionalität geopfert haben, das Sie brauchen? Können Sie ein wenig von der Skalierbarkeit von Bigtable für mehrzeilige Sperren zurückgeben oder müssen Sie gleich wieder zu Oracle 11g zurückkehren? Nun, es scheint, dass Google doch eine Transaktions-Engine auf Bigtable aufbaut. Aber das ist sicherlich nicht Open Source!

Beste Präsentation

417 Erwartung gescheitert

Der Preis für schieres Sehvergnügen geht an Doug Tidwells Vortrag über SimpleCloud. Humorvoll, geschickt präsentiert, mit einer guten Mischung aus Beispielen und Konzepten, die in überschaubaren Häppchen serviert wurden, hat mir dieser Vortrag sehr gut gefallen. Die Idee, einen wiederkehrenden Witz einzubauen (in diesem Fall Adam Kofords Reihe von HTTP-Antwortcode-Illustrationen ), ist natürlich nicht neu, aber dieser war wirklich aktuell und witzig.Inhaltlich sieht SimpleCloud wie eine ziemlich anständige Cloud-API aus. Wie nützlich eine PHP-Bibliothek für Java-Entwickler sein kann, bleibt abzuwarten. Wenn Sie eine leistungsstarke, nebenläufige Java-Cloud-Bibliothek mit Unterstützung für viele Cloud-Anbieter suchen, sollten Sie jclouds3 ausprobieren.

Lowlights

Lästigste Eigenschaft

An die Vortragenden aus Nordamerika eine höfliche Bitte: Wenn es möglich ist, lassen Sie bitte Witze oder andere Verweise auf die nordamerikanische Populärkultur weg. Eine fünfminütige Erklärung darüber, wer eine bestimmte Figur in einer amerikanischen Sitcom aus den 70er Jahren war oder was der Sinn einer bestimmten Gameshow war, ist kein guter Anfang für eine Präsentation, die mit einem kurzen Witz beginnen und dann zu dem Thema übergehen sollte, an dem das Publikum tatsächlich interessiert ist. Danke sehr.

Größte Enttäuschung

Da ich für ein Unternehmen arbeite, das weithin für seine Agile-Expertise bekannt ist, habe ich mich auf Scott Amblers Versprechen gefreut, einige der Mythen und Gerüchte rund um Agile anhand von kalten, harten Statistiken zu untersuchen. Was wir jedoch bekamen, war eine blitzschnelle Durchsicht der selbstberichteten Ergebnisse einer Reihe von Umfragen, ohne auch nur den Hauch einer Analyse oder weiteren Erklärung. Es ist zwar nicht uninteressant zu erfahren, dass mehr als 50 % der agilen Teams tatsächlich ein gewisses Maß an Up-Front-Design betreiben, aber ich würde sehr gerne wissen, ob Up-Front-Design tatsächlich zu erfolgreicheren Projekten führt! Es genügt zu sagen, dass mein Kollege und ich den Saal mit vielen Fragen und wenigen oder gar keinen Antworten verlassen haben, ganz abgesehen von der verwirrenden Präsentation vieler der Zahlen.

Eine Anmerkung zu Performance Talks

Wie Sie vielleicht aus meiner Konferenzagenda ersehen haben, interessiere ich mich sehr für diesen ganzen Parallelitäts- und Leistungskram (es würde Sie wahrscheinlich auch nicht überraschen zu erfahren, dass ich auch versuche, bei Multiverse, einer Java STM-Implementierung, zu helfen). Aber nach dieser Runde werde ich Präsentationen zum Thema Leistungstuning wohl für eine Weile auslassen. Nicht, dass die Präsentationen von Kirk oder Holly schlecht oder gar langweilig gewesen wären, sie haben einfach nur die gleichen grundlegenden "Performance Tuning 101"-Themen behandelt, über die jedes Jahr auf jeder Konferenz gesprochen wird. Diese Sitzungen sind in der Regel sehr gut besucht. Es scheint also immer noch eine große Nachfrage danach zu bestehen, zu lernen, wie man einen Thread- oder Heap-Dump erhält oder wie man einen JMeter-Testplan schreibt. Natürlich verstehe ich, dass es schwierig ist, mehr als allgemeine Informationen und Anleitungen zu geben, weil die Leistungsoptimierung so spezifisch für die jeweilige Anwendung ist. Aber am Ende einer dieser Sitzungen habe ich immer das Gefühl, dass ich kaum an der Oberfläche des Wissens dieser Experten über die Anwendungsleistung gekratzt habe.Ich würde zum Beispiel gerne an einer Sitzung teilnehmen, bei der ich diesen Leistungsexperten einfach bei der Arbeit zusehen könnte, wie sie das Problem des Tunings einer echten Anwendung "von Grund auf" angehen.Es würde nicht darum gehen, zu sehen, inwieweit die Anwendung beschleunigt werden kann - das wäre tatsächlich völlig irrelevant. Aber ich denke, man könnte viel lernen, wenn man sieht, wie ein Profi für Performance-Tuning eine solche Aufgabe in der Praxis angeht: wo man mit den Messungen beginnt, welche Tools man verwendet, wie man erste Hypothesen aufstellt usw. Aber natürlich ist es auch nicht realistisch zu erwarten, dass die Leute die "Betriebsgeheimnisse" preisgeben, mit denen sie ihren Lebensunterhalt verdienen. Oh, und an alle JVM-Anbieter da draußen: Bitte denken Sie darüber nach, einige standardisierte Formate für Profiling-Informationen zu entwickeln! Es ist so schade, wenn man sich Demonstrationen von wirklich nützlich aussehenden Tools (wie IBMs Health Center) anschaut und dann feststellt, dass sie nicht mit den Daten arbeiten können, die von der JVM, die Ihr Kunde verwendet, produziert werden.

Zitat der Konferenz

Das Gerücht, Mark habe sich die Syntax für den neuen Schließungsvorschlag im Flugzeug nach Belgien ausgedacht, sorgte für einige Lacher. Mein Favorit war jedoch eine Bemerkung, die Larry Ellison zugeschrieben wird, der als Reaktion auf mögliche Forderungen der EU, mySQL zu verkaufen, gesagt haben soll: "Das 'my' in 'mySQL' steht für Larry's SQL.".

Eine letzte Anmerkung

Nochmals Hut ab vor dem Devoxx-Team. Der Inhalt scheint mehr oder weniger auf einer Stufe mit der JavaOne zu stehen, und dennoch ist die Teilnahmegebühr rund 1000 € niedriger als bei fast allen anderen Konferenzen. Natürlich ist es nicht perfekt: Die drahtlose Verbindung ist genauso wenig verfügbar wie anderswo, und die kulinarisch interessierten Belgier werden das Catering wohl kaum als den Höhepunkt der belgischen kulinarischen Tradition betrachten. Aber immerhin können Sie sich für 1000 € in den vielen guten Restaurants und Bars von Antwerpen satt essen und trinken und haben immer noch genug für blitzschnelles Internet übrig. Für mich ist das immer noch die beste europäische Konferenz.

Fußnoten
  1. Links zu den Folien werden hinzugefügt, sobald sie verfügbar sind. Sie können sich auch Aufzeichnungen der Vorträge auf Stephans Website ansehen.
  2. Weitere Beispiele finden Sie im Blogbeitrag von Cay Horstmann.
  3. Haftungsausschluss: Ich habe selbst ein wenig mit jclouds zu tun gehabt ;-)

Verfasst von

Andrew Phillips

Contact

Let’s discuss how we can support your journey.