Comunidade Drupal considerando uma arquitetura desacoplada

Publicados: 2015-12-12
Separação de pires - crédito da foto: Memory Alpha
Separação de pires – crédito: Memory Alpha

No início desta semana, Dries Buytaert, criador e líder de projeto do Drupal, abriu uma discussão em seu blog sobre o futuro da arquitetura Drupal em um post intitulado Devemos desacoplar o Drupal com uma estrutura do lado do cliente?

Buytaert afirma que os usuários esperam experiências semelhantes a aplicativos de sites, dadas suas experiências de interação com o feed de notícias do Facebook, a caixa de entrada do Gmail e a transmissão ao vivo do Twitter.

“Muitas das interfaces administrativas e sites Drupal do Drupal podem se beneficiar de uma experiência de usuário instantânea e igualmente perfeita”, disse Buytaert. “Como líder do projeto Drupal, eu me pergunto: como nossa comunidade pode se sentir capacitada e encorajada a começar a construir experiências de usuário ricas?”

A discussão para desacoplar o Drupal com uma estrutura do lado do cliente chega em um momento interessante, já que o endereço State of the Word de Matt Mullenweg anunciou o JavaScript como o futuro do WordPress e da web. Suas observações finais encorajaram os desenvolvedores a aprender JavaScript e começar a construir aplicativos baseados em WordPress para o futuro.

Um comentarista no post de Buytaert traça uma conexão com o lançamento do Calypso pela Automattic:

Parece que este post é, pelo menos em parte, uma reação ao anúncio do Calypso pelo WordPress. Espero que possamos nos concentrar em tomar as decisões certas para o futuro do Drupal, em vez de reagir apressadamente ao que outro CMS está fazendo, principalmente quando você já falou várias vezes sobre como o WordPress não é o verdadeiro concorrente do Drupal.

Buytaert sustenta que suas considerações para o Drupal foram motivadas de forma independente, e esta não é a primeira vez que ele escreve sobre dissociar o back end e o front end.

“Quanto ao anúncio do Calypso pelo WordPress – na verdade, comecei a escrever este post no blog antes do Calypso ser anunciado”, disse ele. “Não acredito que minha posição tenha sido influenciada por Calypso.”

Buytaert prefaciou essa discussão com o fato de que os usuários passaram a considerar as experiências de aplicativos como a base para a interação em sites. Toda a web está se movendo nessa direção e CMSs como Drupal e WordPress agora são forçados a escalar essa montanha se quiserem permanecer relevantes. Ambos os projetos estão jogando por trás, tentando alcançar as expectativas dos usuários.

O desafio de padronizar uma estrutura

De muitas maneiras, a discussão no post de Buytaert é pertinente para onde o WordPress está indo, especialmente a consideração de padronizar em uma estrutura específica.

Buytaert defende uma dissociação progressiva da experiência do administrador e do usuário final do Drupal, ao mesmo tempo em que permite que experiências totalmente dissociadas sejam construídas sobre a plataforma. Ele propõe que a melhor maneira de fazer isso é “padronizar formalmente em um framework MV* completo (por exemplo, Angular, Ember, Backbone e Knockout) ou uma biblioteca de visualização baseada em componentes (por exemplo, React, Vue e Riot). ”

Como ele não é um desenvolvedor front-end, Buytaert está solicitando informações da comunidade Drupal sobre qual estrutura funcionaria melhor para dissociação progressiva. Ele também reconhece as razões pelas quais a padronização de uma estrutura específica pode ser desaconselhável a longo prazo:

Apesar dos benefícios potenciais, também há boas razões para não adotar uma única estrutura do lado do cliente. Novos frameworks de front-end estão sendo criados em um ritmo que parece insustentável; a cada nove meses há um novo garoto no quarteirão. É difícil para um projeto tão grande quanto o Drupal adotar uma única tecnologia quando não há garantia de sua longevidade.

No entanto, Buytaert acredita que uma seleção cuidadosa e uma reavaliação periódica da estrutura podem superar essas desvantagens.

Ao incentivar os desenvolvedores do WordPress a aprender JavaScript, Matt Mullenweg não identificou uma única estrutura, mas a deixou aberta. Como o Calypso da Automattic é construído no React, parece ser um dos favoritos.

Se o núcleo do WordPress acabar adotando a tecnologia por trás do Calypso (ou uma alternativa semelhante ao Calypso) para oferecer uma melhor experiência de publicação, o núcleo padronizará um framework/biblioteca ou continuará habilitando e incentivando os desenvolvedores de extensão a usar qualquer framework?

Um comentarista aponta problemas potenciais com o Drupal selecionando uma estrutura, que alguns podem perceber como um endosso oficial:

Já existem muitos projetos corporativos usando uma abordagem desacoplada do Drupal e, naturalmente, eles usam muitos frameworks diferentes, mas o que vejo mais usado é o React. Na verdade, no projeto em que estou trabalhando agora, a organização está apostando tudo no React. Se o Drupal se decidisse pelo Angular, por exemplo, como isso afetaria as organizações que estão fazendo grandes investimentos em outros frameworks? Talvez eu não entenda completamente como isso pode funcionar, mas a escolha de uma única estrutura parece que pode ser divisiva e disruptiva – disruptiva de uma maneira ruim, não da maneira SV.

Acho que facilitar as arquiteturas desacopladas é ótimo e deve ser algo que o Drupal faz, mas deve fazê-lo de uma maneira agnóstica sobre a estrutura FE usada.

Buytaert identifica algumas alternativas para enviar uma estrutura do lado do cliente com o núcleo Drupal, incluindo recomendar uma estrutura, mas não enviá-la com ela, ou incluí-la no núcleo, mas facilitar a substituição pela escolha do desenvolvedor por outra estrutura.

Sua postagem e os comentários a seguir são o início de uma discussão animada e ponderada que ajudará a moldar o futuro do desenvolvimento do Drupal. Hoje Buytaert está pedindo propostas que esbocem um protótipo para uma versão funcional da dissociação progressiva.

Tanto o WordPress quanto o Drupal estão atualmente engajados na luta para dar o salto tecnológico para fornecer mais experiências de aplicativos para os usuários. A conversa em torno da dissociação da arquitetura do Drupal é importante para os desenvolvedores do WordPress seguirem e aprenderem.