Joomla! 5.0 Ousado em um ano - Mas será que NÓS conseguimos?

O Departamento de Produção do Joomla compartilha seus pensamentos, ideias, desafios e planos para o Joomla! 5,0

Quais são os desafios que enfrentamos?
Sejamos honestos: a cada dois anos, ter um lançamento novo e importante parece assustador. No passado, nem sempre estivemos à altura em termos de migração e atualizações. As razões foram múltiplas. A longa fase de desenvolvimento levou a uma

grande lacuna entre a versão principal atual e a próxima versão. E como a tecnologia muda constantemente, qualquer longo período de tempo significa que muitas mudanças tecnológicas têm de ser consideradas, o que implica um maior obstáculo à migração.

Diminuir o tempo de conclusão tem seus benefícios, mas também algumas desvantagens. Por um lado, poderemos reagir mais facilmente às novas tecnologias, pelo que as mudanças não serão muito grandes. Se a nova versão principal demorar muito, a migração levará a uma reconstrução quase completa.

Por outro lado, as atualizações tecnológicas mais rápidas trazem desafios para os desenvolvedores de extensões e modelos. Estamos plenamente conscientes de que às vezes é doloroso manter-se atualizado com as mudanças na arquitetura do Joomla, pois isso envolvia a refatoração regular do código para se livrar de funções e classes obsoletas.

Não existe um prazo perfeito. Não há período de lançamento de Cachinhos Dourados para ajudar a todos, sempre há vencedores e perdedores, e a dor sempre estará em uma parte ou outra do processo de construção.

Algumas mudanças também parecem um pouco questionáveis à primeira vista. Por exemplo, por que a maior parte da classe Joomla\Cms\Factory está obsoleta e deve ser removida com o Joomla 5? Funcionou perfeitamente por 11 anos; por que isso deveria se tornar uma má prática agora?

Esses são os pensamentos que tivemos nas diferentes equipes responsáveis pelo envio de nosso produto excelente, extensível, preparado para o futuro e de fácil manutenção. Mas vamos enfrentar os desafios um por um.

As boas notícias
Antes de começarmos a falar sobre o futuro, vamos relembrar onde estamos com o Joomla 4. Após cerca de sete longos anos de desenvolvimento, finalmente lançamos uma nova versão principal do Joomla!. E o Joomla 4 é realmente um ótimo software, sem dúvida. Construir um componente do jeito Joomla 4 precisa de muito menos código em comparação com o Joomla 3. A segurança foi aumentada por muitas mudanças, incluindo instruções preparadas para proteção contra injeções de SQL.

A acessibilidade avançou aos trancos e barrancos, e os recursos interessantes crescem o tempo todo, fluxos de trabalho, agendador, modelos filhos e a lista cresce.

Também estamos em um estado muito melhor em termos comunitários, com muitas pessoas se apresentando para preencher vagas vazias. As equipes estão crescendo e tem havido uma vibração positiva no GitHub, bem como nos canais da comunidade. Sempre há coisas que poderíamos fazer melhor, mas não é por falta de tentativa, e nosso declínio de participação de mercado desacelerou, parou e, no momento em que este artigo foi escrito, estava mostrando um crescimento muito ligeiro no gráfico da W3Tech e outras fontes mostraram um aumento mais acentuado.

Temos uma estratégia clara para o sucesso, só precisamos desenvolvê-la.

Quais são os planos para 5.0?
O “recurso” mais importante do Joomla 5.0 é a remoção de código obsoleto. Isso torna o Joomla à prova de futuro. Reduziremos fortemente o esforço de manutenção consolidando diferentes áreas do código. Além disso, escrever testes será muito mais fácil e confiável no futuro.

Queremos ter uma estrutura de código que nos dê a possibilidade de oferecer suporte a desenvolvedores terceirizados, aumentando a qualidade e a segurança de seu código. Imagine ter seu código automaticamente coberto por testes só porque você está seguindo o padrão principal do Joomla; essa é a visão para o futuro. Mais importante ainda, conhecemos o desafio dos métodos obsoletos do Joomla\Cms\Factory, que são amplamente utilizados em todo o ecossistema. No momento, estamos no processo de garantir que teremos uma solução, para que as extensões que usam isso não sejam inutilizáveis no Joomla 5.0.

Com o Joomla 5.0, aumentaremos a versão mínima do PHP para 8.1. Fazer essa mudança nos trará muitos benefícios e nos ajudará a permanecer competitivos no mercado.

PHP 8.1 traz uma enorme melhoria de desempenho para Joomla. O efeito colateral é: estamos usando uma versão mais recente do PHP, que não está prestes a terminar tão cedo. Isso nos permite dar os próximos passos em versões posteriores do Joomla, como usar fibras, loops de eventos e outros recursos de melhoria de desempenho.

Queremos trazer alguns benefícios em termos de função. Para o Joomla 4 planejamos a funcionalidade multidomínio, mas depois de avaliar os requisitos completos, decidimos mover esse recurso para uma versão posterior, pois outras ideias surgiram e não queríamos nos apressar, pois precisava funcionar bem. Agora, com o Joomla 5.0, o momento pode ser o certo e o código está maduro o suficiente para trazer esse recurso para o núcleo.

Também estamos em uma discussão ativa sobre o futuro da edição de conteúdo. Editores de blocos como Gutenberg são uma nova maneira de fazer a edição de conteúdo funcionar. Queremos testar o terreno e ver se é adequado para Joomla. Isto depende, claro, do número de voluntários que estejam dispostos a ajudar-nos.

Tudo o que se relaciona com CSS/template emde qualquer forma está planejado para ser movido dos layouts principais para Cassiopeia. Cassiopeia (ou talvez um novo modelo) serve como modelo pai baseado em Bootstrap e pode então ser personalizado por meio de modelos filhos. Isso torna possível construir modelos pai adicionais baseados em outras estruturas como Tailwind ou UIKit. Gostaríamos de integrar esse modelo alternativo ao Joomla 5 se alguém for encontrado para implementá-lo.

Como é típico de uma nova versão principal, a maioria das melhorias não são visíveis na superfície, mas sim sob o capô.

Isto inclui separar os drivers de banco de dados para MySQL e MariaDB, que estão se tornando cada vez mais divergentes. Drivers separados nos permitem oferecer suporte aos respectivos sistemas de gerenciamento de banco de dados (SGBD) da melhor maneira possível. Além disso, queremos realizar as conexões com o banco de dados preferencialmente via sockets, o que traz um aumento de velocidade.

As chamadas expressões de tabela comum - um recurso agora oferecido por todos os bancos de dados suportados pelo Joomla - nos permitem tornar os direitos de acesso, categorias e menus mais eficientes porque podemos passar sem a complicada implementação de conjuntos aninhados. Os acessos de leitura não são acelerados com isso, mas esperamos uma melhoria significativa no acesso de gravação.

Quais são os próximos passos?
Atualmente, estamos trabalhando em duas coisas principais: documentação do desenvolvedor e avaliação de todas as classes e funções obsoletas no CMS Joomla. Portanto, com o lançamento do Joomla 4.3, queremos que todo o código obsoleto do Joomla seja revisado. Esta revisão levará a uma de duas coisas:

A depreciação é removida ou
Uma descrição e exemplos de código completos são fornecidos como um comentário de código sobre como migrar o uso deste código.
Além disso, a documentação completa de migração do desenvolvedor deve estar pronta, explicando como uma extensão do Joomla 3 pode ser migrada e tornada totalmente compatível com o Joomla 4, que é então compatível com o Joomla 5.

Planejamos remover o uso de todo código obsoleto no CMS Joomla para o lançamento do 4.4. Portanto, o CMS Joomla pode ser visto como a melhor prática de como o código deve ser escrito.

Por último, mas não menos importante, planejamos criar para o lançamento do Joomla 5.0 RC1 um conjunto completo de regras de reitor para suportar a reescrita automatizada de código obsoleto. Para conseguir isso, não ajustaremos manualmente os locais onde o código obsoleto ainda é usado no CMS, mas escreveremos regras de Rector correspondentes para fazer as alterações. Essas regras ficam então disponíveis para desenvolvedores de extensões adaptarem seus componentes, módulos e plugins ao Joomla 5 com uma chamada de linha de comando, incluindo refatoração automatizada para as descontinuações do Joomla\Cms\Factory. Esperamos aprimorar o verificador JED de uma forma que possa fornecer feedback sobre códigos obsoletos em extensões de terceiros.

Enquanto isso, estamos em modo de desenvolvimento total para novos recursos, como multidomínio. Se você acha que pode contribuir com um recurso valioso, sinta-se à vontade para entrar em contato conosco pelos canais habituais e veremos se é possível integrar para o benefício de todos.

Para responder à questão levantada no início: estamos muito confiantes em deixar o 5.0 pronto a tempo com muitas mudanças importantes para o futuro do Joomla, mas dependemos de VOCÊ. Precisamos do seu poder de codificação, habilidades de teste, escrita e arte gráfica e toda a ajuda que você puder oferecer. Então todos teremos um ótimo Joomla 5.0!