El creador de Vue.js, Evan You, opina sobre la discusión del marco de JavaScript de WordPress
Publicado: 2017-06-06
La semana pasada, los principales contribuyentes de WordPress redujeron sus consideraciones para un nuevo marco de JavaScript a React y Vue. A medida que el equipo central tiene más conocimiento colectivo sobre el trabajo con React, se han acercado a los desarrolladores con diferentes experiencias en el uso de otros marcos en un contexto de WordPress.
Una de las principales preocupaciones que tienen los contribuyentes con respecto a Vue es la longevidad del proyecto. Le pregunté al creador de Vue, Evan You, si podía opinar sobre el tema para brindarles a los colaboradores de WordPress una mejor comprensión del proyecto, específicamente con respecto a sus esfuerzos para cultivar mantenedores adicionales para ayudar a compartir la carga del mantenimiento.
"Creo que es importante mirar el historial: Vue ha existido durante casi 4 años y todo el trabajo se ha realizado en público en GitHub para que cualquiera pueda consultar el historial de mantenimiento", dijo You. “Si bien lo he desarrollado en gran medida, el mantenimiento actual está mucho más impulsado por la comunidad. Tenemos miembros activos del equipo central que evalúan la mayoría de los problemas y un porcentaje cada vez mayor de los problemas solucionados por los RP de la comunidad. Entonces, sí, ya había estado trabajando en cultivar mantenedores adicionales y continuaré haciéndolo”.
Actualmente recibe $ 10K / mes de donaciones recurrentes de Patreon que financian sus esfuerzos de tiempo completo trabajando en Vue. Antes de esto, también trabajó en Google y Meteor. Durante su tiempo en Google, algunos de los proyectos en los que trabajó utilizaron Angular, que dijo que consideraba demasiado pesado para sus casos de uso en ese momento. Creó Vue.js para que fuera una implementación más liviana de los conceptos que le gustaban de Angular.
También dijiste recientemente que ha aprendido bastante de la comunidad de React, lo que ha influido en algunas de sus decisiones técnicas en Vue 2.
Aprendí mucho de la comunidad de React, tanto en código como en personas. Espero que todos puedan ser como @dan_abramov. Paz.
— Evan You (@youyuxi) 29 de mayo de 2017
“Primero, Vue 2 usa el mismo modelo de renderizado basado en Virtual DOM debajo, que fue iniciado por primera vez por React”, dijo You. “La introducción de un DOM virtual permitió a Vue exponer el poder de la composición de vdom mientras mantenía la accesibilidad.
“La comunidad de React también es muy activa cuando se exploran nuevos dominios de problemas, por ejemplo, gestión de estado y gestión de CSS. Hay muchas soluciones en competencia y muchas inspiraciones cuando estaba implementando soluciones oficiales para Vue”.
Evan You aborda los conceptos erróneos de los colaboradores principales de WordPress sobre Vue.js
Dijiste que ha estado siguiendo las discusiones de los colaboradores de WordPress sobre React vs Vue, pero no ofrecerías una opinión sobre cuál es una mejor opción para el proyecto.
"Obviamente, mi respuesta sería sesgada y, sinceramente, no estoy en la piel del equipo central de WP, por lo que no tengo suficiente perspectiva para tomar una decisión", dijo You. “Sin embargo, puedo proporcionar comentarios sobre algunos de los temas que se están discutiendo con la esperanza de ayudarlos a tomar una decisión mejor informada”.
Dejó un comentario en las notas de la reunión de Javascript más recientes con aclaraciones sobre algunos malentendidos sobre Vue.js. Usted abordó el punto con respecto a "adoptar el lenguaje JavaScript", ya que algunos colaboradores piensan que el lenguaje de plantillas de Vue oscurece el JavaScript subyacente.
“Creo que 'adoptar el lenguaje JavaScript' es otra primitiva de React que no vemos en Vue”, dijo Andrew Duthie durante la última reunión.

Su respuesta compara el uso de plantillas de Vue como "azúcar de sintaxis para la representación de vista sobre HTML" con lo que él cree que es un uso similar en el caso de JSX como representación de vista sobre JavaScript:
La creciente riqueza de la interfaz de usuario NO requiere poner todo en JavaScript. Por otro lado, el hecho de que Vue use plantillas de forma predeterminada no significa que permita a las personas arreglárselas sin aprender JavaScript correctamente.
Las plantillas de Vue se compilan en funciones de representación de JavaScript bajo el capó y, en realidad, están más cerca de JavaScript que de las plantillas de cadenas tradicionales. Es solo una capa de azúcar de sintaxis encima de la representación DOM virtual subyacente. Piense en JSX como azúcar de sintaxis para la representación de vistas sobre JS; Las plantillas de Vue son azúcar de sintaxis para la representación de vistas sobre HTML.
JSX/Raw JS brinda más flexibilidad cuando necesita aplicar la manipulación directa de los nodos DOM virtuales, es por eso que Vue también admite funciones de procesamiento. Pero esto no es poner dos paradigmas opuestos bajo la misma tienda, simplemente permite que el usuario se salte la capa de azúcar de sintaxis para tener más control.
Dijiste que la idea detrás de las plantillas además de las funciones de representación es proporcionar una "mejor accesibilidad", una preocupación compartida por muchos otros defensores de que WordPress adopte Vue.
“Los usuarios que se sienten más cómodos con HTML y tienen casos de uso más simples pueden usar la plantilla, mientras que los usuarios que ya están familiarizados con las funciones de renderizado/JSX pueden aprovechar todo el poder de JS”, dijo You. "Esto encajaría bastante bien para el uso del núcleo de WP: los usuarios de la comunidad que se preocupan por la accesibilidad tienen más facilidad para comenzar, mientras que el equipo central tiene acceso a las funciones JSX/render para casos de uso avanzado".
También abordó la preocupación de la longevidad al ofrecer más información sobre los procesos de desarrollo de Vue. Confirmó que el código base actual está desarrollado en gran parte por él solo, pero el mantenimiento se distribuye entre un equipo central con miembros en todo el mundo.
"Otros contribuyentes tienen recuentos de confirmaciones más bajos porque todas sus contribuciones se envían en forma de PR y usamos la función 'Squash and commit' en GitHub para que cada PR resulte en solo una confirmación para el contribuyente", dijo You. “Hemos fusionado cerca de 500 relaciones públicas solo en el repositorio central y muchos más en toda la organización. Otros repositorios bajo la organización vuejs, por ejemplo, vuex, vue-router, vuejs.org también son mantenidos en gran medida por miembros del equipo dedicados”.
También ofreció aclaraciones sobre cuestiones de estabilidad y compatibilidad futura, ya que los colaboradores de WordPress presentaron preocupaciones sobre cambios importantes en el lenguaje de plantillas en Vue 2.0.
"Esto pide una aclaración: la versión de Vue sigue estrictamente a semver", dijo You. “La única vez que se produjeron cambios importantes en la API después de la versión 1.0 fue en la actualización 2.0. La sintaxis de la plantilla es parte de la API, por lo que no se [romperá], y entre cambios de versión principales, nos comprometemos a una compatibilidad retroactiva de la API del 100 %. Nos tomamos la estabilidad muy en serio, al igual que nuestra comunidad y los usuarios en producción, incluidos GitLab, Vice y algunas de las compañías de Internet más grandes de China”.
Como muchos colaboradores principales de WordPress han estado desarrollando sobre React durante años, la entrada de You ofrece una visión más detallada y profunda de Vue que los colaboradores han estado solicitando durante varias rondas de comentarios. La discusión continuará durante las próximas semanas y los colaboradores planean incluir el tema en la cumbre de colaboradores de WordCamp Europa.
