Die Diskussion über die Auswahl des WordPress-Core-JavaScript-Frameworks wird mit Beiträgen von führenden Vertretern der Open-Source-Community fortgesetzt
Veröffentlicht: 2017-09-27
Der Slack-Kanal #core-js von WordPress war heute Morgen Gastgeber eines lebhaften und produktiven Meetings unter der Leitung von Andrew Duthie. Die Diskussion konzentrierte sich weniger auf spezifische Framework-Vergleiche als vielmehr auf die Rolle, die ein Framework beim Erstellen von JavaScript-basierten Schnittstellen für WordPress spielen wird. Zu den Mitwirkenden gesellten sich Kernentwickler und Führungskräfte aus den React- und Vue-Communities, Chrome-Ingenieure und andere interessierte Parteien von außerhalb der WordPress-Community.
„Dieser Chat wird sich hauptsächlich darauf konzentrieren, Anforderungen beim Aufbau von Kernfunktionen zu identifizieren, sich mit Plugin- und Themenautoren zu überschneiden und Muster zur Verringerung der Bindung an Frameworks zu entwickeln“, sagte Duthie. „Idealerweise ist dies eine höhere Ebene, als einfach die Vorzüge bestimmter Frameworks in einem Vakuum zu diskutieren, und sollte als Gelegenheit gesehen werden, zwischen Projekten zusammenzuarbeiten, um einen Weg für WordPress festzulegen, der Flexibilität und Widerstandsfähigkeit für zukünftige Abwanderung bietet.“
Duthie begann mit der Frage, welche Rolle ein Framework im Workflow eines WordPress-Entwicklers spielen sollte, und bat auch Framework-Mitwirkende, ihre Perspektiven zu Empfehlungen für erweiterbare Schnittstellen darzulegen. Diese Frage bot den Teilnehmern die Möglichkeit, sich zu Themen wie Unterstützung für Webkomponenten, Framework-agnostische Blockinteroperabilität für Gutenberg und wie sich dies auf das Plugin-Ökosystem von WordPress auswirken könnte, zu äußern.
„Ich bin etwas anderer Meinung als die Idee, dass jeder Kern (in diesem Fall Gutenberg), der einige der Feinheiten beim Erstellen einer zustandsbehafteten App unterstützt, der De-facto-Standard für die Plugin-Entwicklung sein wird“, sagte Gutenberg-Ingenieur Matias Ventura. „Das eigentliche Framework hier wird im Allgemeinen das sein, was WordPress und die APIs verfügbar machen.“
Mit einem Framework-agnostischen Ansatz zum Erstellen von Gutenblocks muss die Bibliothek, auf der der Kern aufbauen möchte, nicht zum De-facto-Standard für Plugin-Entwickler werden, aber viele außerhalb des Gutenberg-Teams glauben, dass dies in der Praxis unweigerlich so enden wird. Es gibt ganze Teams von Ingenieuren, die auf diese Entscheidung warten, die sich verpflichtet haben, das Framework zu übernehmen, auf das WordPress setzt.
„Um einen Einblick zu geben, wie sich die Entscheidung von WP für ein Framework auf Entwickler nachgelagert auswirkt, bin ich Entwickler an der Boston University und unser Plan ist es, uns auf das Framework zu konzentrieren, für das sich WP entscheidet, selbst wenn Gutenberg eine völlig agnostische API hat“, sagte Adam Pieniazek . „Wir sind in erster Linie ein WP-Shop (~ 1.000 Site-WP-Installationen machen die meisten/viele unserer öffentlichen Webpräsenz aus) und erstellen am Ende riesige Anpassungen auf WP, die oft ein Eintauchen in den Kern erfordern, um zu sehen, was tatsächlich im Hintergrund passiert . Ich persönlich mag Vue mehr als React, aber wenn sich WP für React entscheidet, wird sich BU auf den Aufbau von Fachwissen in React konzentrieren, wenn wir über die API hinaus spähen/debuggen müssen. Das bedeutet nicht, dass wir nicht auch Vue verwenden werden, aber es wird nicht unser Hauptaugenmerk sein.“
Das Feedback von Pieniazek spiegelt das von Carl Hancock, Mitbegründer von Gravity Forms, wider, der sagte, sein Team sei bereit, jede Bibliothek zu übernehmen, die WordPress auswählt.
„Die Leute werden am Ende größtenteils alle Core-Anwendungen übernehmen, trotz der Regenbögen und Schmetterlinge, die einige behaupten, wenn es um die Erstellung einer Abstraktionsschicht geht, damit Plugin-/Theme-Entwickler verwenden können, was sie wollen“, sagte Hancock im #core- js Kanal Anfang dieser Woche.
Viele Teilnehmer von außerhalb der WordPress-Community schienen mit einem Framework-agnostischen Ansatz einverstanden zu sein, und keiner war bestrebt, allen Entwicklern, die mit WordPress arbeiten, ein einziges Framework aufzuzwingen. Die verbleibende Sorge ist, wie dies praktisch funktioniert und ob es Entwickler in die verwirrende Position bringt, ein Framework auf einem Framework zu verwenden.
„Da Gutenberg selbst zu einer Plattform werden wird, für die man bauen kann, ist die beste Trennungsebene, wenn das Framework zum Erstellen des Kerns verwendet wird, aber nicht als API für Blockbauer verfügbar ist“, sagte AMP-Ingenieur Paul Bakaus. „Dies gibt einem die Wahl, das darunter liegende Fundament bei Bedarf auszutauschen.“
Der Gutenberg-Ingenieur Riad Benguella fasste den Ansatz zusammen, über den das Team diskutiert hat:
Ich denke, was wir zu kommunizieren versuchen, ist so etwas wie:
– WordPress Core wird dieses X-Framework intern verwenden
– Wenn Sie es verwenden möchten, finden wir es gut
– Wenn Sie etwas anderes verwenden möchten, können Sie dies genauso einfach tun, wie Sie das vom Core gewählte Framework verwenden würden
Benguella sagte auch, dass eines der Ziele für Gutenberg darin besteht, „die Grundlage dafür zu schaffen, wie wir die Benutzeroberfläche von WordPress in Zukunft erweitern“. Sobald es ausgeliefert wird, wird das Team wahrscheinlich andere Teile des wp-admin ins Visier nehmen und sie auf die gleiche Weise erstellen.
„Wenn alle Teile der Benutzeroberfläche von WP über eine Standardschnittstelle erweitert werden können, sei es eine einfache ‚Daten runter, Ereignisse hoch‘-API oder das Erwarten eines WC, würde dies meines Erachtens die Bedenken, ‚welches Framework für den Kern zu verwenden ist, klar voneinander trennen ' vs. 'Welches Framework für die Entwicklung von Erweiterungen verwenden?'“, sagte Evan You, der Schöpfer von Vue.js.

Als React-Betreuer Dan Abromov nach seinen Gedanken gefragt wurde, ob React ein primäres Framework für WordPress werden soll, zögerte er, sich für die Übernahme der Bibliothek durch WordPress einzusetzen. Seine Antwort unterstrich die Notwendigkeit eines Framework-agnostischen Ansatzes für die Erweiterung von Gutenberg und zukünftige Überarbeitungen der WP-Schnittstelle.
„Ich kenne WordPress nicht wirklich gut, daher kann ich schwer sagen, ob es für den Anwendungsfall gut geeignet ist oder nicht“, sagte Abramov. „Im Allgemeinen verwenden wir React für hochgradig interaktive Benutzeroberflächen und finden, dass es gut mit der App-Größe skaliert. Auch technische Fragen dazu beantworte ich gerne. Aber ich denke, im Allgemeinen haben die Leute eine starke Meinung zum Beispiel zu Templating vs. Ausdrucksstärke, und ich denke nicht, dass es der beste Weg ist, React jedem aufzuzwingen.“
„Mir geht es auch so“, sagte Evan You. „Jedem ein einziges Framework aufzuzwingen, egal welches, ist meiner Meinung nach keine gute Idee, da es zwangsläufig die Gruppe von Entwicklern entfremden wird, die sich nicht für dieses Framework interessieren, und ein größeres langfristiges Stabilitätsrisiko darstellt.“
Abramov sagte auch, dass die Menschen in Bezug auf die Auswahl eines Frameworks bereits „sehr verbittert und spalterisch“ seien. Er hat vor dem Treffen auch ein ähnliches Gefühl getwittert.
Wenn ich Diskussionsthreads (z. B. über WordPress) lese, habe ich das Gefühl, dass die Leute jedes Team als feindselig gegenüber anderen wahrnehmen. Das ist falsch.
– Dan (@dan_abramov) 26. September 2017
Stellen Sie es sich vor, als würden Sie einen Garten pflegen. Sie können gerne bei uns abhängen. Andere Gärten sind auch toll
– Dan (@dan_abramov) 26. September 2017
„Ich glaube, es ist wichtig (und technisch machbar), ‚welches Framework für den Kern zu verwenden' und ‚welches Framework Community-Entwickler für Erweiterungen verwenden' zu trennen“, sagte Evan You.
„Ja, ich denke, es gibt hier ein Ziel, unparteiisch zu sein für das, was wir Plugin-Autoren offenlegen, solange die APIs/Schnittstellen, die wir offenlegen, ausreichend flexibel (und einfach) sind, um die Benutzeroberflächen und Interaktionen zu erstellen, die sie implementieren müssen. “, sagte Andrew Duthie.
Das Thema der Unterstützung der Interoperabilität von Webkomponenten für Gutenblocks war ebenfalls Teil der Diskussion während des Treffens.
„Obwohl sie derzeit weniger leistungsfähig sind als die meisten aktuellen Frameworks, werden sie wahrscheinlich zu einem W3C-Standard, der sicherstellt, dass sie bestehen bleiben und sich weiterentwickeln“, sagte Felix Arntz. „Sobald die Browserunterstützung vollständig vorhanden ist, müssen weniger Funktionen durch ein darauf aufbauendes Framework implementiert werden.“
Der Vertreter von Polymer.js, Justin Fagnani, sagte, er widerspreche, dass sie „weniger leistungsfähig“ seien, und stellte fest, dass Webkomponenten bereits ein W3C-Standard seien.
„Ich denke, WP ist auch einzigartig positioniert, um den Support für Webkomponenten überall nativ voranzutreiben“, sagte Darren Ethier, Kernentwickler von EventEspresso. „So ziemlich alle Frameworks können jetzt mit der Webkomponentenspezifikation arbeiten. Es kommt nur auf die richtige Umsetzung an.“
Mehrere Teilnehmer verwiesen auf custom-elements-everywhere.com, eine Website, die den Fortschritt beliebter JS-Frameworks bei der Kommunikation benutzerdefinierter Elemente auf eine Weise anzeigt, die die Interoperabilität fördert. Matias Ventura hat die Core-Entwickler von React und Vue gefragt, wie Webkomponenten (und ihre Zukunft) derzeit in die jeweiligen Frameworks passen.
„In React haben wir einige Unterstützung für Webkomponenten, haben ihr aber keine große Priorität eingeräumt, da Anwendungsfälle in der Vergangenheit dünn erschienen, insbesondere da das Hinzufügen von Webkomponenten in einer Erstanbieteranwendung, in der Sie sich befinden, nicht sehr sinnvoll war kontrollieren den gesamten Stack – aber wir haben dennoch etwas Unterstützung für sie und ich freue mich darauf, jetzt oder in Zukunft weitere hinzuzufügen“, sagte Sophie Alpert.
„Auf der hohen Ebene denke ich, dass Frameworks wie React/Vue das bieten, was in Webkomponenten nicht wirklich angesprochen wird: effiziente und deklarative DOM-Updates, die auf Zustandsänderungen reagieren“, sagte Evan You. „Deshalb gibt es neben WC auch Polymer. Ich habe den Wert von WC als Interop-Schnittstelle immer anerkannt.“
Insgesamt waren die Teilnehmer des Treffens respektvoll, kooperativ und bereit, ihr Fachwissen einzubringen, um den WordPress-Mitwirkenden zu helfen, den besten Weg im Rahmenauswahlprozess zu finden. Die Diskussion wird beim Treffen nächste Woche und wahrscheinlich in den Kommentaren eines bevorstehenden Make/Core-Beitrags fortgesetzt, der das Treffen zusammenfasst.
