Aguarde...

1 de fevereiro de 2023

PHP em 2023

PHP em 2023

Desde o seu humilde começo como um projeto pessoal em meados dos anos 90, o PHP cresceu e se tornou uma das linguagens mais populares para o desenvolvimento da Web, alimentando tudo, desde pequenos blogs até grandes aplicativos corporativos.

É uma linguagem que passou por uma transformação surpreendente ao longo de quase três décadas. Mesmo nos últimos 10 anos, o PHP se transformou de maneiras que não poderíamos imaginar.

Todo ano, escrevo um post sobre o estado atual do PHP, onde olho para trás e para frente. Vamos começar!

A Fundação PHP

Eu costumo começar essas postagens com um resumo da versão mais recente do PHP, mas desta vez quero focar primeiro no PHP Foundation. Faz pouco mais de um ano que a fundação foi criada: um coletivo de 10 voluntários e 6 desenvolvedores sendo pagos para trabalhar em PHP, a linguagem.

Acho que é justo dizer que a Fundação cumpriu. Eles publicaram recentemente seu relatório de 2022 e mostram alguns números bastante impressionantes:

  • No total, US$ 580.000 foram arrecadados em 2022
  • A Fundação paga 6 desenvolvedores para trabalhar em PHP
  • Os membros da fundação fizeram quase metade de todos os commits em php-src
  • Eles criaram 8 novos RFCs , apenas um desses RFCs não conseguiu

PHP 8.2

Passando para o PHP 8.2. Geralmente é considerado um lançamento menor, mas mesmo assim possui vários recursos interessantes. Só para citar alguns:

Classes somente leitura:

readonly class PostData
{
    public function __construct(
        public string $title,
        public string $author,
        public string $body,
        public DateTimeImmutable $createdAt,
        public PostState $state,
    ) {}
}

Um novo randomizador:

$rng = $is_production
    ? new Random\Engine\Secure()
    : new Random\Engine\Mt19937(1234);
 
$randomizer = new Random\Randomizer($rng);

$randomizer->shuffleString('foobar');

Autônomo e : null_truefalse

function alwaysFalse(): false
{
    return false;
}

Tipos de forma normal disjuntiva:

function generateSlug((HasTitle&HasId)|null $post) 
{ /* … */ }

Parâmetros redigidos:

function connect(
    string $user,
    #[\SensitiveParameter] string $password
) {
    // …
}

o ecossistema

Assim como todos os anos, devo mencionar o Packagist, gerenciador de pacotes do PHP: ele agora lista 361.000 pacotes; 60.000 a mais que no ano passado:

Um número impressionante é a quantidade total de instalações. No ano passado eu mencionei isso:

Ah, a propósito, recentemente o Packagist ultrapassou a marca de ter lidado com mais de 50 bilhões de instalações. Parabéns Packagista!

Acabei de verificar e agora estamos com 74.492.061.634 instalações . Isso representa um aumento de 24 bilhões de instalações em um ano, 2 bilhões de instalações por mês . Tudo isso para dizer: o ecossistema PHP está crescendo muito.


Duas vezes por ano, publico meu post de estatísticas de versão. Nestas postagens, analiso o uso da versão do PHP na comunidade com base nos dados do Packagist. Eu queria compartilhar novamente um gráfico daquele post: a linha do tempo entre 2013 e agora, mostrando o histórico de uso por versão.

Embora seja ótimo ver o aumento vertiginoso do uso do PHP 8.*, também há uma grande quantidade de pessoas ainda presas a versões mais antigas, lentas e inseguras do PHP . Minha esperança para 2023 é ver os números das versões antigas diminuirem ainda mais rapidamente. Eu escrevi assim no meu post de estatísticas de versão:

Esses dados visualizam lindamente a divisão dentro da comunidade PHP: uma parte está acompanhando o PHP moderno, enquanto outra fica impotente para trás.

Falando em atualizações, quero mencionar uma ferramenta em particular: Rector. Rector é uma ferramenta de automação gratuita que ajuda a atualizar sua base de código PHP. Tudo o que é necessário é uma pequena quantidade de configuração e fará uma quantidade enorme de trabalho para você.

Recentemente, usei-o para atualizar meu agregador de conteúdo voltado para a comunidade, Aggregate to PHP 8.2, e foi muito divertido e fácil de usar.

Quando, depois de publicar meu post de estatísticas de versão, várias pessoas me disseram que ainda não haviam atualizado e estavam travadas no PHP 7.*, perguntei o porquê. Eles me disseram que era simplesmente muito trabalho manual. Curiosamente, ninguém sequer tentou usar ferramentas como o Rector para ajudá-los…

Acredito firmemente que uma “linguagem de programação” é muito mais do que um compilador: são as ferramentas e o ecossistema que desempenham um papel igual na definição dessa “linguagem de programação”, e realmente acho que muitas pessoas, projetos e negócios se beneficiariam se eles olhou para o uso de ferramentas de automação como o Rector.


Já que estou falando de ecossistema, não posso deixar de citar os dois maiores frameworks do PHP: Laravel e Symfony.

Nos últimos anos, o Laravel cresceu tremendamente. Eles agora empregam 8 desenvolvedores em tempo integral para trabalhar na estrutura e em seu ecossistema. Além disso, a pesquisa de desenvolvimento da JetBrains informa que 67% dos desenvolvedores PHP trabalham com Laravel .

Embora o Symfony como framework possa ser menos popular comparado ao Laravel atualmente, ainda é um dos frameworks mais maduros e estáveis ​​dentro da comunidade PHP. É mais usado para desenvolvimento de aplicativos corporativos, mas seus componentes autônomos são populares em todo o ecossistema PHP — o Laravel também possui algumas dependências dos componentes do Symfony. Não é surpresa que mais de um punhado de pacotes do Symfony estejam na lista de pacotes principais do Packagist.

Devo também mencionar o WordPress. Vou ser sincero, tenho uma relação de amor/ódio com ele. Como usuário, o WordPress é ótimo. É tão fácil de instalar e usar, e acho que ganhou toda a sua popularidade ao longo dos anos. Como desenvolvedor, porém, o WordPress me deixa triste. A incapacidade de se manter atualizado com versões modernas e seguras do PHP lança uma sombra sobre toda a comunidade PHP.

No momento, o WordPress só tem suporte beta para PHP 8.0. Agora, para ficar claro: o PHP 8.0 foi lançado em 2020 e agora está no fim da vida, três anos depois – e o WordPress ainda não o suporta…

Claro, existem razões para não suportar adequadamente as versões mais recentes do PHP. Cabe a você decidir se são bons ou não. Minha opinião pessoal é que a decisão de manter a compatibilidade com versões anteriores tanto quanto o WordPress é principalmente voltada para os negócios: grande parte do WordPress é a parte comercial e grande parte de sua base de clientes está executando versões antigas do PHP. É um círculo vicioso onde ambas as partes estão segurando uma à outra e, por extensão, atrasando a comunidade PHP como um todo.

Por outro lado, devemos reconhecer o fato de que poucos projetos de software conseguem permanecer tão populares e relevantes quanto o WordPress depois de quase 20 anos, então talvez a estratégia deles sobre compatibilidade com versões anteriores seja a certa?

Superconjunto

Finalmente, não posso deixar de mencionar meu sonho de longo prazo com o PHP. Escrevo sobre isso, falo sobre isso e espero que um dia isso se torne realidade: um superconjunto de PHP, com IDE adequado e suporte a analisador estático.

Existem várias razões pelas quais eu quero que isso aconteça, você pode ler e ouvir sobre elas se quiser; mas eu realmente espero que isso se torne uma realidade. Duvido que veremos um superconjunto amplamente aceito e apoiado em 2023, mas alguns pequenos passos já estão sendo dados. Estou definitivamente de olho no PXP, que pode levar as coisas na direção certa.

Postado em Blog
Escreva um comentário