Evan You, criador do Vue.js, avalia a discussão do WordPress JavaScript Framework
Publicados: 2017-06-06
Na semana passada, os principais contribuidores do WordPress restringiram suas considerações para uma nova estrutura JavaScript para React e Vue. Como a equipe principal tem mais conhecimento coletivo de trabalhar com React, eles entraram em contato com desenvolvedores com diferentes experiências de uso de outros frameworks em um contexto WordPress.
Uma das principais preocupações dos contribuidores em relação ao Vue é a longevidade do projeto. Perguntei ao criador do Vue Evan You se ele poderia avaliar o tópico para dar aos contribuidores do WordPress uma melhor compreensão do projeto, especificamente em relação aos seus esforços para cultivar mantenedores adicionais para ajudar a compartilhar a carga de manutenção.
“Acho importante olhar para o histórico – o Vue existe há quase 4 anos e todo o trabalho foi feito em público no GitHub para que qualquer pessoa possa verificar o histórico de manutenção”, disse You. “Embora tenha sido amplamente desenvolvido por mim, a manutenção atual é muito mais voltada para a comunidade. Temos membros ativos da equipe principal fazendo a triagem da maioria dos problemas e uma porcentagem cada vez maior dos problemas corrigidos pelos PRs da comunidade. Então – sim, eu já estava trabalhando no cultivo de mantenedores adicionais e continuarei a fazê-lo.”
Atualmente, você recebe US $ 10 mil / mês de doações recorrentes do Patreon que financiam seus esforços em tempo integral trabalhando no Vue. Antes disso, ele também trabalhou no Google e Meteor. Durante seu tempo no Google, alguns dos projetos em que você trabalhou usavam o Angular, que ele disse ser muito pesado para seus casos de uso na época. Ele construiu o Vue.js para ser uma implementação mais leve dos conceitos que ele gostava no Angular.
Você também disse recentemente que ele aprendeu bastante com a comunidade React, o que influenciou algumas de suas decisões técnicas no Vue 2.
Aprendi muito com a comunidade React – tanto em código quanto em pessoas. Espero que todos possam ser como @dan_abramov. Paz.
— Evan You (@youyuxi) 29 de maio de 2017
“Primeiro, o Vue 2 usa o mesmo modelo de renderização baseado em Virtual DOM, que foi lançado pela primeira vez pelo React”, disse You. “A introdução de um DOM virtual permitiu ao Vue expor o poder da composição vdom, mantendo a acessibilidade.
“A comunidade React também é muito ativa quando há novos domínios de problemas sendo explorados – por exemplo, gerenciamento de estado e gerenciamento de CSS. Existem muitas soluções concorrentes e muitas inspirações quando eu estava implementando soluções oficiais para o Vue.”
Evan You aborda os equívocos dos colaboradores do WordPress Core sobre o Vue.js
Você disse que ele tem acompanhado as discussões dos contribuidores do WordPress sobre React vs Vue, mas não daria uma opinião sobre qual é a melhor escolha para o projeto.
“Minha resposta obviamente seria tendenciosa e, honestamente, não estou no lugar da equipe principal do WP, então não tenho perspectiva suficiente para fazer uma escolha”, disse You. “No entanto, posso fornecer feedback sobre algumas das questões que estão sendo discutidas na esperança de ajudá-los a tomar uma decisão mais bem informada.”
Você deixou um comentário nas notas de reunião Javascript mais recentes com esclarecimentos sobre alguns mal-entendidos sobre o Vue.js. Você abordou o ponto sobre “abraçar a linguagem JavaScript”, já que alguns contribuidores pensam que a linguagem de templates do Vue obscurece o JavaScript subjacente.
“Acho que 'abraçar a linguagem JavaScript' é outro primitivo do React que não vemos no Vue”, disse Andrew Duthie durante a última reunião.

A resposta de você compara o uso de templates pelo Vue como “sintaxe sugar para representação de visualização em cima de HTML” com o que ele acredita ser um uso semelhante no caso de JSX como representação de visualização em cima de JavaScript:
A crescente riqueza da interface do usuário NÃO exige colocar tudo em JavaScript. Por outro lado, só porque o Vue usa templates por padrão não significa que ele permite que as pessoas passem sem aprender JavaScript corretamente.
Os templates do Vue são compilados em funções de renderização JavaScript sob o capô e estão mais próximos do JavaScript do que do template tradicional de strings. É apenas uma camada de açúcar de sintaxe em cima da representação do Virtual DOM subjacente. Pense no JSX como um açúcar de sintaxe para representação de visualização em cima do JS; Modelos Vue são açúcar de sintaxe para representação de visualização em cima de HTML.
JSX/Raw JS fornece mais flexibilidade quando você precisa aplicar manipulação direta de nós Virtual DOM, é por isso que o Vue também suporta funções de renderização. Mas isso não é colocar dois paradigmas opostos na mesma tenda – é simplesmente permitir que o usuário pule a camada de açúcar de sintaxe para obter mais controle.
Você disse que a ideia por trás da modelagem em cima das funções de renderização é fornecer “melhor acessibilidade”, uma preocupação compartilhada por muitos outros defensores do WordPress adotando o Vue.
“Usuários que estão mais à vontade com HTML e têm casos de uso mais simples podem usar o modelo, enquanto usuários que já estão familiarizados com funções JSX/render podem aproveitar todo o poder do JS”, disse You. “Isso se encaixaria muito bem para o uso do núcleo WP: os usuários da comunidade que se preocupam com a acessibilidade têm mais facilidade para começar, enquanto a equipe principal tem acesso às funções JSX/render para casos de uso avançados.”
Você também abordou a questão da longevidade oferecendo mais informações sobre os processos de desenvolvimento do Vue. Ele confirmou que a base de código atual é amplamente desenvolvida apenas por ele, mas a manutenção está espalhada por uma equipe principal com membros em todo o mundo.
“Outros contribuidores têm contagens mais baixas de commits porque suas contribuições são todas enviadas na forma de PRs e nós usamos o recurso 'Squash and commit' no GitHub para que cada PR resulte em apenas um commit para o contribuidor”, disse You. “Unimos cerca de 500 PRs apenas no repositório principal e muito mais em toda a organização. Outros repositórios sob a organização vuejs, por exemplo, vuex, vue-router, vuejs.org também são amplamente mantidos por membros dedicados da equipe.”
Você também ofereceu esclarecimentos sobre questões de estabilidade e compatibilidade futura, já que os contribuidores do WordPress apresentaram preocupações sobre mudanças na linguagem de templates no Vue 2.0.
“Isso pede alguns esclarecimentos: o versionamento do Vue segue estritamente semver”, disse You. “A única vez que houve mudanças na API após o 1.0 foi o aumento do 2.0. A sintaxe do modelo faz parte da API, portanto, não vai [interromper] e, entre as versões principais, nos comprometemos com 100% de compatibilidade com versões anteriores da API. Levamos a estabilidade muito a sério, assim como nossa comunidade e usuários em produção, incluindo GitLab, Vice e algumas das maiores empresas de internet da China.”
Como muitos contribuidores principais do WordPress vêm desenvolvendo em cima do React há anos, a entrada de You oferece uma visão mais detalhada e profunda do Vue que os contribuidores têm solicitado durante várias rodadas de feedback. A discussão continuará nas próximas semanas e os contribuidores planejam incluir o tópico na cúpula de contribuidores do WordCamp Europe.
