Gedanken zur WordPress-Interaktivitäts-API

Die WordPress-Interaktivitäts-API stellt ein «Framework» bereit, welches Entwicklern ermöglicht, vordefinierte Methoden zu verwenden, um JavaScript-Interaktion hinzuzufügen. Obwohl die Hauptfunktionalität für Entwickler erst in WordPress 6.5 bereitgestellt wird, wurde ein kleiner Teil davon mit WordPress 6.4 eingeführt, als die Funktion «Bei Klick erweitern» in den Bildblock eingeführt wurde.

Wenn du ein Entwickler bist, schau dir mal den HTML-Code des anschliessenden Bildblocks an. Du siehst eine Inline-Konfiguration für die Javascript-Funktionalität, mit Werte und Verweise auf Klickhandler. Diese komplexen Regeln werden auf den Block angewendet, damit die Interaktivitäts-API mit dem Inhalt interagieren kann. (In diesem Fall wird das Bild vergrössert, wenn man darauf klickt.)

Die JavaScript-Datei für den Bildblock ist über 5 KB gross, was viel schwerer ist als ein selbstcodiertes Skript für die gleiche Funktionalität. Darüber hinaus ist das Basisskript für die API, das die von allen Blöcken gemeinsam genutzte Funktionalität enthält, über 30 KB gross. Dies wird aber nur geladen, wenn es einen Block auf der Seite gibt, der es benötigt. Das ist gut für die Leistung. Sofern das Basis-Skript nur so klein bleibt in künftigen Versionen, kann man gut damit leben. Die grösseren Skripten kommen erst, wenn man komplexere Interaktionen auf Basis dieses Skripts bauen will.

Das Prinzip hinter der API—eine «standardisierte» Art der Programmierung interaktiver Frontend-Funktionalitäten wie Button-Klicks, Modals usw.—ist eine gute Idee, wenn ein Team gemeinsam an solchen Interaktionen arbeitet. Dadurch kann man besser sicherstellen, dass die Funktionalität immer in der gleichen Weise von allen Beteiligten entwickelt wird.

Es gibt aber auch einfachere Möglichkeiten, diese Art von Interaktion zu erstellen: so zum Beispiel einfaches Javascript oder React. Um Frameworks wie die neue API zu erlernen, muss man mehrere Prinzipien lernen: der anfängliche Code (oder das Prinzip) von Javascript, eventuell die eigentliche Basis React, sowie die WordPress-eigene API.

…die Basis dieser neuen API ist Preact: eine leichte Variante von React, die wir bereits seit einigen Jahren für unseren eigenen Projekten einsetzen…

Aus Diskussionen in Twitter/X stellt sich heraus, dass die Basis dieser neuen API ist Preact: eine viel leichtere Variante von React, die wir bereits seit einigen Jahren für unseren eigenen Projekten einsetzen. Es ist noch nicht klar, wie man React-Vorgehen mit dem API-Vorgehen mischt, oder ob dies überhaupt möglich oder nötig ist. Wir halten ganz sicher eine Auge darauf, sobald weitere Code-Beispiele verfügbar sind.

Die Geschwindigkeit der Entwicklung ist ein zentrales Argument, welches für die Anwendung einer solchen API spricht. Die meisten Menschen möchten Ziele schneller erreichen. Wenn du jedoch ein Framework verwendest, musst du eine Entscheidung über die Kompromisse in Bezug auf Leistung und Komplexität treffen. Du musst zudem bedenken, dass du nicht nur die Prinzipien hinter der Entwicklung von interaktiven Elemente kennen und verstehen musst, sondern auch, wie du die Interaktivitäts-API überhaupt verwenden solltest.

Die Dokumentation auf WordPress.org ist zum Glück bereits ziemlich umfangreich, erfordert aber auf jeden Fall ein einigermassen gutes Verständnis von JavaScript und State Management. (Wenn du React bereits verwendest, dürften die Ideen bekannt vorkommen. Wenn du React bereits verwendest, benötigst du diese API aber möglicherweise gar nicht.)

…Wir wollen sicherstellen, dass unsere Kompetenzen und Projekte nicht durch eine Abhängigkeit auf WordPress-eigenen APIs eingeschränkt werden…

Im Idealfall würdest du dich dafür entscheiden, die Basissprache (JavaScript) zu erlernen und dann ein Framework dort zu verwenden, wo es dir Vorteile bringt. Aus diesem Grund bauen wir Web-Apps mit Preact. Wir können den minimalen technischen Overhead akzeptieren und dies macht die Erstellung von interaktiven Ansichten um einiges weniger zeitaufwändig. 

Wenn wir Preact und React nicht bereits gelernt hätten, wäre diese neue API vielleicht sinnvoller… aber nur, wenn wir nie etwas ausserhalb des WordPress-Ökosystems erstellen möchten. Dies ist für uns aber nicht der Fall: wir bauen komplexe interaktive Lösungen auch vollständig ohne WordPress. Entsprechend wollen wir sicherstellen, dass unsere Kompetenzen und Projekte nicht durch eine Abhängigkeit auf WordPress-eigenen APIs eingeschränkt werden.

Wenn du tragbare Fähigkeiten erlernen möchtest—hier Javascript, das unabhängig von WordPress funktioniert—ist es besser, Code zu erstellen und zu implementieren, der nicht immer an die von WordPress-Mitwirkenden festgelegten Prinzipien gebunden ist. Vor allem, weil die Möglichkeiten begrenzter sind als bei weitaus etablierteren Lösungen. Zudem bist du dadurch immer darauf angewiesen, dass die Entwickler hinter WordPress die eigens eingeführten Fehler beheben oder die von dir benötigten Funktionen hinzufügen. Entwickler stolpern bereits seit der Einführung des Block Editors über die Entscheidungen der WordPress-Entwickler im Bereich CSS, vor allem, da gewisse Denkfehler über ein paar Jahre ungelöst bleiben.

Wenn du dich mit dem Schreiben von JavaScript auskennst, solltest du die Interaktivitäts-API nicht automatisch verwenden, es sei denn, du möchtest deine Arbeit an ein offizielles Open-Source-Repository übermitteln. Falls du nicht über ein etabliertes Vorgehen zum Erstellen interaktiver Elemente verfügst, ist die neue API wiederum ein Beispiel, wie man ein solches Vorgehen etabliert.

Zu den Vorteilen der Verwendung der Interaktivitäts-API gehört die Abhängigkeit von einem Basiscode, der von einem Expertenteam bereitgestellt wurde. Dies ist ein guter Grund für die Verwendung, wenn du weniger erfahren bist und voller Fokus auf WordPress setzen möchtest. Allerdings haben viele unabhängige WordPress-Entwickler in den letzten fünf oder sechs Jahren herausgestellt, dass wenn sie sich auf die komplizierte Codebasis verlassen, welche die WordPress-Entwickler bereitstellen, sie vollständig von der Qualität ihrer Arbeit und ihrer Geschwindigkeit bei der Problemlösung abhängig weden. Dies hat zum Teil positive aber auch manchmal negative Auswirkungen für den eigenen Projekten.

Fazit

Die neue Interaktivitäts-API ist eine voraussichtlich tolle Lösung von erfahrenen Entwicklern, die dir kostenlos im Rahmen der Open-Source-Lizenz bereitgestellt wird. Wir beobachten genau, wie die Entwicklung der API vorangeht und schauen nach ihrer Etablierung, inwiefern sie die Entwicklungsarbeit wirklich erleichtern kann. Wie beim Einsatz aller Technik von Dritten, die wir für unsere Projekte und unsere Kunden wählen, bleibt eine Abwägung zwischen den Vorteilen und Nachteilen immer im Vordergrund.

W.A. de Vigier Awards Nächster Post