Interview mit Mark Struberg

Neuigkeiten von der Insel  –  0 Kommentare

Es gibt viele interessante Menschen in der Java-Community, die mit ihrem Engagement in Java Specification Requests (JSRs) und Open-Source-Projekten die Entwicklung vorantreiben. Einige von ihnen möchte ich hier nach und nach vorstellen. Diesmal habe ich mit Mark Struberg über seine tägliche Arbeit, seine Aufgaben als Mitglied der Apache Software Foundation und verschiedene Apache-Projekte gesprochen.

Mark, erzähle uns doch ein bisschen über dich. Wie bist du zur Softwareentwicklung gekommen, und was machst du heute?

Mark Struberg

Haben wir echt so viel Platz? Durch meinen großen Bruder bin ich schon Anfang der 80er in Kontakt mit meinem ersten Computer gekommen (ZX81, dann C64). Während zu Beginn das Spielen im Vordergrund stand (Spy vs Spy, yeah!), erwachte schnell auch das Interesse an der Programmierung. Zuerst natürlich mit Basic. Später wurde dann aus Zeitschriften Bytecode abgetippt – oft nur um zwei Ausgaben später aufgeklärt zu werden, dass sich ein Fehler eingeschlichen hatte. Aber dadurch kam ich dazu, selbst ein wenig Assembler zu programmieren. "God Save The Queen, 8,1".

Später kam dazu noch Erfahrung mit einem Atari Mega-ST eines Nachbarn, aber dafür hab ich den Amiga komplett ausgelassen. Zu dieser Zeit habe ich mich auch weniger mit Computern beschäftigt, sondern mehr mit diskreter Elektronik (HTL für Nachrichtentechnik). Ende der 80er kaufte ich dann mit dem Geld, das ich in zwei Monaten in einem Ferienjob bei einem Elektriker verdient hatte, ein 286er und begann mit DOS-Programmierung (wer weiß noch, was INT 21 ist?).

Den Einstieg in die Softwareindustrie hatte ich mit Mikrocontrollern (8051, Z80 und PIC), bei denen ich sowohl die Platine (PCB) als auch die Software für Industriesteuerungen erstellte. Später kamen dann noch NeXT (an der TU Wien), OS/2 (1.2, 2.0, 3.0), Unix (DEC Alpha, HPUX, AIX, später Linux) in Banken, Versicherungen, Leasingunternehmen etc. sowie native Windows-Programmierung dazu. Meinen Java-Einstieg hatte ich 1996 und seit Anfang 1999 arbeite ich überwiegend mit Java.

Was machst du privat, wenn du nicht gerade in der Softwareentwickelung unterwegs bist?

Noch mehr Software :). Ich habe das Privileg, dass mir meine Arbeit Spaß macht. Und das lebe ich in etlichen Open-Source-Projekten aus. Und dann bleibt auch noch Zeit für meine Familie, Jiu-Jitsu und ein wenig Bass-Geklimpere.

Business und Open Source im Einklang

Und womit verdienst du deine Brötchen?

Großteils werde ich von Firmen als "Feuerwehrmann" in großen Java-EE-Projekten eingesetzt. Zum einen habe ich ja selbst an vielen Java-EE-Teilen mitgearbeitet (CDI-Spezifikation, OpenWebBeans, TomEE, MyFaces, BVal, Geronimo, OpenJPA etc.) und dadurch also sehr viel Erfahrung, wie die dort eingesetzten Technologien wirklich funktionieren. Ein wenig bildlicher: Ich kann also das dicke Flugzeug nicht nur fliegen, sondern kann auch erklären, warum die Kiste nicht vom Boden kommt.

Zum anderen kann ich darüber hinaus das Flugzeug auch noch selbst reparieren. Oft werde ich zum Beispiel von Firmen gebucht, die entweder Apache Tomcat beziehungsweise TomEE oder IBM WebSphere einsetzen. Beide verwenden ja sehr viele der Open-Source-Projekte, die ich selbst (zum Teil sogar maßgeblich) mitentwickelt habe. Die Firmen zahlen mich also für Fehlerbehebungen und funktionale Erweiterungen in Open-Source-Projekten, die sie produktiv verwenden. Und zwar löse ich die Probleme nicht nur 'irgendwie', sondern ich kann als Apache-Committer die Lösung direkt im Original-Sourcecode einpflegen. Somit ist gewährleistet, dass auch in Zukunft alles funktioniert. Das bisschen Zeit, das mir die Firmen bezahlen, steht dem großen Vorteil gegenüber, dass die Änderungen im echten Produkt stattfinden und somit nicht bis zum Sanktnimmerleinstag vom Kunden selbst in einem Fork weitergepflegt werden müssen. Ich habe also das Privileg, für die Arbeit an meinen Open-Source-Projekten zumindest zum Teil entlohnt zu werden.

Ein weiterer nicht zu unterschätzender Aspekt meiner Open-Source-Tätigkeit ist, dass ich dadurch viele Ausnahmetalente kennen lernen durfte. Von denen kann man nicht nur täglich eine Menge lernen – man kann sie auch bei akuten Problem um Rat fragen. Und dieses Netzwerk kann einem gerade in großen Projekten schnell mal viele Mannjahre an schiefgegangenen Entwicklungsaufwänden ersparen.

All das Genannte gilt natürlich nicht nur für mich, sondern für alle Techniker, die nicht immer nur dem letzten Hype nachlaufen, sondern die Techniken tatsächlich selbst anwenden und gewillt sind, dem Warum nachzugehen. Denn nur so kann man meiner Meinung nach die Vorteile mit den immer vorhandenen Nachteilen einer Technologie abwägen.

Arbeiten bei Apache

Du bist ja auch ASF Member, was sind dabei deine Aufgaben? Arbeitest du den ganzen Tag an Apache-Projekten?

Als ASF Member ist man ein normaler Committer. Meine Meinung hat also in normalen ASF-Projekten nicht mehr oder weniger Gewicht wie die anderer Committer. Man ist aber zusätzlich ein berufenes "Vereinsmitglied" und hat bei den jährlichen Versammlungen eine gültige Stimme, wenn es um strategische Abstimmungen der gesamten Foundation geht.

Und ja, ich arbeite tatsächlich täglich mit Apache-Projekten. Aber ich denke, das macht fast jeder Java-Programmierer, da in fast jedem mir bekannten Produkt das eine oder andere Apache-Projekt verwendet wird. Als Beispiel: Glassfish basiert auf einem Tomcat und benutzt einen Großteil des Apache-OSGi-Stacks. WebSphere hat zwar eine eigene Servlet Engine, verwendet aber ansonsten sehr viele Teile von Apache. Und selbst bei JBoss findet man derer viele.

Mit welchem Projekt beschäftigt du dich aktuell am meisten, und was sind dabei deine spannendsten Aufgaben?

Meine "Hauptprojekte" sind sicher OpenWebBeans, DeltaSpike und TomEE. Daneben gibt es unzählige Projekte, bei denen ich aushelfe, wann immer ich für einen Kunden etwas selbst benötige. Apache OpenWebBeans ist ein CDI Container (Context and Dependency Injection, JSR 299, JSR 346, JSR 365), also der "Kern" moderner Java-EE-Server. CDI stellt dabei wirklich nur den Kern der Funktionen bereit, bietet aber viele Schnittstellen für flexible Erweiterung. Und Apache DeltaSpike ist eine Sammlung solcher portablen CDI-Erweiterungen (Extensions). Portabel bedeutet hier, dass DeltaSpike auf allen bekannten Java-EE-Servern läuft. Und darüber hinaus funktionieren viele Features sogar in Java SE!

OpenWebBeans ist der CDI-Container des Java-EE-Servers Apache TomEE. Und so verwundert es nicht, dass ich auch dort als Committer eingeladen wurde.

TomEE ist ja ein noch recht junger Applikationsserver. Was unterscheidet ihn von anderen, und wo kann man mehr darüber erfahren?

TomEE ist – verglichen mit anderen Java-EE-Servern – 'invers' aufgebaut. Es ist ein einfacher Apache Tomcat, der um Java-EE-Funktionen erweitert wurde. Dementsprechend ist er sehr schlank und fühlt sich in der Administration genauso an wie ein normaler Tomcat. Und ist auch genauso schnell. Das sieht man auch sofort in der Größe: TomEE hat in etwa 30 MByte, während 'klassische' Java-EE-Server oft mehrere hundert MByte benötigen (und das für dieselben Funktionen).

Mehr Informationen findet man entweder auf unseren Mailinglisten bzw. auf der Dokumentationsseite.

Entwicklung im Java-EE-Umfeld

Kannst du uns einen kleinen Ausblick geben? Wann wird es eine für Java EE 7 zertifizierte Version geben? An welchen Java-EE-8-Features arbeitet ihr aktuell?

TomEE 7 ist soweit fertig. Allerdings gibt es (bedingt durch ein rechtliches Hick-hack mit Oracle) derzeit kein Java EE 7 TCK für Apache. Aber wir arbeiten gerade gemeinsam mit Oracle daran, dieses rechtliche Problem aus der Welt zu schaffen. Das aktuelle Alpha-Release wird aber schon von einigen Kunden produktiv verwendet.

Bezüglich Java EE 8 sind wir vor allem bei OpenWebBeans an der CDI-2.0-Implementierung aktiv. Und natürlich ist Tomcat 9 einmal mehr sehr aktiv. Wer also HTTP2 ausprobieren möchte, ist herzlich willkommen, tc9 anzutesten.

Verfolgst du noch weitere Projekte?

Arquillian ist ein guter Testansatz, wenn es darum geht, unterschiedlichste Szenarien innerhalb einer Testsuite abzudecken (wie bei DeltaSpike). Wobei ich persönlich zum Testen von Business-Projekten aber meist DeltaSpike TestControl verwende. Einfach weil ich bei einem klassischen Kundenprojekt nicht für jede Testklasse ein eigenes Szenario habe, sondern alle meine Tests immer auf den gesamten Classpath gehen.

Ansonsten noch Wayland und natürlich Docker.

Es gibt aber auch viele Bereiche, von denen ich überhaupt keinen blassen Schimmer habe, zum Beispiel mobile Entwicklung oder JavaScript. In diesem Bereich gibt es sehr viele interessante Projekte, aber man kann eben nicht alles machen.

Wo kann man dich finden, wenn man sich mit dir über deine Projekte austauschen möchte?

Ich bin fast täglich in diversen IRC Channels auf irc.freenode.net zu finden (#openwebbeans, #deltaspike, #cdi-dev, #openejb). Daneben hab ich noch den Twitter handle @struberg.

Vielen Dank für das Interview und weiterhin viel Spaß und Erfolg bei deinen Projekten.