WordPress explore une approche JavaScript Framework-Agnostic pour la construction de blocs Gutenberg

Publié: 2017-09-23
crédit photo : found_drama E.'s pirate town – (licence)

La discussion concernant la sélection du framework JavaScript de WordPress se poursuit dans le canal Slack #core-js avant la réunion de la semaine prochaine. L'un des sujets les plus récents est la possibilité d'un rendu de bloc indépendant du framework pour Gutenberg, ce qui permettrait aux développeurs d'étendre le nouvel éditeur à l'aide de la bibliothèque JS de leur choix. Cela signifie que les blocs Gutenberg, qui sont familièrement appelés "Gutenblocks", peuvent être construits avec Vue, React, Preact, Angular ou tout ce que le développeur se sent à l'aise d'utiliser.

Les partisans de cette idée soutiennent que la poursuite d'une approche plus flexible rend la décision du cadre JS de base de WordPress moins critique. Tout en répondant aux questions sur la chaîne #core-js, Gary Pendergast a expliqué comment Gutenberg pourrait être construit pour maintenir la séparation.

"Je ne plaisante vraiment pas quand je dis que cette décision n'a pas d'importance, même pour les personnes qui contribuent à Gutenberg", a déclaré Pendergast. "Dans #2463, la bibliothèque est entièrement traitée comme une bibliothèque utilitaire, un peu comme nous utilisons lodash, par exemple. Il effectue une poignée de tâches et peut être retiré et remplacé relativement facilement par quelque chose de complètement différent, sans perturber le reste de la base de code. Pour les personnes qui contribuent à Gutenberg, elles contribuent dans le style de codage de Gutenberg, et non dans le style de la bibliothèque que nous importons.

Interrogé sur un calendrier pour le moment où la décision sera prise et quels facteurs sont pris en compte, Pendergast a répondu qu'il n'y avait pas de calendrier et que les personnes intéressées à participer devraient bloguer sur leurs expériences et écrire des exemples de choses qu'ils peuvent construire avec les frameworks JS qu'ils sont familiers.

"Il n'y a ni feuille de route, ni calendrier, et il n'y en a pas besoin", a déclaré Pendergast. "Comme Matt l'a mentionné, c'est vraiment juste une décision technique - la décision importante pour la communauté au sens large a été de choisir" ne pas réagir ". Malheureusement, cette décision a été exagérée et fortement confondue avec 'avec quelle bibliothèque JS pourrai-je construire mes plugins ?' et parfois "à quoi les pratiques de la bibliothèque JS ressembleront-elles aux blocs Gutenberg ?", aucune d'entre elles n'étant liée. Les tweets et les messages qui traitent cela comme une course de chevaux ne sont pas utiles de cette façon. »

Pendergast a déclaré que quelle que soit la bibliothèque sélectionnée, "continuera à être enveloppée par l'élément WordPress, la bibliothèque sous-jacente ne sera pas exposée". L'équipe Gutenberg s'efforce de supprimer toutes les dépendances de bibliothèque de ses composants afin que les développeurs de plugins puissent utiliser la bibliothèque de leur choix.

Cependant, d'autres membres de la communauté ne sont pas si désireux de reléguer la bibliothèque JS sélectionnée pour le noyau à une simple décision technique ou à une bibliothèque utilitaire.

"La plupart des développeurs comprennent que leurs plugins ne sont pas liés par le framework choisi pour core/Gutenberg", a déclaré Kevin Hoffman. « Mais cela ne diminue pas l'importance de la décision. Si nous voulons encourager plus de contributeurs, nous serions bien servis de choisir un cadre dans lequel une majorité significative se sent capable et confiante. Si cette majorité développe des plugins avec un framework et doit en apprendre un autre afin de contribuer au noyau, nous limitons le nombre de contributeurs potentiels.

Peter Booker soutient que, quelle que soit l'élégance de la séparation de Gutenberg, avoir une bonne compréhension de la bibliothèque choisie pour le noyau affecte la capacité des développeurs à résoudre en profondeur certains problèmes.

"Je ne pense pas que nous devrions être si dédaigneux du choix comme une décision technique mineure", a déclaré Booker. « Comprendre le fonctionnement de PHP, JavaScript et Backbone (entre autres) est essentiel pour pouvoir déboguer correctement les problèmes avec WordPress. Le framework JS choisi pour Gutenberg va impacter un grand nombre de personnes, même si nous ne sommes pas des contributeurs principaux. Il s'agira de connaissances essentielles pour pouvoir résoudre complètement les problèmes. C'est une décision qui aura un impact sur bien plus de personnes que la seule équipe de Gutenberg."

Quelles sont les implications de fournir une approche flexible et indépendante du cadre pour la construction de Gutenblocks ?

Jason Bahl a demandé si quelqu'un avait essayé de mélanger React, Preact, Vue et Angular dans une seule application pour voir si c'était "une recette pour un cauchemar de performance". Il a proposé un exemple de scénario dans lequel Gravity Forms construit des Gutenblocks basés sur Vue, Yoast a des blocs basés sur React, WooCommerce construit des blocs avec Preact et un autre plugin utilise Ember.

"Cela semble plutôt agréable d'être flexible et de permettre aux gens d'utiliser n'importe quoi, mais cela pourrait également entraîner de nombreuses divisions sur les meilleures pratiques et potentiellement des problèmes de performances", a déclaré Bahl. « Nous verrons apparaître des didacticiels sur la façon de créer des Gutenblocks dans Vue, React, Preact, Ember, Vanilla JS, etc. . La flexibilité est agréable dans une certaine mesure, mais une opinion bien arrêtée à un certain niveau est également bonne. »

Carl Hancock, co-fondateur de Gravity Forms, affirme que proposer une approche indépendante du framework pour la construction de Gutenblocks aura peu d'influence sur les développeurs qui étendent le projet. La décision ne peut pas être rendue moins critique en offrant plus de flexibilité, car les développeurs adopteront inévitablement tout ce que WordPress utilise.

"Les gens vont finir par adopter la plupart des utilisations de base malgré les arcs-en-ciel et les papillons que certains prétendent en ce qui concerne la création d'une couche d'abstraction afin que les développeurs de plugins/thèmes puissent utiliser ce qu'ils veulent", a déclaré Hancock. «Ce qui signifie, aussi complexe que soit le cadre de base, aura un impact direct sur la barrière à l'entrée pour les développeurs de plugins et de thèmes. Cette barrière à l'entrée a été historiquement faible à ce jour et a contribué directement à la croissance de WordPress en tant que CMS auto-hébergé. Augmenter considérablement cette barrière à l'entrée n'est pas nécessairement une mauvaise chose. Par exemple, Gravity Forms utilisera Preact, Vue, peu importe, car nous avons la main-d'œuvre et les compétences pour le faire lorsque nous pourrons enfin décider de le faire une fois que le noyau aura pris sa décision.

Opportunité de WordPress pour faire progresser le Web

WordPress alimente actuellement 28% de tous les sites Web, selon W3 Techs, et quel que soit le cadre qu'il choisit, il aura un impact majeur sur la bibliothèque que de nombreux développeurs décident d'apprendre afin d'étendre le logiciel et de faire avancer leur carrière.

Matias Ventura, l'un des responsables techniques du projet Gutenberg, a encouragé les participants à la discussion à avoir une vue d'ensemble et à saisir l'opportunité de travailler ensemble et de collaborer sur une solution pour WordPress qui fera progresser le Web. Les efforts de l'équipe pour collaborer avec des représentants de cadres concurrents se démarquent dans un écosystème généralement fragmenté et agité.

"Je suis ravi de l'opportunité que nous avons de faire progresser le développement Web en termes de représentation de l'interface utilisateur JavaScript, de la même manière que WordPress a été une force motrice pour les normes Web au cours de la dernière décennie", a déclaré Ventura. "C'est aussi là que je vois que nous avons une responsabilité en tant que projet, car les gens continueront à apprendre le développement Web via WP. De nombreuses personnes ont été initiées à PHP via WordPress, interagissant à l'origine avec les fonctions et les API WP, plongeant finalement un peu plus profondément dans le langage si nécessaire. Je vois que notre noyau reste proche du langage JS, car cela donne l'outil le plus significatif pour apprendre, couvrant tous les frameworks et bibliothèques.

Ventura a assuré aux participants à la discussion en cours que l'équipe de Gutenberg est à l'écoute et travaille à une solution qui fera avancer le Web.

"Nous sommes absolument conscients que la façon dont nous construisons et ce que nous proposons via Gutenberg affectera la communauté des développeurs et nous ne prenons pas cela à la légère, bien au contraire", a déclaré Ventura. "J'ai parlé avec Evan (Vue) et Jason (Preact) parce que plutôt que d'avoir un concours "choisissez votre framework", cela semble être une opportunité de collaborer et de faire avancer le web."