Conheça as principais melhorias para o Drupal 8

Há cerca de 1 ano e meio atras, o mundo inteiro estava comemorando o lançamento oficial do Drupal 7 em pequenos eventos/encontros regionais, simultâneos, chamados de Drupal 7 Release Party. Para quem já trabalhava com versões anteriores do Drupal, esse era um momento muito empolgante pois as melhorias realizadas no Drupal 7 mudariam completamente a forma de desenvolvimento com o Drupal.

Não muito tempo depois disso, em março de 2011, Dries Buytaert estava dando o pontapé inicial para mais uma versão do Drupal. Durante a DrupalCon Chicago, o pai de todos os drupaleiros criou o branch para desenvolvimento do Drupal 8.

Hoje, mais de 1 anos depois desses acontecimentos, o Drupal 7 já está bem consolidado, com mais de 390.000 instalações, já corresponde a mais de 50% de todas as instalações do Drupal (há alguns meses a Fisqua o adotou como versão oficial). O Drupal 8 já tem uma timeline definida, com lançamento previsto para Agosto de 2013, e os objetivos apresentadas pelo Dries, durante DrupalCon Chicago 2011, ganharam mais forma e foram organizados em 6 iniciativas que serão resumidas abaixo:

Configuration Management (CMI)

Essa é uma iniciativa que mexe muito mais com a arquitetura do Drupal e não gera muito impacto aos desenvolvedores sitebuilders ou de front-end. No entanto, para os desenvolvedores de módulos, o resultado dessa iniciativa mudará completamente a forma de trabalhar. Os principais problemas que essa iniciativa pretende resolver são:

  • Atualmente não há uma boa maneira de mover as informações de configuração do Drupal entre os ambientes, pois estes dados são espalhados por todo o banco de dados em uma variedade de formatos, muitas vezes misturados com conteúdo;
  • Isso também torna difícil o controle de versão dessas informações, para armazenamento de histórico e com possibilidade de reverter as mudanças;
  • Cada módulo armazena seus dados de configuração em um formato diferente, não há padronização, mesmo dentro do núcleo;
  • Também não há uma API padrão para salvar essas informações (com exceção do caso simples da tabela variables​​), então os desenvolvedores criam suas próprias soluções;
  • Todo o conteúdo da tabela variables é carregado em cada requisição de página, mesmo para os dados raramente necessários, levando ao consumo excessivo de memória;
  • É complicado gerenciar as informações que são diferentes entre os ambientes de servidores para o mesmo projeto (informações do banco de dados, chaves de API, etc).

Resumidamente, o que estão tentando fazer é separar os dados em 2 tipos: configurações e conteúdos. Isso facilitará o controle de versão do projeto, a exportação e migração de dados para outros ambientes etc. Até o Drupal 6, esses 2 tipos de dados eram visivelmente "misturados", mas no Drupal 7 já tivemos um grande avanço nesse aspécto com a implantação das Entidades. O próprio Greg Dunlap, um dos organizadores da iniciativa, aposta nas Entidades como uma direção para solucionar o problema, quando disse em seu post Putting it all together: "If it is an Entity it is content, if not it is configuration".

Mas obviamente ainda há um longo caminho pela frente, principalmente na provisão de uma API para padronização do registro desses dados. Se você é desenvolvedor de módulos para Drupal, sugiro acompanhar o grupo da iniciativa Configuration Management e dar uma olhada no roadmap e resultados atingidos até o momento.

Web Services (WSCCI)

"The Web Services and Context Core Initiative aims to transform Drupal from a first-class CMS to a first-class REST server with a first-class CMS on top of it". Esse é um trecho retirado da descrição da página do grupo da iniciativa WSCCI. Ele sugere que o Drupal 8 seja um servidor REST de primeira classe com um CMS de primeira classe por cima, ao invés de apenas um CMS de primeira classe.

Atualmente o Drupal é um "CMS baseado exclusivamente em páginas HTML". Na maioria das vezes, assumimos que seu conteúdo será entregue em um simples site/blog ou mesmo um grande portal, mas sempre em uma estrutura baseada em HTML. Algumas iniciativas, como o módulo Services, tornam possível a integração com outras plataformas, mas o que Larry Garfield, responsável pela iniciativa WSCCI, defende é que nós devemos nos preocupar primariamente com a integração externa.

O objetivo dessa iniciativa é tornar o Drupal 8 será capaz de se conectar e prover dados à outras plataformas através de um Web Service nativo. O roadmap já está definido e terá 4 ações principais (ContextPluginsREST services e Layout) que são explicadas no post Announcing the Web Services and Context Core Initiative.

Design (D8DI)

Cada versão do Drupal alguma novidade em relação aos temas do núcleo. No Drupal 7 nós tivemos os temas Stark e Seven e no Drupal 8 nao poderia ser diferente, ainda mais agora que se fala muito sobre web design responsivo. Embora eu acredite que outras coisas serão feitas em conjunto com os grupos de usabilidade e acessibilidade, oficialmente a iniciativa de Design é um pouco mais tranquila. As principais atividades são:

  • Criar um novo design para o Drupal 8
  • Estabelecer um processo claro para a avaliação e seleção dos novos temas para o núclero do Drupal 8
  • Desenvolver um ambiente colaborativo para os designers interagirem durante a iniciativa

Para acompanhar as novidades, acesse o grupo e veja o roadmap.

Multilingual (D8MI)

Desde o Drupal 6 eu já considero perfeitamente viável trabalhar com multi-idiomas no Drupal. No Drupal 5 também funcionava, mas era muito engessado. Nem sempre ficava como queríamos. Embora o processo de internacionalização de um site em Drupal seja satisfatório no Drupal 7, sempre tem algo para melhorar. O objetivo da iniciativa Multilingual é trazer algumas dessas melhores funcionalidades para o núcleo do Drupal 8, tornando o desenvolvimento de sites com multiplos idiomas uma experiência muito mais simples e fácil.

Além disso, algumas melhorias estão sendo planejadas nas seguintes áreas:

  • Serviços básicos: possibilidade de remover o Inglês da lista de idiomas (se o Drupal já é em inglês, não faz sentido adiciona-lo novamente), simplificação na configuração de idioma, suporte à atribuição de idiomas para tudo, incluindo termos de taxonomia, arquivos etc;
  • Interface: automatização da alimentação das traduções diretamente para seu projeto, a partir do servidor localize.drupal.org, para economizar o trabalho manual;
  • Conteúdo: ampliação do modelo de tradução entidade/campo, com capacidade para tradução de propriedades (status, autor etc)
  • Configuração: já que a iniciativa Configuration Management está tendo um duro trabalho para separar as configurações dos conteúdos, eles poderão adicionar o suporte ao idioma lá e oferecer atribuição de linguagem e suporte de tradução para os blocos, formulários de contato, ViewsRules etc;
  • Usabilidade: melhorias de usabilidade buscando uma maneira muito mais fácil de entender a linguagem e experiência em tradução.

Essa iniciativa é coordenada pelo Gábor Hojtsy e você pode obter mais detalhes no grupo oficial e no seu blog.

HTML 5

Uma das 5 principais iniciativas para o Drupal 8 é a conversão do Drupal para HTML 5. Essa afirmação, por si só, é capaz de deixar muitos desenvolvedores front-end, que trabalham com o Drupal, super empolgados.

Como parte desta iniciativa, a maioria dos templates e funções do tema serão renovados e serão implementados novos tipos de formulários de entrada e novos elementos. Segue a lista dos principais pontos que serão trabalhados durante essa iniciativa:

  • Adicionar suporte para os novos elementos de formulário à API de formulários (Form API) do Drupal;
  • Adicionar os novos elementos semânticos aos templates do core, de maneira apropriada;
  • Adicionar as regras de marcação ARIA para melhorar a acessibilidade;
  • Simplificar os elementos style e script;
  • Assegurar que os filtros de entrada e funções aceitem os elementos do HTML5.

Este é um grande desafio mas, já que grande parte dos templates e funções serão reescritos, é uma ótima oportunidade para tornar a marcação HTML e o CSS do Drupal o melhor que podem ser.

Se você quiser saber mais sobre essa iniciativa, que é coordenada pela Jacine Luisi, acesse o grupo oficial e acompanhe o roadmap.

Mobile

Em uma apresentação do Dries Buytaert na DrupalCon Chicago, ele disse: "If I were to start Drupal from scratch today, I'd build it for mobile experiences first, and desktop experience second". Em outra ocasião, quando ele anunciava a iniciativa Mobile para o Drupal 8 (que seria liderada pelo John Albin) ele disse: "The mobile internet is coming at us fast and furious. We need to move fast and we might only get one shot at this. I want to make mobile the big theme for Drupal 8".

É indiscutível que a mobilidade é uma tendência do mercado. E eu diria, ainda, que não é apenas uma tendência, mas já é uma realidade hoje. A demanda por projetos que envolvam aplicativos nativos ou versões mobile do site/portal/sistema está aumentando cada vez mais. E poder saber que o Drupal 8 terá um foco especial nesse tema, é realmente muito empolgante.

Os principais objetivos dessa iniciativa são:

  • Desenvolver uma documentação oficial sobre as soluções para desenvolvimento mobile com Drupal 7, no Drupal.org
  • Tornar os formulários administrativos do Drupal amigáveis aos dispositivos móveis
  • Converter todos os temas existentes no Drupal 8 para serem responsivos
  • Melhorar o desempenho do front-end (incluindo imagens responsivas)

Como é fácil perceber, a iniciativa Mobile tem uma perfeita sinergia com as iniciativas Web Services, Design e HTML 5. Esse fato só confirma a intenção do Dries em tornar o Drupal 8 em uma plataforma focada na mobilidade. E isso é muito bom para todos nós!

Para saber mais sobre a iniciativa, acompanhe as notícias no grupo oficial e no roadmap.

Conclusão

A comunidade Drupal é realmente inquieta e muito ativa. O Drupal 7 acabou de se estabelecer e as atividades para o Drupal 8 já estão em pleno vapor e evoluindo rapidamente. É muito bom ver que, mesmo quando estamos com uma excelente ferramenta em mãos (é o caso do Drupal 7), sempre tem um grupo decidido a melhorá-la.

Eu citei a sinergia entre as iniciativas Mobile, Web Services, Design e HTML 5, mas parando para analisar melhor cada uma delas é possível perceber muitos pontos de conexão entre todas. Essa conexão entre as iniciativas nos mostra que o projeto está muito bem planejado, organizado e executado. Com certeza será uma grande revolução no mundo dos CMSs. Sorte para nós, que trabalhamos com ele.

Espero que esse post tenha sido útil para você e que, principalmente, tenha sido capaz de despertar o seu interesse em colaborar com a evolução desse grande projeto. Se você tiver alguma coisa para acrescentar, fique a vontade para comentar. E não se esqueça de curtir e compartilhar ;)

Compartilhe este conteúdo

Precisa de ajuda com Drupal?
Estamos ansiosos para saber mais.