Unsere Ideen für Ihr Projekt

Die Zukunft der Erweiterungen für Contao

Die gute alte Zeit

"Früher war alles besser." Das gilt zumindest aktuell für die Erweiterungen, die für Contao geschrieben werden. Es gab mit dem Extension Repository (ER) einen zentralen Ort, an dem jeder seine Erweiterungen ablegen konnte (diesen Ort gibt es immer noch). Über einen guten Titel, eine aussagekräftige Beschreibung und sinnvoll vergebene Tags sind die Erweiterungen leicht auffindbar. Alle Programmdateien, Grafiken, Übersetzungen etc. einer Erweiterung werden in diesem ER abgelegt, das zentral auf contao.org verwaltet wird.

Manche Erweiterungen (ca. 15% aktuell) sind als "kommerziell" gekennzeichnet, d.h. der Nutzer muss in irgendeiner Form dafür bezahlen, z.B. in dem er den Quellcode zwar frei herunterladen kann, dann aber einen Code vom Hersteller beziehen und eingeben muss, um die Erweiterung nutzen zu können.

Die Qualität der Erweiterungen war und ist sehr unterschiedlich. Manche werden kontinuierlich weiter entwickelt, andere "sterben" einfach, weil sie zu einer neueren Contao-Version nicht mehr kompatibel sind und der Entwickler sie vielleicht selbst in seinen Projekten nicht mehr einsetzt oder den Aufwand einer Anpassung scheut. Oder aber der Entwickler hat gar nichts mehr mit Contao am Hut. Insbesondere bei kostenfreien Erweiterungen hat der Entwickler von der Aktualisierung seiner Erweiterungen erst einmal nichts - außer natürlich Arbeit. Ruhm und Ehre gibt es nur im Erfolgsfall - und auch dann kommen eher Anfragen der Art

"Deine Erweiterung arbeitet übrigens nicht der Erweiterung random_name zusammen. Kannst Du das bitte kostenlos fixen."


statt

"Vielen Dank für Deine tolle Erweiterung, ich habe Dich zu meinem Alleinerben eingesetzt.".


Das bedeutet wieder Arbeit, und so geht es weiter...

Manchmal löst man schon mit einem Dankeschön ein vielleicht vorhandenes Motivationsproblem!

Das Zeitalter des Composers

Composer ist das Standardwerkzeug in PHP, um PHP-Module zu installieren und zu verwalten. Auch Contao selbst ist so ein Modul. Die Idee ist simpel: gib auf der Kommandozeile (oder einem grafischen Frontend) den Namen der gesuchten Erweiterung ein, Composer analysiert im Hintergrund die Abhängigkeiten und installiert Dir genau, was Du dafür brauchst. Auf zum nächsten Modul...

Doch halt, ganz so einfach ist es in vielen Fällen nicht. Im Gegensatz zum Extension Repository, das man leicht durchsuchen kann, sollte man beim Composer den Namen des Moduls schon sehr genau kennen. Die Quelle der Daten, die kopiert werden, kann irgendwo sein. Das ist gut, da es keinen zentralen Ort mit allen Extensions gibt, der zum Flaschenhals werden kann. Es muss sich aber auch jeder Entwickler darum kümmern, wo er seine Daten ablegt.

Außerdem benötigt das Auflösen der Abhängigkeiten in Composer viel Arbeitsspeicher und Rechenzeit auf dem Server. Kleinere Hosting-Pakete scheitern immer wieder daran, so dass man dort bestimmte Module nicht installieren kann.

Contao ist seit Version 4 selbst ein Modul, das über Composer installiert werden kann. Genauer gesagt ist es ein Symfony-Bundle. Daher heißt die Zukunft der Erweiterungen ganz klar Composer. Derzeit arbeiten die Core-Entwickler von Contao daran, die Arbeit mit Composer zu vereinfachen. Dazu zählt ein grafische Oberfläche. Aber auch eine externe Möglichkeit, Abhängigkeiten aufzulösen, wäre eine Idee.

Erweiterungen aus Sicht der Agenturen

Beim Contao Agenturtag 2016 haben wir mit anderen Agenturen auch darüber diskutiert, wie es mit den Erweiterungen weiter geht. Was ist uns als Agenturen, die mit Contao arbeiten und Geld verdienen, bei Erweiterungen wichtig? Natürlich sollen Erweiterungen etwas leisten, was Contao von Haus aus nicht mitbringt. Wichtig ist aber auch, dass diese Erweiterung kontinuierlich gepflegt wird, damit unsere Kunden diese auch lange nutzen können.

Sind kostenpflichtige Erweiterungen hier eine sinnvolle Alternative? Gleich vorweg: die meisten Agenturen halten kostenpflichtige Erweiterungen für eine gute Idee. Sie versprechen sich dadurch eine bessere Qualität, eine längere Lebensdauer und - nicht unbedingt immer kostenfreien - Support. Das trifft oft zu, es hat sich aber auch gezeigt, dass auch kommerzielle Erweiterungen die Erwartungen nicht immer erfüllen. Kostenpflichtig ist also nicht gleich besser.

Isotope

Ein Beispiel, wie man es besser machen kann, zeigt das Shop-System Isotope von terminal42. Die beiden Entwickler Yannick Witschi und Andreas Schempp geben Isotope kostenlos weiter, obwohl die kontinuierliche Entwicklung jede Menge Arbeit bedeutet. terminal42 beschreitet einen anderen Weg: Dem Isotope-Circle kann jeder Nutzer von Isotope beitreten und bezahlt dafür eine jährlich Gebühr, in der u.a. auch Support enthalten ist.

Andere Entwickler finanzieren einen Teil ihrer Kosten durch Fundraising, d.h. nach dem Eingang oder der Zusage einer bestimmten Summe, beginnen sie damit, die Erweiterung zu programmieren. Andere Anbieter wiederum entwickeln Erweiterungen als Auftragsarbeit eines Kunden, der dann dafür zahlt. Der Kunde kann dann entscheiden, ob er die Erweiterung der Allgemeinheit zur Verfügung stellen möchte oder nicht. Die Konditionen dafür handeln die beiden Vertragspartner aus. Wir bei trilobit nennen den "Sponsor" der Erweiterung und lenken auch einen Spenden-Link zu ihm, da er uns für unsere Arbeit bezahlt hat.

Ein Extension-Shop?

Generell sollten wir wieder dahin kommen, alle Erweiterungen an einem zentralen Ort zusammenzufassen. Dort werden die Erweiterungen ansprechend präsentiert, bewertet und vielleicht auch besondere Erweiterungen hervorgehoben. Beim Agenturtag 2016 hat sich eine kleine Gruppe gebildet, die Erweiterungen einer größeren Öffentlichkeit vorstellen möchte. So könnte auf contao.org bald eine Rubrik "Erweiterung des Monats" erscheinen. Das wäre eine kleine und subjektive Auswahl, würde aber guten Erweiterungen den Start erleichtern, bzw. deren Bekanntheit steigern.

Erweiterungen zu verkaufen ist nach deutschem Recht nicht ganz einfach, da auch bei kleinen Beträgen eine Gewährleistungspflicht und Haftungsfragen greifen (glaube ich, ich bin kein Jurist!). Vielleicht könnten hier zentral Spenden eingeworben werden, die dann an die Entwickler verteilt werden. Oder aber es gibt einen Extension-Club, dessen Mitglieder Zugriff auf alle dort eingestellten Extensions haben. Wohl wissend, dass Verteilungsgerechtigkeit auch hier kein einfaches Thema ist.

Ein einheitlicher Mechanismus für kostenpflichtige Erweiterungen wäre hier auch hilfreich, um deren Verbreitung zu fördern. Sowohl im Sinne der Akzeptanz bei Agenturen als auch des Handlings bei Entwicklern. Wenige flexible Lizenzierungsmodelle würden die Übersicht erleichtern. So kann eine Agentur entscheiden, ob sie eine Erweiterung einmal oder für alle Projekte einsetzen möchte.

Fazit

Erweiterungen spielen im Contao-Kosmos eine große Rolle, da sie die Funktion des Contao-Systems deutlich erweitern. Entwickler benötigen eine positive Umgebung, in der ihre Leistungen auch anerkannt werden - das muss nicht immer monetär sein. Und schließlich brauchen Agenturen eine gewisse Stabilität in der Erweiterungslandschaft, da sie sonst auf Dauer schon alleine damit genug zu tun haben, den Funktionsumfang einer Internetpräsenz zu halten, geschweige denn auszubauen.

In diesem Sinne hier einmal ein großes Dankeschön an Leo Feyer, die Core-Entwickler, die Extension-Entwickler und alle großen Sterne und die vielen kleinen Sternchen, die das Contao-Universum glänzen lassen.