WordPress explora uma abordagem agnóstica do framework JavaScript para construir blocos Gutenberg

Publicados: 2017-09-23
crédito da foto: found_drama E.'s pirate town – (licença)

A discussão sobre a seleção da estrutura JavaScript do WordPress continua no canal #core-js Slack antes da reunião da próxima semana. Um dos tópicos mais recentes é a possibilidade de renderização de blocos agnósticos de framework para Gutenberg, o que permitiria aos desenvolvedores estender o novo editor usando qualquer biblioteca JS que preferirem. Isso significa que os blocos Gutenberg, que são coloquialmente chamados de “Gutenblocks”, podem ser construídos com Vue, React, Preact, Angular ou o que o desenvolvedor se sentir confortável em usar.

Os defensores dessa ideia afirmam que buscar uma abordagem mais flexível torna a decisão da estrutura JS principal do WordPress menos crítica. Ao responder a perguntas no canal #core-js, Gary Pendergast explicou como o Gutenberg poderia ser construído para manter a separação.

“Eu realmente não estou brincando quando digo que essa decisão não importa, mesmo para as pessoas que contribuem para Gutenberg”, disse Pendergast. “No #2463, a biblioteca é tratada inteiramente como uma biblioteca utilitária, assim como usamos o lodash, por exemplo. Ele executa um punhado de tarefas e pode ser retirado e substituído com relativa facilidade por algo totalmente diferente, sem interromper o restante da base de código. Para as pessoas que contribuem para o Gutenberg, estão contribuindo no estilo de codificação do Gutenberg, não no estilo de qualquer biblioteca que importamos.”

Quando perguntado sobre um cronograma para quando a decisão será tomada e quais fatores estão sendo considerados, Pendergast respondeu que não há cronograma e que os interessados ​​em participar devem blogar sobre suas experiências e escrever exemplos de coisas que podem construir com os frameworks JS que eles estão familiarizados.

“Não há roteiro, nem cronograma, nem precisa haver”, disse Pendergast. “Como Matt mencionou, é realmente apenas uma decisão técnica – a decisão importante para a comunidade em geral foi escolher 'não Reagir'. Infelizmente, esta decisão foi desproporcional e fortemente confundida com 'com qual biblioteca JS poderei construir meus plugins?' e às vezes 'com quais práticas da biblioteca JS os blocos Gutenberg se assemelham?', nenhum dos quais está relacionado. Tweets e postagens que tratam como uma corrida de cavalos não são úteis dessa maneira.”

Pendergast disse que qualquer biblioteca selecionada “continuará sendo envolvida pelo elemento WordPress, a biblioteca subjacente não será exposta”. A equipe do Gutenberg está trabalhando para remover todas as dependências de biblioteca de seus componentes para que os desenvolvedores de plugins possam usar qualquer biblioteca que escolherem.

No entanto, outros membros da comunidade não estão tão ansiosos para relegar a biblioteca JS selecionada para o núcleo a uma simples decisão técnica ou biblioteca de utilitários.

“A maioria dos desenvolvedores entende que seus plugins não estão vinculados ao framework escolhido para core/Gutenberg”, disse Kevin Hoffman. “Mas isso não diminui o significado da decisão. Se quisermos encorajar mais contribuidores, estaríamos bem servidos em escolher uma estrutura na qual uma maioria significativa se sinta capaz e confiante. Se essa maioria está desenvolvendo plugins com uma estrutura e precisa aprender outra para contribuir com o núcleo, estamos limitando o número de contribuidores em potencial.”

Peter Booker afirma que não importa quão elegante seja a separação de Gutenberg, ter uma compreensão decente da biblioteca escolhida para o núcleo afeta a capacidade dos desenvolvedores de solucionar profundamente certos problemas.

“Acho que não devemos desprezar a escolha como uma decisão técnica menor”, ​​disse Booker. “Entender como PHP, JavaScript e Backbone (entre outras coisas) funcionam é essencial para poder depurar corretamente os problemas com o WordPress. O framework JS escolhido para Gutenberg vai impactar muitas pessoas, mesmo que não sejamos os principais contribuidores. Será um conhecimento essencial para poder solucionar problemas completamente. Esta é uma decisão que afetará muito mais pessoas do que apenas a equipe de Gutenberg.”

Quais são as implicações de fornecer uma abordagem flexível e independente de estrutura para construir Gutenblocks?

Jason Bahl perguntou se alguém já tentou misturar React, Preact, Vue e Angular em um único aplicativo para ver se é “uma receita para um pesadelo de desempenho”. Ele apresentou um cenário de exemplo em que Gravity Forms constrói Gutenblocks baseados em Vue, Yoast tem blocos baseados em React, WooCommerce constrói blocos com Preact e outro plugin usa Ember.

“Parece bom ser flexível e permitir que as pessoas usem o que quiserem, mas também como se isso pudesse levar a muita divisão nas melhores práticas e potencialmente problemas de desempenho”, disse Bahl. “Veremos tutoriais aparecerem sobre como construir Gutenblocks em Vue, React, Preact, Ember, Vanilla JS, etc., o que seria legal de ver, mas também confuso e potencialmente causar mais divisão na comunidade e práticas recomendadas aceitas . A flexibilidade é boa até certo ponto, mas uma opinião forte em algum nível também é boa.”

Carl Hancock, cofundador da Gravity Forms, afirma que oferecer uma abordagem independente de estrutura para construir Gutenblocks terá pouca influência sobre os desenvolvedores que estão estendendo o projeto. A decisão não pode ser menos crítica oferecendo mais flexibilidade, porque os desenvolvedores inevitavelmente adotarão qualquer que seja o núcleo do WordPress.

“As pessoas vão acabar adotando o que o núcleo usa na maior parte, apesar dos arco-íris e borboletas que alguns estão alegando no que se refere à criação de uma camada de abstração para que os desenvolvedores de plugins/temas possam usar o que quiserem”, disse Hancock. “O que significa que, por mais complexa que seja a estrutura principal, terá um impacto direto na barreira de entrada para desenvolvedores de plugins e temas. Essa barreira à entrada tem sido historicamente baixa até o momento e contribui diretamente para o crescimento do WordPress como um CMS auto-hospedado. Aumentar drasticamente essa barreira à entrada não é necessariamente uma coisa ruim. Por exemplo, o Gravity Forms usará Preact, Vue, o que for, porque temos a mão de obra e o conjunto de habilidades para fazê-lo quando finalmente pudermos decidir fazê-lo quando o núcleo tomar sua decisão.”

Oportunidade do WordPress para avançar na Web

Atualmente, o WordPress alimenta 28% de todos os sites, de acordo com a W3 Techs, e qualquer estrutura escolhida terá um grande impacto em qual biblioteca muitos desenvolvedores decidem aprender para estender o software e avançar em suas carreiras.

Matias Ventura, um dos líderes técnicos do projeto Gutenberg, encorajou os participantes da discussão a olhar para o quadro geral e aproveitar a oportunidade de trabalhar juntos e colaborar em uma solução para WordPress que avançará na web. Os esforços da equipe para colaborar com representantes de estruturas concorrentes se destacam em um ecossistema que geralmente é fragmentado e fragmentado.

“Estou animado com a oportunidade que temos de avançar no desenvolvimento da web em termos de representação de interface do usuário JavaScript, de forma semelhante à forma como o WordPress foi uma força motriz para os padrões da web durante a última década”, disse Ventura. “É também onde vejo que temos uma responsabilidade como projeto, pois as pessoas continuarão aprendendo desenvolvimento web através do WP. Muitas pessoas foram apresentadas ao PHP através do WordPress, originalmente apenas interagindo com funções e APIs WP, eventualmente mergulhando um pouco mais profundamente na linguagem conforme necessário. Vejo que nosso núcleo permanece próximo à linguagem JS, pois fornece a ferramenta mais significativa para aprender, abrangendo todos os frameworks e bibliotecas.”

Ventura garantiu aos participantes da discussão em andamento que a equipe de Gutenberg está ouvindo e trabalhando para uma solução que impulsionará a web.

“Estamos absolutamente cientes de que a forma como construímos e o que oferecemos por meio de Gutenberg afetará a comunidade de desenvolvedores e não estamos levando isso de ânimo leve – muito pelo contrário”, disse Ventura. “Eu tenho conversado com Evan (Vue) e Jason (Preact) porque, em vez de ter um concurso de 'escolha sua estrutura', esta parece uma oportunidade de colaborar e impulsionar a web.”