Sicher ist gar nichts

Jürgen Kuri vom Computermagazin c’t brachte es im Zusammenhang mit der NSA-Affäre auf diese einfache Formel. Nun hat TYPO3 absolut nichts mit der NSA-Saga zu tun, ich habe ich diesen Titel gewählt, weil er trotzdem irgendwie passt. Wie man liest, wurde das Erscheinungsdatum von TYPO3 Version 6.2 LTS um fast vier Monate verschoben, nämlich auf den 25. März 2014. Gleichzeitig wird der Support für die TYPO3 Verison 4.5 LTS bis zum März 2015 verlängert. Das ist eine gute und eine schlechte Nachricht zugleich. Positiv ist, dass man eine stabile Version präsentieren möchte, die TYPO3 endlich wieder zu dem macht, wofür es einmal stand. Negativ ist, dass diese Nachricht erneut geeignet ist, das Vertrauen in ein bislang bewährtes CMS weiter zu untergraben. Was mich bei TYPO3 seit geraumer Zeit stört, ist unter anderem Folgendes und darauf werde ich in diesem Artikel auch eingehen.

  • Die Zunkunft sowie die weitere Unterstützung von TemplaVoila ist, obwohl sie mit über 330.000 Downloads insgesamt und über 6.700 Downloads in der aktuellen Version 1.8 zu den meistverbreiteten TYPO3-Extensions überhaupt zählt, recht ungewiss. Zwar wird darauf hingewiesen, dass TV auch in kommenden Versionen von TYPO3 unterstützt werden wird, das hört sich aber leider eher wie ein Lippenbekenntnis an, weil man allenthalben den „guten“ Ratschlag hört, künftig besser etwas „anderes“ zu verwenden. Ganz sicher werde ich „etwas anderes“ verwenden, wenn es denn sein muss, aber ebenso sicher nicht mehr TYPO3. Ich habe nämlich wenig Lust, mir in drei Jahren möglicherweise erneut anhören zu müssen, dass dieses „andere TYPO3 Konzept“ schon wieder nicht mehr zu verwenden sei, welcher Grund auch immer dann dafür ins Feld geführt werden mag.
  • Die mangelnde Performance, die man TemplaVoila gerne unterstellt und die immer wieder mal als Grund für die Notwendigkeit, andere Template-Engines zu verwenden, geannnt wird, ist bei den 6er Versionen wohl schon im Core enthalten.
  • Auch der angebliche „Mythos“, dass nämlich tslib_pibase basierte Extensions nicht mehr unterstützt werden, stellt sich leider immer wieder als Tatsache heraus. Warum ich das so sehe, steht auch in diesem Artikel.

Eine einfache Aufgabe für TemplaVoila

Eine Kunde möchte eine Box in der rechten Spalte, die eine Liste von Links enthält. Diese Links sollen nicht statisch sein, auch kein mit TypoScript generiertes Menü, sondern einfach eine vom Editor willkürlich festgelegte Auswahl von Seiten, die man promoten will. Dabei ist es völlig ungewiss, wieviele Links sich in den beiden Spalten der kleinen Box befinden. Es können drei, fünf oder auch zehn sein, und es versteht sich von selbst, dass wir keine leeren <li> Tags in den HTML-Code schreiben wollen. Auch ein Inhaltselement mit vielleicht 20 vordefinierten Eingabefeldern scheidet aus, weil das erstens recht unprofessionell daher käme und zweitens auch noch sehr unübersichtlich für den Editor wäre. Ein Traumjob also für TemplaVoila und dessen Sections und Container. Man sehe sich die Bilder an und staune. Dass das Ganze auch noch in zehn oder mehr verschiedenen Fremdsprachen funktionieren würde, ist ebenfalls eine nicht zu verachtende Tatsache. Der Redakeur kann selbst eine unbegrenzte Anzahl weiterer Link-Felder hinzufügen (siehe Abbildung „Eingabe im Backend“) und zwar ganz ohne IRRE zu werden. :) Welche andere Template-Engine für TYPO3 bietet diese Möglichkeit, mit automatischer Unterstützung für Fremdsprachen?

Das oben geschilderte Beispiel hat ein neuer Mitarbeiter zusuammengeklickt, der noch nicht einmal drei Monate bei uns beschäftigt ist, aber in der kurzen Zeit TemplaVoila bereits verstanden hat. Aber halt: Das darf man ja heutzutage nicht mehr verwenden, weil da XML-Code in die Datenbank geschrieben wird. Die PHP-Puristen und OOP-Freaks haben aber entschieden, dass das ab sofort pfui! zu sein hat – und fertig. Aber es funktioniert doch bestens? Egal, was anderes funktioniert schliesslich auch, das musst Du dann halt lernen! (wir wollen schließlich Schulungen verkaufen) Aber, aber… es funktioniert doch noch gar nicht! Macht nichts, hilf halt mit, dann funktioniert es bald (wenn nichts dazwischen kommt)!

Höre ich da schon wieder jemanden sagen, „ja aber es »performt« nicht“? Schließlich hat jede TYPO3 Site, die wir (wer immer das sein mag) aufsetzen mindestens 40.000 Besucher am Tag und 10.000 einzelne Seiten ist sowieso das Minimum, das geht mit TemplaVoila nicht. Nein? Richtig! Für solche Sites nimmt man dann halt was anderes, genauso wie man mit einem Golf nicht bei der Formel 1 mitfährt. Ich kann nur sagen, solche Sites sind selten und sie werden immer weniger mit TYPO3 gemacht. Ob das einen Grund hat? Keine Ahnung. Aber weil wir gerade von „performen“ sprechen…

Die Geschwindigkeit von TYPO3 Version 4.5 bis 6.2 beta

Der Bug #52949 ist für jedermann öffentlich zugänglich. Er beschäftigt sich mit dem Rückgang der Performance seit Version 4.5 von TYPO3. Ein Kommentator bemerkt dort trocken „Oh darling….“ und kommt zu folgendem Ergebnis (es wurde ApacheBench verwendet, 100 Zugriffe in Folge, aber keine konkurrierenden):

  • Version 4.5 versus Version 6.0 — 6.0 ist um den Faktor 4 langsamer
  • Version 6.0 versus Version 6.2 beta — 6.2 beta ist um den Faktor 2 langsamer
  • Version 4.5 versus Version 6.2 beta — 6.2 beta ist um den Faktor 8 langsamer

In Anbetracht der Tatsache, dass lediglich Hello World ausgegeben wurde und nicht etwa ein komplexes Layout, ist das ein ziemlich erschütterndes Ergebnis und wird wohl einer der Hauptgründe für die Verschiebung des Release-Datums von Version 6.2 LTS gewesen sein. Man muss faierweise hinzufügen, dass eine Beta-Version mit einer stable Version verglichen wurde, es ist aber trotzdem eine Tatsache, dass Version 6.0 eben nicht mehr den Status beta hat, aber trotzdem im Vergleich zu Version 4.5 um den Faktor 4 langsamer sein soll.

Die Unterstützung von piBase basierten Extensions

Es ist das tägliche Brot von TYPO3-Entwicklern, winzigste und kleine Extensions erstellen zu müssen, weil der Wunsch des Kunden das nun einmal erforderlich macht. Vieles davon kann man mit TemplaVoila und seinen flexiblen Content Elementen (FCE) lösen, aber ganz sicher nicht alles. Wenn es darum geht, eine Datenbank-Tabelle um ein paar Felder zu erweitern, oder eine neue Tabelle zu erzeugen, damit der Kunde irgendwas in der gewünschten Weise präsentieren kann, dann leistete der Kickstarter in den 4er Versionen von TYPO3 stets treue Dienste. Er ersparte einem das langweilige Anlegen der Grundstruktur einer TYPO3-Erweiterung. Dieser Kickstarter funktioniert in Version 6.x nun nicht mehr. Theoretisch funktioniert er zwar, es gibt sogar einen Patch dafür. Wendet man diesen Patch an, kann man den Kickstarter auch unter Version 6.x aufrufen und solange damit arbeiten, bis man auf den Button „View Result“ klickt, der notwendig ist um das Ergebnis schließlich auf die Platte zu schreiben. In diesem Augenblick erscheint fatal Error und das war’s dann. Das wäre ihr Preis gewesen, fällt einem dazu dann nur noch ein. Es bleibt also nichts anderes übrig, als die Extension unter 4.5 zu erstellen oder die Extension-Grundstruktur eben per Hand anzulegen. Welch ein Fortschritt!

In manchen Foren liest man dann so etwas:

Der Extension Builder ist komplett anders und erstellt moderne Extensions mit Extbase und Fluid. hier musst du keine Sprachen mehr selektieren. Bezweifel, dass der alte pibase-basierte Kickstarter noch mal für 6.0 angepasst wird. Das pibase-Thema ist ja eigentlich Geschichte.

Ah ja, ich verstehe, also offenbar doch kein Mythos. Damit ich bei Version 6.x eine bestehende Datenbank-Tabelle um zwei, drei Felder erweitern kann und dazu den Kickstarter benutzen will, muss ich also erst einmal meine Mitarbeiter auf Schulung schicken, damit sie Extbase und Fluid lernen. Zwei Monate und vielleicht tausend Dollar später sind wir dann aber „modern und komplett anders“. Nun denn, bleiben wir eben altmodisch.

Bitte verstehen Sie mich nicht falsch, es ist klar, dass man in dieser Branche stets Lernprozessen unterworfen ist, denen man sich nicht verschließen darf. Ebenso klar ist, dass das piBase Konzept ein wenig angestaubt ist, trotzdem funktioniert es sehr gut, für viele Anwendungsgebiete. Um was es letztlich geht ist, dass ich eine Wahl haben möchte. Wenn mich ein System zu etwas zwingen will, dann mag ich nicht mehr. Ich lerne dann trotzdem dazu, aber ich lerne etwas anderes. Concrete5 wäre z.B. genau so etwas. Ich lerne ein System, das ebenso „modern und komplett anders“ ist, aber das nicht alle paar Jahre seine Para­dig­men komplett ändert, nur weil gewisse Zeitgenossen unter Zuführung von erheblichen Geldmitteln sich das so ausgedacht haben und es offenbar keinen „Chef“ mehr gibt, der ‚mal mit der Faust auf den Tisch haut.

Fazit

Kontinuität hat nichts mit altmodisch oder mangelnder Lernbereitschaft zu tun. TYPO3 stand viele Jahre lang für Kontinuität. Heute wird es nur noch von Insidern bejubelt und von denjenigen hoch gehalten, die sich Profit oder Reputation davon versprechen. TYPO3 wurde Schritt für Schritt kaputt-optimiert und das genau seit dem Zeitpunkt, als Kasper ausgestiegen ist. Heute hört man nur noch „extbase, fluid und flow“ – das allenthalben und überall bejubelt wird. Wer sich dem verschließt, ist ein „ewig Gestriger“ oder hat einfach keine Ahnung. Solche Aussagen sind nichts anderes als pure Arroganz. Ich wünsche mir aus tiefstem Herzen, dass TYPO3 mit der Version 6.2 LTS doch noch die Kurve kriegt, denn eine Open-Source-Community lässt sich zu nichts zwingen. Es mag sein, dass das in Deutschland einigermassen klappt, auf internationaler Ebene klappt es aber bestimmt nicht. Das hat selbst Ubuntu mit seinem Unity-Desktop (den fast niemand haben will) zur Kenntnis nehmen müssen.