Le créateur de Vue.js, Evan You, se penche sur la discussion sur le framework JavaScript de WordPress

Publié: 2017-06-06
crédit photo : JSConf Chine

La semaine dernière, les principaux contributeurs de WordPress ont réduit leurs considérations pour un nouveau framework JavaScript à React et Vue. Comme l'équipe principale a plus de connaissances collectives sur le travail avec React, elle a contacté des développeurs ayant différentes expériences d'utilisation d'autres frameworks dans un contexte WordPress.

L'une des principales préoccupations des contributeurs concernant Vue est la longévité du projet. J'ai demandé au créateur de Vue, Evan You, s'il pouvait intervenir sur le sujet pour donner aux contributeurs WordPress une meilleure compréhension du projet, en particulier en ce qui concerne ses efforts pour cultiver des responsables supplémentaires pour aider à partager la charge de la maintenance.

"Je pense qu'il est important de regarder les antécédents - Vue existe depuis près de 4 ans, et tout le travail a été fait en public sur GitHub afin que n'importe qui puisse aller vérifier l'historique de maintenance", a déclaré You. "Bien qu'il ait été en grande partie développé par moi, la maintenance actuelle est beaucoup plus axée sur la communauté. Nous avons des membres actifs de l'équipe de base qui trient la plupart des problèmes et un pourcentage de plus en plus important des problèmes résolus par les PR communautaires. Donc, oui, j'avais déjà travaillé sur la formation de mainteneurs supplémentaires et je continuerai à le faire.

Vous recevez actuellement 10 000 $/mois de dons Patreon récurrents qui financent ses efforts à plein temps sur Vue. Avant cela, il a également travaillé chez Google et Meteor. Pendant son séjour chez Google, certains des projets sur lesquels vous avez travaillé utilisaient Angular, qu'il a trouvé trop lourd pour ses cas d'utilisation à l'époque. Il a construit Vue.js pour être une implémentation plus légère des concepts qu'il aimait chez Angular.

Vous avez également récemment déclaré qu'il avait beaucoup appris de la communauté React, qui a influencé certaines de ses décisions techniques dans Vue 2.

"Tout d'abord, Vue 2 utilise le même modèle de rendu basé sur Virtual DOM en dessous, qui a été lancé pour la première fois par React", a déclaré You. "L'introduction d'un DOM virtuel a permis à Vue d'exposer la puissance de la composition vdom tout en maintenant l'accessibilité.

"La communauté React est également très active lorsque de nouveaux domaines problématiques sont explorés, par exemple la gestion d'état et la gestion CSS. Il existe de nombreuses solutions concurrentes et beaucoup d'inspirations lorsque j'implémentais des solutions officielles pour Vue.

Evan You répond aux idées fausses des principaux contributeurs de WordPress sur Vue.js

Vous avez dit qu'il suivait les discussions des contributeurs de WordPress sur React vs Vue mais qu'il ne donnerait pas d'avis sur le meilleur choix pour le projet.

"Ma réponse serait évidemment biaisée, et honnêtement, je ne suis pas à la place de l'équipe principale de WP, donc je n'ai pas assez de recul pour faire un choix", a déclaré You. "Cependant, je peux fournir des commentaires sur certaines des questions discutées dans l'espoir de les aider à prendre une décision plus éclairée."

Vous avez laissé un commentaire sur les dernières notes de réunion Javascript avec des éclaircissements sur quelques malentendus à propos de Vue.js. Vous avez abordé le point concernant «l'adoption de JavaScript dans le langage», car certains contributeurs pensent que le langage de modélisation de Vue obscurcit le JavaScript sous-jacent.

"Je pense qu'"adopter JavaScript le langage" est une autre primitive de React que nous ne voyons pas dans Vue", a déclaré Andrew Duthie lors de la dernière réunion.

Votre réponse compare l'utilisation par Vue des modèles en tant que "sucre de syntaxe pour la représentation de la vue au-dessus du HTML" à ce qu'il pense être une utilisation similaire dans le cas de JSX en tant que représentation de la vue au-dessus de JavaScript :

La richesse croissante de l'UI ne nécessite PAS de tout mettre en JavaScript. D'un autre côté, ce n'est pas parce que Vue utilise des modèles par défaut qu'il permet aux gens de se débrouiller sans apprendre correctement JavaScript.

Les modèles de Vue sont compilés dans des fonctions de rendu JavaScript sous le capot et ils sont en fait plus proches de JavaScript que des modèles de chaîne traditionnels. C'est juste une couche de sucre de syntaxe au-dessus de la représentation sous-jacente du DOM virtuel. Considérez JSX comme un sucre de syntaxe pour la représentation de la vue au-dessus de JS ; Les modèles Vue sont du sucre de syntaxe pour la représentation de la vue au-dessus du HTML.

JSX/Raw JS offre plus de flexibilité lorsque vous devez appliquer une manipulation directe des nœuds DOM virtuels, c'est pourquoi Vue prend également en charge les fonctions de rendu. Mais cela ne met pas deux paradigmes opposés sous la même tente - cela permet simplement à l'utilisateur de sauter la couche de sucre syntaxique pour plus de contrôle.

Vous avez dit que l'idée derrière les modèles en plus des fonctions de rendu est de fournir une "meilleure accessibilité", une préoccupation partagée par de nombreux autres partisans de WordPress adoptant Vue.

"Les utilisateurs qui sont plus à l'aise avec HTML et qui ont des cas d'utilisation plus simples peuvent utiliser le modèle, tandis que les utilisateurs qui connaissent déjà les fonctions JSX/rendu peuvent exploiter toute la puissance de JS", a déclaré You. "Cela conviendrait parfaitement à l'utilisation du noyau WP : les utilisateurs de la communauté qui se soucient de l'accessibilité ont plus de facilité à démarrer, tandis que l'équipe principale a accès aux fonctions JSX/rendu pour les cas d'utilisation avancés."

Vous avez également abordé le problème de la longévité en offrant plus d'informations sur les processus de développement de Vue. Il a confirmé que la base de code actuelle est en grande partie développée par lui seul, mais la maintenance est répartie sur une équipe de base avec des membres partout dans le monde.

"D'autres contributeurs ont un nombre de commits inférieur car leurs contributions sont toutes soumises sous la forme de PR et nous utilisons la fonctionnalité" Squash and commit "sur GitHub afin que chaque PR entraîne un seul commit pour le contributeur", a déclaré You. « Nous avons fusionné près de 500 RP dans le référentiel principal, et bien d'autres dans l'ensemble de l'organisation. D'autres dépôts sous l'organisation vuejs, par exemple vuex, vue-router, vuejs.org sont également largement maintenus par des membres de l'équipe dédiés.

Vous avez également apporté des éclaircissements sur les questions de stabilité et de compatibilité future, car les contributeurs de WordPress ont présenté des inquiétudes concernant les changements de rupture dans le langage de modèle dans Vue 2.0.

"Cela demande quelques éclaircissements : le versionnage de Vue suit strictement semver", a déclaré You. "La seule fois où il y avait eu des changements d'API après la 1.0, c'était la bosse de la 2.0. La syntaxe du modèle fait partie de l'API, elle ne va donc pas [casser], et entre les changements de version majeurs, nous nous engageons à assurer une rétrocompatibilité à 100 % de l'API. Nous prenons la stabilité très au sérieux, tout comme notre communauté et nos utilisateurs en production, y compris GitLab, Vice et certaines des plus grandes sociétés Internet en Chine.

Comme de nombreux contributeurs principaux de WordPress se sont développés au-dessus de React pendant des années, la contribution de You offre un aperçu plus détaillé et approfondi de Vue que les contributeurs ont demandé lors de diverses séries de commentaires. La discussion se poursuivra au cours des prochaines semaines et les contributeurs prévoient d'inclure le sujet au sommet des contributeurs de WordCamp Europe.