Wie sich WordPress alter Zöpfe entledigt

Jahrelang hat sich die Community hinter WordPress schwer damit getan, die Unterstützung von veralteten Technologien einzustellen. Alte PHP-Versionen wurden und werden noch heute über Jahre unterstützt, das Gleiche gilt für Browser.
Doch es gibt nun zunehmend Bestrebungen, alte Zöpfe abzuschneiden, um WordPress’ Unterbau moderner zu gestalten.

Lass uns mal den aktuellen Stand zusammenfassen und einen Blick nach vorn wagen.

Das Dilemma der Rückwärts-Kompatibilität

Trotz dessen, dass WordPress regelmäßig Updates erhält, sind alle WordPress-Verantwortlichen stets bestrebt, keine Störungen in Umgebungen mit alten Installationen hervorzurufen. So achtet man bis heute darauf, möglichst alte PHP-Versionen zu unterstützen, damit WordPress auch noch auf Sites läuft, deren Server nicht regelmäßig aktualisiert werden. Auch bei der stets mitgelieferten jQuery-JavaScript-Bibliothek setzte man lang auf die Version 1.12.4 – eine Version aus dem Jahr 2016.

Diese Vorsicht ist an sich lobenswert: Setzt man WordPress ein, ist die Wahrscheinlichkeit gering, sogenannte breaking changes zu erleben – Veränderungen im System, die nach einem Update zu erheblichen Fehlern führen oder elementare Funktionen nicht mehr bereitgestellt zu erhalten.
Das gewährleistet Stabilität und zugleich eine recht große Nutzerbasis, da WordPress so genügsam hinsichtlich Anforderungen ist, dass es schon schwer ist, überhaupt Umgebungen zu finden, auf denen WordPress nicht läuft. Sicherlich hat dies auch Einfluss darauf, dass WordPress sich jedes Jahr damit rühmt, steigende Nutzerzahlen zu haben.
Zuletzt freute sich die Community im Dezember 2020 über knapp 40% WordPress-Installationen unter den Top 10 Millionen Websites.

Zugleich ist diese breite Unterstützung aber dem Fortschritt des Systems hinderlich: Die Rücksicht auf alte Umgebungen und das Vermeiden von breaking changes ist zugleich eine Innovationsbremse. Es ist schlichtweg nicht möglich, alten Code zu pflegen bzw. zu unterstützen und zugleich neue moderne Funktionen zu implementieren.
Es ist aber nicht diskutabel, dass WordPress sich weiterentwickeln will – und muss.

Den Knoten durchbrochen: Die Einführung von Gutenberg

Mit der Einführung von Gutenberg hat die WordPress-Community das erste Mal seit langer Zeit einen deutlich spürbaren breaking change umgesetzt: Der Editor wurde in WordPress 5.0 von TinyMCE auf Gutenberg geändert. Die Einführung des Editors war zugegeben äußerst ruckelig und stieß bei Vielen insbesondere am Anfang nicht auf Gegenliebe.

Doch spürte sich diese Neuerung schon fast als eine Emanzipation an: “Wenn wir es schaffen, das Kernstück unseres Systems zu verändern, dann auch Anderes!”. Ein direkter Zusammenhang ist zugegeben eher interpretiert als empirisch belegbar, doch die weiteren Maßnahmen zur Modernisierung vom Unterbau WordPress’ kamen in kurzer Folge.

Freiraum für Neuerungen: Der Site Health Check (Website-Zustand)

In WordPress 5.2 wurde der Site Health Check, in deutsch: Website-Zustand, mit ausgeliefert. Der Check prüft wöchentlich im Hintergrund die Umgebung, auf der WordPress läuft und gibt Hinweise, wie die Installation zu verbessern ist. Neben Tipps für die Deaktivierung inaktiver Themes oder Plugins ist auch ein PHP-Versions-Check mit integriert: Ist eine PHP-Version zu alt, weist der Site Health Check darauf hin.
In WordPress 5.2 wurde auch gleich die minimal unterstützte PHP-Version von 5.2 auf 5.6 angehoben.

Der Site Health Check ist natürlich ein gutes Mittel, sich mit einer langfristigen Strategie auch weiterhin alter PHP-Versionen zu entledigen: Die noch im März 2021 unterstützte (geringste) PHP-Version 5.6 ist seit dem 01.01.2019 nicht mehr im Support – Verbesserungen und das Beheben von Sicherheitslücken werden nicht mehr aktiv betreut. Durch den Health Check steht den Entwicklern nun aber ein standardisierter Ausweg bereit: Die administrative Person wird rechtzeitig auf geringe PHP-Versionen und somit auslaufendem Support durch WordPress hingewiesen.

Mit ausreichender Planung, Warnung der administrativen Personen und breiter Ankündigung von der Einstellung der Unterstützung alter Versionen steht dem langsamen, aber unkomplizierten Fortschritt nur noch wenig im Weg. So wird im März 2021 wird jede PHP-Version geringer als 7.2 bemängelt und zur Aktualisierung angeregt – der Weg ist eindeutig.

Ablösung alter jQuery-Bibliotheken

jQuery ist eine JavaScript-Bibliothek, die es Entwicklern leichter macht, teils komplexe Funktionen recht einfach umzusetzen. WordPress liefert schon lange diese Bibliothek mit aus und macht auch selbst regen Gebrauch davon. Nachteilig ist, dass diese Bibliothek lange nicht mehr aktualisiert wurde: Von WordPress 4.6 bis WordPress 5.5 war die Version 1.12.4 im Einsatz – eine jQuery-Version aus dem Jahr 2016 (4.6 stammt aus dem selben Jahr, 5.5 aus August 2020). Die Folgen sind auch hier, dass neuere Funktionen, bessere Unterstützung und teils auch schlankere Dateigrößen nicht bereitgestellt werden konnten.

Bereits in dem Release WordPress 5.5 hat man sich von jQuery Migrate 1.x getrennt – was für viele Kompatibilitätsprobleme gesorgt hat. Alte Plugins wären unter Umständen noch mit jQuery Migrate 1.x lauffähig gewesen, da es quasi Stützräder für eine veraltete Codebasis darstellte: Moderner Unterbau, der aber noch mit alter Technik kompatibel war. Mit dem Deaktivieren des Plugins wurden die Stützräder aber abgebaut, obwohl viele Websites noch nicht eigenständig lauffähig waren.
Man aktivierte recht schnell das alte Plugin erneut, hielt aber am Plan fest, jQuery und jQuery Migrate zu aktualiseren bzw. abzulösen.

Mit WordPress 5.6 hat man den Sprung auf jQuery 3.5.1 gewagt, auch die Unterkomponente jQuery UI wurde auf die neuste Version 1.12.1 zu aktualisiert. Zudem wurde jQuery Migrate in der aktuellsten Version 3.x bereitgestellt, was eine Kompatibilität zu den aktuellen und früheren jQuery-Versionen 2 und 3 ermöglichte. Nun steht es noch aus, jQuery Migrate komplett abzuschalten und so den Weg zu ebnen, WordPress noch mehr auf einen Blick nach vorn statt stets auch zurück einzustellen.
Vermutlich wird es aber aufgrund der auch durchaus gewünschten Rückwärtskompatibilität und der Erfahrungen beim Wechsel in WordPress 5.5 noch etwas dauern, ehe hier der finale Schritt getan wird. Dennoch bleibt festzuhalten: Auch bei der Unterstützung von modernem JavaScript ist viel Aktivität.

Einstellung von Browser-Unterstützung

Schon seit WordPress 3.2 wird die Browse Happy-Schnittstelle mit ausgeliefert: Sie prüft beim Aufruf des Dashboards, ob ein veralteter Browser genutzt wird. Ist dies der Fall, wird eine entsprechende Meldung eingeblendet, dass man auf einen aktuelleren Browser wechseln sollte. Dennoch hat sich WordPress zugleich einer breiten Kompatibilität versprochen: Alle Browser mit >1% Verbreitung der Nutzung werden noch als unterstützt ausgewiesen – der Maßstab, an den sich auch die Theme- und Plugin-Autoren orientieren sollen.

Auch hier kommt nun Bewegung hinein: Der Internet Explorer 11 hat auf Basis der zur Bewertung herangezogenen Seite caniuse.com die Schwelle von 1% unterschritten – im entsprechenden Vorschlag werden weitere Metriken ähnlichen Werts skizziert. Nun wird diskutiert, ob in WordPress 5.8 oder 5.9 die Unterstützung dieses Browsers eingestellt werden soll. Es ist wieder ein Schritt Richtung moderner Webtechnologie, bei dem man nicht mehr die alten und nach heutigem Maßstab funktionseingeschränkten Browser noch unterstützen muss.

Wer nicht mit der Zeit geht, geht mit der Zeit

WordPress und die Community haben in den letzten 24 Monaten große Schritte geplant und umgesetzt. All das war nicht immer reibungslos, was aber angesichts der Ruhe “in früheren Zeiten” und der aktuellen Modernisierungsbestrebungen auch nachvollziehbar ist. Die Community hat sich dabei nicht immer mit Ruhm bekleckert, aber zugleich auch gelernt, die gleichen Fehler nicht erneut zu tätigen.

Der Fortschritt ist notwendig und zeigt auf, dass sich das System in einem steten und vielleicht auch überfälligen Wandel befindet. Die Planungen für Aktualisierungen sind langfristig, zugleich stehen aber auch die Erfahrungen und die Werkzeuge bereit, um dauerhaft eine moderne Plattform für Anwender, Entwickler und Hoster bereitzustellen.

Man kann gespannt sein.

In einer früheren Version des Artikels war der Zeitstrahl der Veröffentlichungszylken von jQuery und jQuery Migrate etwas durcheinander geraten. Danke an Torsten Landsiedel für den Hinweis und Korrektur.

Schreibe einen Kommentar