T3CON08, T3TD08 und das „Berliner Manifest“: TYPO3 5.0
Robert Lemke eröffnete die TYPO3-Konferenz-Saison mit einem Vortrag zu FLOW3 [1] und TYPO3 5.0 bei der OpenExpo in Zürich. In Gesprächen mit Besuchern und anderen Referenten wurde die Architektur von TYPO3 5.0 gelobt und über die Continuous-Integration-Infrastruktur gestaunt. Interessant ist in diesem Zusammenhang auch der Vergleich zwischen TYPO3 5.0 und Communiqué im Entwickler-Blog von Day Software [2].
In Zürich derart motiviert, fiel die Vorbereitung auf die T3CON in Berlin umso leichter. Das 5.0-Team wollte aber nicht nur eine packende Präsentationen erstellen,
sondern hatte auch ehrgeizige Ziele für das zu
präsentierende Featureset von TYPO3 5.0.
TYPO3-Konferenz 2008 in Berlin
Bereits der Tutorial-Tag vor Beginn der eigentlichen Konferenz zeigte dem 5.0-Team, wie groß das Interesse vieler Agenturen und Entwickler an FLOW3 mittlerweile ist. Etwa 70 Zuhörer verfolgten Robert Lemkes komplett ausgebuchten Vortrag zu „Development with FLOW3“ [3].
Im weiteren Verlauf der Konferenz waren die Vorträge zu „Test-Driven Development with FLOW3“, „Touchless Security with FLOW3“, „Transparent Object Persistence with FLOW3“ und der „Hitchhiker’s Guide to TYPO3 5.0“ ebenfalls sehr gut besucht. In diesen Vorträgen konnten die Besucher ein funktionierendes Security-Framework ebenso bewundern wie ein erstes Backend für TYPO3 5.0.
Ein weiterer Vortrag zu FLOW3 („Continuous Integration for FLOW3“) zeigte, dass auch TYPO3 4.x profitiert: Die von Sebastian Kurfürst aufgesetzte Hudson-Infrastruktur [4] ist in die Forge-Plattform eingebunden und steht allen Projekten dort zur Verfügung. In die gleiche Kerbe schlägt das DEV3-Projekt [5] mit dem Ziel, eine umfassende IDE für TYPO3-Projekte auf Eclipse-Basis zu entwickeln. Darin finden sich sowohl ein FLOW3-Package-Wizard als auch Unterstützung für TypoScript in TYPO3 4.x.
Insgesamt war das Feedback auf die Themen rund um FLOW3 und TYPO3 5.0 sehr positiv, einzig die schwer nachvollziehbare Meinung einiger Besucher, es würde zuwenig für TYPO3 4.x und zu viel für TYPO3 5.0 getan, trübte das Bild.
TYPO3 Transition Days
Dieser Meinung etwas entgegenzusetzen war ein Ziel der TYPO3 Transition Days, die im direkten Anschluss an die T3CON08 in Berlin stattfanden. Nach einem kleinen Planungstreffen im August ließen gut zwanzig Entwickler aus den Core-Teams von 4.x und 5.0 sowie FLOW3 eine Woche lang die Köpfe rauchen. Ergebnis der intensiven Arbeit ist neben einer gemeinsamen Strategie zur Entwicklung von TYPO3 das „Berliner Manifest“ [6].
Das Berliner Manifest |
|
Die Erklärung zeigt die gewonnene Einigkeit und das Verständnis, dass TYPO3 4.x und 5.0 nicht zwei Welten sind, sondern ein Produkt in zwei Versionen. Nutzer, Entwickler und Agenturen sollten sich auf einen Wechsel vorbereiten – Angst vor einer Revolution ist jedoch fehl am Platz.
Die ebenfalls in grober Form geplante gemeinsame Roadmap [7] verdeutlicht die gemeinsame Vorgehensweise und zeigt, wie die weitere Entwicklung erfolgen wird: mit dem Fokus auf neue und gemeinsam nutzbare Features.
Performance, Performance, Performance
###WORKAROUND###
Ebenfalls ein Thema, das manchem an FLOW3 Interessierten Sorgen macht, ist die Geschwindigkeit des Frameworks. Nachdem der Autor auf der Konferenz wiederholt gefragt wurde, ob das 5.0-Team das Thema Optimierung vergessen haben, hier die klare Antwort: Nein.
In der Vergangenheit hat das Entwicklerteam bereits einige Male die Performance-Schraube in FLOW3 angezogen. Außerdem ist sich das Team sicher, dass man die Performance auch in Zukunft weiter optimieren kann und dass dies die richtige Vorgehensweise ist. Denn wie Donald Knuth einst sagte: „Premature optimization is the root of all evil“. Er bezog dies auf 97% der Fälle, in denen Entwickler versucht sind, bereits zu Beginn der Arbeit im Kleinen zu optimieren. Dies, so zeigt die IT-Geschichte, hat jedoch in den meisten Fällen schlecht wartbaren und unnötig komplexen Code zur Folge. Nun wäre es jedoch fatal, die drei Prozent der Fälle zu ignorieren, in denen schon früh an die Leistung und Skalierbarkeit eines Systems gedacht werden sollte. Das 5.0-Team ist sich jedoch sicher, hier richtig zu liegen: Bei der Konzeption von FLOW3 hat das Team versucht, Fehler zu vermeiden, die in anderen Projekten gemacht wurden.
Erste echte FLOW3-Anwendung
Im September besuchte Bastian Waidelich Robert Lemke und den Autor in Lübeck, um weiter am Routing des MVC-Frameworks zu arbeiten. Wenig Schlaf und viel Begeisterung brachten neben einem weiterentwickelten Routing auch eine erste echte FLOW3-Anwendung hervor: Ein Blog [8]. Das Beispiel nutzt zahlreiche Funktionen des FLOW3-Stacks wie Templating, MVC und Persistenz.
Für das nächste Jahr suchen die 5.0-Entwickler derzeit nach Pilotprojekten, die mit FLOW3 umgesetzt werden können. Wer also ein Projekt vor der Brust hat, dass sich als Pilot eignen könnte, sollte Kontakt mit dem Team aufnehmen [9].
RESTful Services
Der Zugriff auf Ressourcen über so genannte RESTful URLs ist seit einiger Zeit in aller Munde. Natürlich geht dieses Thema auch am 5.0-Team nicht vorbei und FLOW3 soll von Anfang an volle Unterstützung für das Bereitstellen und Nutzen von REST-basierten Services bieten. Robert Lemke hat bereits den MVC-Teil von FLOW3 um einen REST-Controller erweitert. Auf dieser Basis wurden bereits erste Tests durchgeführt (siehe unten).
Die REST-Unterstützung in FLOW3 nimmt dem Entwicker immer wiederkehrende Aufgaben wie die Ermittlung der richtigen Action je nach Request-Methode oder des angeforderten Ausgabeformats ab und ermöglicht so eine schnelle Entwicklung.
Die Backends von TYPO3 5.0
Basierend auf der REST-Unterstützung von FLOW3 hat Robert Lemke für TYPO3 5.0 REST-Controller für den Zugriff auf den Content entwickelt. Das Ziel ist es, die gesamte Kommunikation des CMS mit dem Backend so abzuwickeln, um größtmögliche Entkoppelung zu ermöglichen. Dies erleichtert die Entwicklung alternativer Backends enorm, wie Thomas Hempel während der T3CON08 bewies: Vor Ort entstand eine native iPhone-Applikation, die die Navigation durch den Seitenbaum von TYPO3 ermöglicht.
Mit einem von Nils Jeisecke in C++ programmierten Backend auf Qt-Basis und dem ExtJS-basierten Backend aus dem CMS-Package zeigt dies eindrucksvoll die Flexibilität dieses Ansatzes.
Was von 2008 übrig ist…
Den Rest des Jahres wird das 5.0-Team für den Endspurt hin zum Release einer Alpha-Version von FLOW3 1.0 nutzen. Dies sollte genug Zeit sein, um den PHP-Entwicklern die Veröffentlichung einer Beta-Version von PHP 5.3 mit der endgültigen Unterstützung für Namespaces zu ermöglichen, die FLOW3 seit einiger Zeit nutzt.