Jonathan Wage über seinen Einstieg bei Doctrine und die Zukunft des Projekts: „Wir hatten gute Entwickler, aber keine Vision“

Jonathan Wage (Mitte) stand t3n-CTO Martin Herr (links) und Symfony-Day-Initiator Dennis Benkert in Köln Rede und Antwort.
t3n Magazin: Jonathan, als Lead-Developer eines Object Relationship Mappers (ORM) können Sie uns doch sicher gut erklären, was das eigentlich ist.
Jonathan Wage: Ein ORM ist eine Abstraktionsschicht zwischen relationaler Datenbank und der eigentlichen Anwendung. Statt per SQL kann man durch das ORM objektorientiert auf die Daten zugreifen.
t3n Magazin: Sie sind erst 2007 zum Doctrine-Team dazugestoßen und haben dann ziemlich schnell die komplette Verantwortung für das Projekt übernommen. Wie kam es dazu?
Jonathan Wage: Zu dieser Zeit gab es niemanden, der eine komplette Version des Projekts hatte. Wir hatten zwar gute Entwickler, aber keine Organisation, keinen Plan und keine Vision. Dass ich das Projekt übernommen habe, kam letztlich dadurch zustande, dass ich anfing, alles zu organisieren und zu verwalten, was wir bereits hatten und sicherzustellen, dass das Projekt schnell voran kommt.
t3n Magazin: Neben Ihnen arbeiten noch andere Core-Entwickler an Doctrine. Wer sind die anderen und für was sind sie im Projekt zuständig?
Jonathan Wage: Da gibt es zum Beispiel Roman Borschel, der sozusagen das Gehirn hinter dem Projekt ist. Er hat die meisten Ideen für den Code von Doctrine 2 und ist allein dafür verantwortlich, dass wir uns bei der Entwicklung von der Java-Persistance-API haben inspirieren lassen. Auch Core-Entwickler Guilherme Blanco hilft an vielen Stellen, sowohl bei der Entwicklung von Doctrine, als auch bei der Dokumentation.
t3n Magazin: Das Open-Source-PHP-Framework Symfony empfiehlt seit einiger Zeit Doctrine als ORM. Welche Vorteile bietet Doctrine gegenüber anderen ORM-Systemen wie zum Beispiel Propel?
Jonathan Wage: Propel ist im Grunde kein ORM, sondern ein erweiterter Code-Generator, der Funktionalitäten von ORM wie Active Record, Data Mappers und andere nachahmt. Doctrine hingegen ist eine reine ORM-Implementierung.
t3n Magazin: Welche anderen PHP-Frameworks neben Symfony setzen auf Doctrine als ORM?
Jonathan Wage: Spontan fallen mir Zend Framework, CodeIgniter, CakePHP und Agavi ein. Ich bin mir aber sicher, dass ich einige vergessen habe.
t3n Magazin: Die Eigenentwicklung eines ORM kann man wohl als die komplexeste Herausforderung für einen Programmierer bezeichnen, da das ORM anderen Entwicklern in ihren Projekten als Fundament dient und sie entsprechend einen hohen Qualitätsanspruch daran stellen. Auf das ORM muss man sich verlassen können. Wie stellen Sie bei Doctrine sicher, dass keine gravierenden Fehler im Quellcode enthalten sind?
Jonathan Wage: Wir verwenden ein paar Tools, die uns helfen. PHPUnit für das komplette Unit-Testing, Code-Coverage und andere Qualitätssicherungsmaßnahmen. Sismo, um PHPUnit für Continuous-Integration zu integrieren. Unsere Test-Suite wird damit bei jedem Commit gestartet und testet ihn gegen alle unterstützten Datenbanksysteme, um sicherzustellen, dass wir keine Fehler einführen. Phing nutzen wir für das Erstellen von Projekten, von Paketen und für das Deployment. PEAR kommt beim Erstellen der PEAR-Package-Files zum Einsatz, die wir durch Phing generieren lassen. Wir haben übrigens erst letztens einen Blog-Artikel über die Qualitätssicherungsmaßnahmen von Doctrine veröffentlicht (http://bit.ly/ZJdJT).
t3n Magazin: In der letzten Zeit haben Sie einiges getan, um die Erweiterbarkeit von Doctrine zu verbessern. So ist es inzwischen möglich, eigene Doctrine-Extensions zu schreiben und diese auf der offiziellen Website zu veröffentlichen. Welche Erweiterungen würden Sie für Doctrine schreiben, wenn Sie einen Monat Zeit hätten?
Jonathan Wage: Ich würde mehr Extensions schreiben, die sich in den Ergebnislisten-Caching-Layer von Doctrine integrieren, um das automatische Löschen des Caches besser zu steuern, wenn Datensätze verändert werden. Außerdem würde ich gerne an der Integration zwischen Doctrine und der Yahoo-Query-Language-API arbeiten.
t3n Magazin: Doctrine 2.0 setzt PHP 5.3 voraus und macht regen Gebrauch von neuen PHP-Features wie Namespaces. Was sind die wichtigsten Neuerungen in Doctrine 2.0 und was ändert sich für Anwender?
Jonathan Wage: Einfach alles! Nichts ist mehr, wie es war. Das fängt beim Code an und hört bei der Geschwindigkeit auf. In dieser Version haben wir großen Wert darauf gelegt, dass all die aktuell bestehenden Performance-Probleme und Feature-Beschränkungen angegangen werden. Der Code dieser Version wird die Vorlage für viele der kommenden Doctrine-Versionen sein.
t3n Magazin: Haben Sie sich von anderen ORM-Bibliotheken oder anderen Sprachen inspirieren lassen, als Sie die Entwicklung von Doctrine 2.0 geplant haben?
Jonathan Wage: Ja, wir haben uns hauptsächlich an Java Hibernate und der JPA-Spezifikation orientiert.
t3n Magazin: Es gibt Leute, die behaupten, ORMs seien Performance-hungrig und undurchsichtig. Trifft das auf Doctrine zu?
Jonathan Wage: Das trifft auf jedes Framework oder ORM zu. Manchmal muss man eben auf ein ORM oder Framework verzichten und Low-Level-Code schreiben, zum Beispiel, wenn man extreme Anforderungen an die Datenbank-Performance hat.
t3n Magazin: Neben dem Doctrine-Projekt arbeiten Sie auch an einem Symfony-basierten CMS namens Sympal. Was zeichnet das CMS aus und wo liegen die Vorteile gegenüber anderen Open-Source-CMS?
Jonathan Wage: Der größte Vorteil von Sympal ist der Umstand, dass es auf Symfony und Doctrine aufbaut. Die Idee dahinter ist, dem Entwickler die Fähigkeiten eines CMS wie Drupal zu geben und ihm gleichzeitig die Möglichkeiten von Symfony und Doctrine zu bieten. Daher auch der Name. Die Kombination aus beiden schafft ein sehr mächtiges Tool, mit dem Firmen auf der ganzen Welt Projekte einfach und schnell umsetzen können.
t3n Magazin: Sie arbeiten und leben in Nashville, Tennessee. Wie sieht Ihr Arbeitsalltag aus?
Jonathan Wage: Mein Arbeitstag entspricht fast einem normalen, der von 8 Uhr morgens bis 17 Uhr abends geht. In dieser Zeit bin ich immer in meinem Büro. Abends bin ich meistens zu Hause und arbeite dort bis in die Nacht. Manchmal entspanne ich aber auch irgendwo.
t3n Magazin: Was macht man als Open-Source-Entwickler in Nashville, wenn man mal frei hat und keinen Quellcode mehr sehen kann?
Jonathan Wage: Etwas anderes programmieren (lacht). Nein, mal im Ernst. Im echten Leben und im Internet bin ich eigentlich jemand, der es liebt, Dinge zu bauen. Als ich 19 war, kaufte ich mein erstes Haus und jetzt bin ich 24. In den letzten fünf Jahren habe ich es fast komplett renoviert. Außerdem spiele ich Softball. Das Team, für das ich spiele und das ich auch sponsore, wurde nach Doctrine benannt. Außerdem bin ich ein Wasser-Junkie und liebe es, zum See zu fahren und fischen zu gehen oder einfach nur rumzuhängen.