- Drupal
Was WordPress und Drupal voneinander lernen können
27 Jun 2017
Beide Systeme haben ihre Stärken und können voneinander lernen. Das brachliegende Innovationspotenzial gehört genutzt!
Wenn man bekennende WordPress-Fans zu ihrem favorisierten CMS (= Content Management System) befragt, erhält man hier und da die bewusst polemisierende Antwort, dass ein Internet, wie wir es heute kennen, ohne WordPress gar nicht vorstellbar wäre, ja, dass WordPress gar das ganze Internet am Laufen hielte.
Klar, in dieser Aussage schwingt etwas bewusste Übertreibung mit – ganz von der Hand zu weisen ist sie dennoch nicht. Laut einer Statistik aus dem Jahr 2015 läuft jede vierte existierende Website mit WordPress.
Da WordPress ursprünglich aus einer Blogging- Plattform entstanden ist, konnten plötzlich auch Laien und Nicht-Programmierer im Handumdrehen ihre eigenen Websites erstellen – eine kleine Revolution. Die Attribute selbsterklärend, nutzerfreundlich, kostengünstig und dennoch optisch ansprechend gelten für dieses massentaugliche CMS bis heute.
WordPress ist ein klassisches Open-Source-Projekt, genau wie sein direkter (aber freundlicher) Konkurrent in Sachen Websitengestaltung, nämlich das CMS Drupal. Galt Drupal lange Zeit als das raffiniertere der beiden Programme, mit einer erheblich umfangreicheren Funktionalität (wenn auch zu Lasten der Nutzerfreundlichkeit), haben die WordPress-Entwickler in den letzten Jahren nicht geschlafen: Heutzutage steht WordPress dem Mitstreiter Drupal in Sachen Anwendungsmöglichkeiten in fast nichts mehr nach. Besonders hervorzuheben ist hierbei der freundliche Ideenaustausch (der heitere, aus der Biologie stammende Anglizismus heißt hierbei Cross-Pollination, also Kreuzbestäubung) zwischen den beiden Communities, im Rahmen dessen beide Seiten voneinander lernen. Leider ist das Ausmaß der Kooperation der beiden Communities in Sachen Frequenz und Intensität immer noch unbefriedigend, was nicht zuletzt daran liegt, dass manche Entwickler und Agenturen sich quasi-religiös ihrer favorisierten Plattform verschrieben haben und nach wie vor dem Irrglauben aufsitzen, dass man sich für eine der beiden entscheiden müsste. Allerdings hat das negative Konsequenzen: Innovationspotenzial liegt brach oder wird zu langsam realisiert, was sich wiederum negativ auf die Nutzererfahrung des Endkonsumenten auswirkt.
Um die Diskussion über dieses Thema gerade auch im deutschsprachigen Raum ins Rollen zu bringen und ein paar wichtige Impulse dahingehend zu setzen, haben wir uns dazu entschieden, in diesem Artikel im Detail gegenüberzustellen, was das eine Programm noch vom jeweils anderen lernen kann. Buzzwoo ist in erster Linie eine Agentur für digitale Projekte aller Art: Wir haben kein Interesse daran, uns selbst und unser Potenzial einzuschränken, eine deterministische Weltanschauung liegt uns nicht. Stattdessen wollen wir unseren Kunden Lösungen bieten, die perfekt auf die individuellen Projekte zugeschnitten sind, weswegen wir seit Jahren Experten für beide (und noch viele weitere) Plattformen beschäftigen – mit Erfolg, wie wir meinen.
Also, Warum ist Drupal unserer Meinung nach so großartig?
Die Plattform Drupal hält etwa 2 Prozent Marktanteil aller existierenden Content Management Plattformen. Das klingt erst einmal nicht nach besonders viel – ganz besonders im Vergleich zum überragenden Ergebnis des „freundlichen Konkurrenten“ WordPress. Dieser Umstand lässt sich allerdings dadurch erklären, dass sich Drupal vor allem für hochkomplexe und hochprofessionelle Websites eignet, die viel Geld kosten und einfach seltener nachgefragt werden als relativ einfache WordPress-Projekte.
Mit Drupal werden komplexe Datenmodelle einfach, das meiste kann sogar direkt im durchdachten User Interface konfiguriert werden. Drupal verfügt außerdem über extrem robuste, standardmäßige APIs (=Application Programming Interfaces, zu Deutsch: Programmierschnittstellen), wodurch es den verschiedenen Modulen (die im Baukastensystem zu einer kompletten Website kombiniert werden) möglich ist, die API´s der jeweils anderen verwendeten Module zu teilen. Zusammengefasst lässt sich über Drupal sagen, dass es mit diesem CMS möglich ist, eine äußerst komplexe und individualisierte Funktionalität für eine Website zu erreichen, ohne dass man dabei zwangsläufig auf Custom Code zurückgreifen müsste.
Was kann WordPress von Drupal lernen?
Die Developer Experience gehört verbessert, z.B. durch mehr und bessere APIs im WordPress Core
Das Plugin-Ökosystem von WordPress würde von einer Standardisierung der im Core verwendeten APIs dramatisch profitieren.
- Gäbe es auch in WordPress etwas Ähnliches wie Drupals Render API und Form API, wäre eine Standardisierung der WordPress-Plugins und eine reibungslose Integration der jeweiligen Markup-Elemente bei Weitem kein Ding der Unmöglichkeit. Diese recht simple Änderung würde in weiterer Folge dazu führen, dass die verschiedenen Plugins besser miteinander interagieren, ohne dass sie sich – metaphorisch gesprochen – gegenseitig auf die Zehen treten und schlussendlich zu Fall bringen.
- WordPress könnte seine UX (=User eXperience) massiv verbessern, gäbe es eine Methode, mit der man in der Kern UI benutzerdefinierte Custom Post Types erstellen könnte. Bei Drupal ist das eine sogenannte „Out-of-the-box-Funktion“, also eine Softwarefunktion, die nach der Installation ohne weitere Anpassungen sofort zur Verfügung steht. Zwar gibt es diese Funktionalität auch in WordPress – allerdings nur für den Developer, nicht für den Endnutzer. Diese Einschränkung zwingt die Gestalter von WordPress-Webseiten dazu, nach extrem spezifischen Plugins zu suchen, die einen sehr spezifischen Post Type erstellen können – danach bleibt ihnen nur, zu hoffen, dass dieses Behelfs-Plugin dann auch wirklich das – und auch nur das – tut, was man von ihm erwartet.
- Auch in WordPress gibt es bereits Plugins, die dem vielgelobten Drupal Field API ähneln. Optionen wie Advanced Custom Fields und CMB2 sind extrem nützlich, um ohne allzu großen Aufwand Custom Fields zu erstellen. Könnte man etwas Ähnliches auch im WordPress Core integrieren, könnten sich die Plugin Developer darauf verlassen, ein robustes und stabiles Ökosystem vorzufinden, das sich in weiterer Folge einfach und ohne Bedenken erweitern ließe.
- Eine API für Plugins zur Definition von Dependencies (=Abhängigkeiten und Ablaufbeziehungen) zu anderen Plugins gab es bei Drupal sogar schon, als das CMS noch in seinen Kinderschuhen steckte. Diese Besonderheit ermöglicht die Existenz von „Mini-Ökosystemen“, die jeweils aus mehreren komplexen Modulen zusammengesetzt werden können. Aus diesem Grund gibt es in Drupal eigene Ökosysteme aus Modulen, die rund um Views, Fields, Commerce, Organic Groups und vielen anderen Modulen aufgebaut sind. Gäbe es derartige Möglichkeiten auch für WordPress, würde man vielen Nutzern das Leben erleichtern.
- Ein weiteres großes Manko bei WordPress ist das Fehlen einer einfachen One-Stop-Lösung für Custom Query/List Building. Drupal hat zu diesem Zweck Views, bei WordPress gibt es leider nichts Vergleichbares. Auch hier sind die Site Builder wieder dazu gezwungen, sich eine annehmbare Lösung zurechtzuzimmern, z.B. indem sie auf Plugins zurückgreifen, die extrem spezifische Querys erzeugen, was natürlich auch zu Outputs führt, die stark von diesen extrem spezifischen Parametern beeinflusst werden. Möchte der Nutzer beispielsweise eine Liste mit „popular posts“ erstellen, muss er sich zuerst durch eine Fülle von verschiedenen Plugins kämpfen, die aber alle den exakt gleichen Zweck erfüllen.
Natürlich gibt es einen Grund dafür, warum bislang darauf verzichtet wurde, neue APIs in den WordPress Core zu integrieren: Der Grundsatz der Abwärtskompatibilität zu früheren Versionen könnte nicht mehr gewährleistet werden und auch in das momentan existierende (und größtenteils kostenpflichtige) Plugin-Ökosystem müsste stark eingegriffen werden.
Lange hinfällig: Eine Verbesserung der WordPress Sicherheitsstandards
WordPress wird oft aufgrund seiner unzureichenden Web-Sicherheitsstandards gescholten. Da dieses CMS die Basis für einen derart großen Teil des Internets darstellt, ist es keine Überraschung, dass es auch die meisten Cyberattacken anzieht. Zudem ist es sogar absoluten Software-Laien möglich, eine simple WordPress-Website zu erstellen – eine Möglichkeit, die vermutlich aus Kostengründen von vielen Personen genützt wird. Allerdings fehlt diesen in technischen Dingen nicht versierten Nutzern in den meisten Fällen das nötige Hintergrundwissen. Vielen WordPress-Nutzern ist es nicht bewusst, dass ihre Website an sich (und alle verwendeten Plugins) regelmäßig upgedatet und vor dem Zugriff Unbefugter geschützt werden müssen.
Abgesehen von diesen nachvollziehbaren Hürden gibt es allerdings auch einige Neuerungen, die ruckzuck und ohne jegliche negative Konsequenzen durchgeführt werden könnten, die sich aber dennoch extrem positiv auf die allgemeine Reputation der Plattform auswirken würden:
- Durch einen Passwortschutz vor Brute-Force-Attacken (eine sogenannte flood control) könnte man Bots davon abhalten, wiederholt eine Verbindung zu wp-login.php herzustellen. Wie oft sehen Sie persönlich wiederholte Verbindungsaufbauten zu wp-login.php in Ihren Serverlogs? Ist Ihnen noch nie aufgefallen? Genau.
- Momentan unterstützt WordPress veraltete PHP-Versionen zurück bis zur Version 5.2 (die allerdings schon länger keine Sicherheitsupdates mehr erhalten). Viele WordPress-Nutzer sind nicht technisch versiert genug, um das daraus resultierende Sicherheitsrisiko zu erkennen und die verwendete PHP-Version dementsprechend regelmäßig upzudaten, wodurch Tür und Tor für kriminelle Attacken weit offenstehen. WordPress sollte dem einen Riegel vorschieben und eine neuere PHP-Version als Minimalanforderung definieren, wie es bei einigen Plugins beispielsweise bereits der Fall ist. Zudem ist kürzlich auf Twitter eine fruchtbare Diskussion über dieses Sicherheitsrisiko entbrannt, woraufhin man bei WordPress nun darüber nachdenkt, die „empfohlene“ PHP-Version auf 7.0 anzuheben.
- Eine offizielle und öffentliche E-Mail-Verteilerliste, die auf sämtliche existierenden Sicherheitslücken im WordPress Core und den Plugins hinweist und regelmäßig aktualisiert wird, wäre eine unkomplizierte Methode, um Entwickler und sogar Endnutzer auf potenzielle Sicherheitsrisiken hinzuweisen. Offensichtlich besteht Bedarf an einer derartigen Verteilerliste, nachdem diverse Drittanbieter diese bereits kostenpflichtig anbieten.
WordPress im Fokus: Warum hat dieses CMS einen derart hohen Marktanteil?
Das ist einfach erklärt: Auch Nicht-Developer sind problemlos in der Lage, eine Website mit WordPress zu erstellen – und logischerweise gibt es auf dieser Welt wesentlich mehr Laien als professionelle Entwickler. Der Download und die anschließende Installation sind bei beiden Programmen kinderleicht – sobald das Programm aber läuft und es ans Eingemachte geht, ist WordPress für den Endnutzer erheblich schneller und einfach zu verstehen als der direkte Konkurrent Drupal.
Paradebeispiel: Wenn die Website eine optische Veränderung nötig hat
Wenn man eine neue Website erstellen oder von einem Entwickler erstellen lassen möchte, beschäftigt man sich logischerweise zuerst einmal damit, wie das gute Stück denn aussehen soll. Mit WordPress kann man das Design der Website quasi in Sekundenschnelle ändern, indem man Design > Themes > Neues Theme hinzufügen anklickt. Innerhalb der UI kann man verschiedenste neue Themes ausprobieren, sie in der Vorschau genauer unter die Lupe nehmen und so lange mit dem Design herumexperimentieren, bis man zufrieden ist – ohne dass dabei die Gefahr besteht, dass irgendwelche Inhalte verloren gehen oder dass man die ganze Website crasht. Hat man sich dann endgültig für ein Theme entschieden, klickt man Installieren und Aktivieren und schon erstrahlt die Website in neuem Design. Das Downloaden und Installieren von Themes ist bei WordPress also kinderleicht.
Im Fall des Konkurrenten Drupal klickt man im Dashboard auf „Design“, allerdings sind dort dann nur die standardmäßig vorinstallierten Themes zu sehen. Wirft man aber einen Blick auf den Text weiter oben, steht dort in kleinen Lettern zu lesen: „alternative Themes verfügbar“. [JS1] Darunter findet sich dann der Button „Neues Theme installieren“. Bei Drupal muss man durch all diese Links navigieren, um ein neues Theme zuerst downloaden und im Anschluss auf die eigene Website uploaden zu können.
Klickt man dann auf den Button, gelangt man auf eine Seite, auf der man eine URL in den Tarball/Zip kopiert oder einen zuvor heruntergeladenen Tarball/Zip hochlädt. Nach wie vor muss man wissen, wie man einen Zip oder Tarball herunterlädt und wohin man die Datei entpacken soll. Danach muss man wieder zurück zum Dashboard zu „Design“, wo man das Theme schließlich aktivieren kann.
Was in WordPress selbsterklärend und in drei kurzen Schritten erledigt werden kann, erfordert bei Drupal wesentlich tief greifende technische Kenntnisse und wesentlich mehr komplizierte Schritte. Möchte man in Drupal Module hinzufügen oder andere Details verändern, kommt dasselbe komplexe Prozedere zum Einsatz – für Laiennutzer oft unverständlich und abschreckend.
Also, was kann sich Drupal im Gegenzug von WordPress abschauen?
Wenn Drupal weiterhin wachsen und seinen Marktanteil erhöhen möchte, muss die Plattform auch für Nicht-Developer zugänglicher werden. Die Lernkurve ist momentan einfach noch zu hoch, was im deutschsprachigen Raum durch eine häufig auftretende Sprachbarriere noch zusätzlich verstärkt wird. Wenn der Drupal-Einstieg allerdings niederschwelliger wird, könnten aus interessierten Nicht-Entwicklern nach einer Weile ausgewachsene Entwickler werden, was frischen Wind in die Community bringen wird. Hier ein paar Vorschläge, wie Drupal diesem Ziel näherkommen könnte:
- Ein standardmäßig im Dashboard integrierter Browser für Themes und Module, wie man es von WordPress kennt, würde wahre Wunder bewirken, wenn man Endnutzer dazu ermutigen möchte, neue und bis dato unbekannte Funktionen und Designs für ihre Websiten zu entdecken. Mit dem Modul Project Browser (erhältlich nur für Drupal 7) wurde ein erster Schritt gesetzt, um diese wünschenswerte Neuerung tatsächlich in die Tat umzusetzen. Um diese Lösung massentauglich zu machen, müsste allerdings zuerst ein nach wie vor bestehendes Dilemma überwunden werden: Um dieses neue Modul zur simpleren Nutzung von Drupal auch tatsächlich verwenden zu können, muss der Nutzer es erst einmal auf die traditionell komplizierte Art und Weise herunterladen und aktivieren.
- Die Möglichkeit, während des Drupal-Installationsvorgangs ein sogenanntes “vetted installation profile“ (also ein separates Installationsprofil, das bewusst dazu gedacht ist, mit dem Programm zu experimentieren) downloaden zu können, wäre extrem vorteilhaft. Diese Möglichkeit würde vielen Nutzern – vor allem den ungeübten – das Leben erheblich erleichtern. Interessierte Laiennutzer hätten plötzlich die Möglichkeit, die wahre Macht von Drupal zu entdecken und ohne Risiko auszuprobieren. Eine Diskussion der Drupal-Community zu diesem Thema kann auf Englisch beispielsweise hier nachgelesen werden. Ein Mitglied der Drupal-Community plädiert dort mit folgender Analogie für diese Neuerung: Drupal identifiziert sich seit jeher mit Legosteinen. Das aktuelle Programm ist allerdings wie eine riesengroße Kiste voller Legosteine, ohne jegliche Anleitung für den Nutzer, wie man sie am besten zusammenbauen soll – was unerfahrene Nutzer naturgemäß abschreckt. Ein experimentelles Installationsprofil das Hinweise zur optimalen Nutzung gibt, würde dieses Problem lösen.
- Automatische Security Updates wäre ein Feature, das vor allem von vielen kleineren Seiten positiv aufgenommen werden würde. Viele Webseiten-Projekte werden automatisch von WordPress abgegriffen, da kleinere Kunden oftmals nicht über das Budget verfügen, um dauerhaft einen Entwickler damit zu beauftragen, die (Drupal)-Website up to date zu halten. Zwar wurde das Konzept für die zukünftige Umsetzung dieses neuen Features bereits von den Drupal Core Committern abgesegnet, viel getan hat sich seither allerdings nicht.
Die Voraussetzung dafür? Die aus den Neuerungen resultierenden Sicherheitsrisiken müssen abgewehrt werden
Der Nachteil dieser neuen Funktionen ist, dass Drupal ein beschreibbares Dateisystem benötigen würde, das im Großen und Ganzen weniger sicher ist. Ob dieses Risiko durch die automatischen Sicherheitsupdates ausgeglichen werden könnte oder nicht, ist umstritten.
Automatische Security Updates und eine erleichterte Installation von Themes und Modulen müssten beispielsweise nicht „out of the box“ freigegeben werden. Diese Funktionen könnte man in Core-Modulen anbieten, die nur bei tatsächlichem Bedarf freigegeben werden können. Zusammengefasst lässt sich sagen: Es gibt gute Gründe dafür, warum die von uns vorgeschlagenen Verbesserungen noch nicht umgesetzt wurden. Allerdings sind diese Gründe bei Weitem nicht Grund genug und Lösungen wären schnell gefunden.
Und was hat sich Drupal bisher von WordPress abgeschaut?
Cross-Pollination und gegenseitiges Impulsgeben findet in diesem Software-Bereich wie erwähnt schon länger statt. Aus diesem Grund sollten wir uns auch kurz ansehen, welche Neuheiten die Drupal-Community von WordPress bereits übernommen hat und welche sich gerade in der Pipeline befinden:
- Ein semantisches Versionierungsmodell ist eine der wichtigsten Änderungen in Drupal 8. Bugfixes und neue Features können mit einer semantischen Versionierung in einem regelmäßigen Rhythmus ergänzt werden. Vor dieser Neuerung waren Drupal-Entwickler dazu gezwungen, mehrere Jahre auf das nächste größere Versionsupdate zu warten, um wichtige Änderungen durchzuführen. Bei WordPress ist das semantische Versionierungsmodell bereits seit langem gang und gäbe.
- Eine verbesserte Handhabung für Content-Autoren ist ein Problem, an dem sich Drupal schon seit längerem abmüht (bis vor nicht allzu langer Zeit gab es beispielsweise nicht mal ein Admin Theme). Mit Drupal 8 ist die standardmäßige Authoring Experience endlich auf demselben Stand wie WordPress und hat in manchen Bereichen sogar die Nase vorne.
- Media Management macht es möglich, Bilder und Videos hochzuladen und von verschiedenen Inhaltselementen einfach auf diese Medienelemente zu verweisen. Durch eine kollektive Medieninitiative konnte dieses umfangreiche und zeitintensive Vorhaben nach jahrelangem Ringen endlich in den Core integriert werden.
- Einfachere Versions-Upgrades gibt es bei WordPress bereits von Anfang an.
Im Falle von Drupal war traditionell ein signifikanter Entwicklungsaufwand zwischen den Hauptversionen vonnöten. Auch hier wird es allem Anschein nach zu einer Änderung/Verbesserung kommen. In einem aktuellen Blogpost kündigte Dries Buytaert, der Vorsitzende des Drupal-Projekts Folgendes an:
„Ein Update von der aktuellsten Version von Drupal 8 zu Drupal 9.0.0. sollte so einfach und unkompliziert sein wie geringfügige Versionsupdates innerhalb von Drupal 8“.
Die Signifikanz dieser Aussage ist nicht zu unterschätzen, da die „Technische Bringschuld“ von Drupal erheblich reduziert wird, wenn in der Zukunft neue Versionen auf den Markt kommen.
Fazit
Sowohl Drupal als auch WordPress werden von extrem intelligenten und fähigen Menschen betrieben, die ihr Bestes geben, um ihre jeweilige Plattform voranzutreiben – und da es sich in beiden Fällen um „freie Software“ handelt, haben auch beide die Möglichkeit, Details und Innovationen vom jeweils anderen zu übernehmen, die bereits „geprüft und für gut befunden“ wurden. Was wiederum zu einem offeneren (und nutzerfreundlicheren) Internet führen wird – das ist etwas, wofür sich buzzwoo weiterhin einsetzen wird.
Haben Sie Fragen oder benötigen eine individuelle Beratung zu dem, was Sie gerade gelesen haben? Zögern Sie nicht, uns zu kontaktieren! Besuchen Sie unsere Kontaktseite und lassen Sie uns ein Gespräch darüber beginnen, wie wir Ihnen helfen können, Ihre Ziele zu erreichen.