WordPress – wann kommt es zur Katastrophe?
6. September 2009
Ich sehe mich nicht wirklich als Teil der weltweiten WordPress-Gemeinde. Zugegeben – in den letzten zwei Jahren habe ich etwa zehn Websites damit umgesetzt (auf expliziten Kundenwunsch), biete zwei Blog-Themes zum Download an (aus Promotion-Gründen) und habe auch das eine oder andere individuelle Plugin für spezielle Kundenwünsche verfasst. Doch stets empfand ich dabei ein unangenehmes Grummeln im Bauch. Der Grund dafür ist eine Überzeugung, die ich mich seit einigen Monaten immer deutlicher zu formulieren getraue: WordPress ist auf keinem guten Weg in die Zukunft. Das hat mehrere Gründe, und der aktuell grassierende Wurm ist nur der konkrete Anlass und ein weiteres Mosaiksteinchen.
Da wäre zum einen natürlich die Sicherheit. Jeder Webentwickler, der sich halbwegs auskennt, wird bestätigen, dass WordPress ein Sicherheitsrisiko darstellt und stets nur in der aktuellsten Version notdürftig mit ein paar Flicken die aktuell bekannten Exploits zu verhindern in der Lage ist. Neue Exploits und neue WordPress-Versionen erscheinen alle paar Wochen, Updates sind fast immer dringend angeraten und werden auch löblicherweise im WordPress-Backend propagiert. Doch wie man das so kennt: Unbedarfte Anwender scheren sich nicht um solche Warnhinweise, denn: Es geht ja alles! Und machen wir uns nichts vor: Viele der Kunden, für die man Websites einrichtet, haben nach der obligatorischen CMS-Schulung nie mehr das Backend von innen gesehen. Ich bin kein Security-Experte, aber die Probleme scheinen tief in der Architektur von WordPress verankert zu sein, denn nur aufgrund der hohen Popularität kann ich mir eine derartige Masse an verschiedenen Attacken einfach nicht vorstellen. Der gesamte WordPress-Core scheint durchtränkt von Sicherheits-Lücken, und das macht mir durchaus Angst.
Der zweite Grund, warum ich WordPress auf dem falschen Weg sehe, ist die schlechte Performance, und zwar insbesondere im Backend. Es kann nicht sein, dass beim Anlegen und Bearbeiten von Beiträgen und Artikeln die Seitenenaufrufe derart träge und instabil vonstatten gehen. Zum einen hat das mit der Überfrachtung des Backends zu tun: Tausende von teils redundanten Funktionen, die oft mit anspruchsvollen JavaScript-Spielereien angehübscht sind, führen zu einer schlechten Performance auf der Client-Seite. Doch auch was die Zahl und die Komplexität der SQL-Anfragen betrifft, wird offenbar aus dem vollen geschöpft. Nicht alle Anwender bekommen das mit, denn bestimmte Hosting-Provider bieten natürlich inzwischen entsprechende Server mit genügend Wums an. Doch guckt man sich andere CMSe an, erkennt man auch, dass die Situation nicht so sein müsste! Dass vergleichbar funktionale Backends auch pfeilschnell sein können und auf langsameren Servern funktionieren. Wieder einmal ist es vor allem schlampige Programmierung, die einen Großteil der Probleme verursacht.
Mein dritter Aspekt ist derjenige, der mich am meisten beschäftigt. Es ist die ungeheure Feature-Getriebenheit der gesamten WordPress-Bewegung. WordPress definiert sich fast ausschließlich über die Quantität an Möglichkeiten: Die meisten eingebauten Spezialfunktionen, die meisten Themes, die meisten Plugins, usw. Das hat natürlich auch Vorteile: Immer wenn es im Netz eine neue Technik gibt, einen kulturellen oder technischen Hype, ist WordPress das erste System, welches dies technisch implementiert – ob als Plugin oder auch als Core-Funktion. Beispiele: AtomPub, Canonical URLs, Structured Blogging, Podcasting … WordPress ist die de-facto-Referenz-Implementation! (Kleine Anekdote am Rande: Bei meinem Werbevermarkter Adnation gibt es im Admin-Bereich zwei Möglichkeiten, den Embed-Code für die Banner zu erhalten: Als nacktes JavaScript-Snippet oder … als WordPress-Plugin.)
Meine grundsätzliche Kritik lautet demnach wie folgt: Die WordPress-Gemeinde ist bestrebt, alle kulturellen und technischen Trends, Möglichkeiten und Ideen, die auch nur entfernt mit Blogging zu tun haben, mit ihrer Software erschöpfend abzudecken, ohne dabei allzuviel Rücksicht auf Bedienbarkeit, Performance oder Sicherheit des Systems zu nehmen. Was dabei passiert, ist völlig klar: Die Software wächst organisch und unlimitiert. Jede Version kommt mit mindestens zwei bis drei neuen Features, die sich bis tief in den Core verankern und den Code auf verschiedenen Ebenen immer komplizierter machen. Dadurch wird es zunehmend schwieriger, Optimierungen vorzunehmen und ordentlich aufzuräumen, da es zu viele Abhängigkeiten gibt.
Ich vergleiche es gerne mit einer Lawine, die immer mehr Schnee aufnimmt und mit immer mehr Gewicht und Tempo in eine bestimmte Richtung rollt. Sie ist irgendwann nicht mehr aufzuhalten, und ich sehe WordPress längst in einem Stadium, wo eine physische Konfrontation mit einem Bergdorf nicht mehr aufzuhalten ist. Sprich: Immer mehr Server werden immer häufiger schlapp machen. Blogs werden langsamer und verschwinden häufiger zeitweise vom Netz. Die Hosting Provider müssen Ressourcen nachrüsten und Preise anziehen, wie auch immer.
Wie sieht die Lösung aus? Alle auf Textpattern oder Serendipity umsteigen? Sicher nicht, denn natürlich ist WordPress mit seinen Funktionen und seinen Entwicklern einzigartig. Aber ich sehe inzwischen kaum eine andere Möglichkeit als einen kompletten Re-Write des Core-Systems, ähnlich wie es TYPO 3 derzeit unternimmt. Es muss ein harter Einschnitt gemacht werden, der sehr schmerzlich sein wird, da ein Großteil der Plugins und sicher auch viele Themes nicht mehr funktionieren wird. (Das liegt am unzureichenden Abstraktionzwang für Plugin- und Theme-Autoren. Hier wird für meinen Geschmack üblicherweise viel zu systemnah gecodet.)
Mit einer zukunftsgerichteten, sicheren und performanten Basis dürfte es möglich sein, die meisten der populären Eigenschaften von WordPress zu erhalten, ohne den Lawinen-Effekt zu sehr herauszufordern. Vielleicht ist es aber auch eine Chance, die uneingeschränkte Feature-Hörigkeit der WordPress-Gemeinde ein wenig zu bekämpfen und eine Kultur zu schaffen, die mehr auf Qualität als auf Quantität setzt. Vielleicht ist hier auch ein bisschen mehr Diktatur nötig. Leider sehe ich derzeit keine wirklich ernstgemeinten Bestrebungen, und Matt Mullenweg findet außer immer brav Updates aufspielen keine adäquaten Argumentationen zur fundamentaleren Bekämpfung der WordPress-Probleme.