Skip to content
Programing

PHP 8.6 Alpha 1: A Revolução Assíncrona com Io\Poll e o Futuro Funcional da Linguagem

Published: Duration: 6:00
0:00 0:00

Transcript

Apresentadora: E aí, pessoal! Bem-vindos de volta ao Allur, o seu ponto de encontro semanal sobre o que há de mais moderno no mundo do desenvolvimento. Eu sou a Juliana Santos e hoje o clima aqui no estúdio é de pura empolgação. Se você ainda acha que o PHP é aquela linguagem que só serve para fazer site simples e scripts básicos, prepara o coração, porque o episódio de hoje vai explodir a sua cabeça. Apresentadora: E para me ajudar a traduzir todo esse "technobabble" dos Internals do PHP para o nosso dia a dia, eu convidei um cara que é fera no assunto. Ele é Arquiteto de Software, entusiasta de sistemas de alta performance e já quebrou muito a cabeça com Swoole e ReactPHP. Seja muito bem-vindo ao Allur, Rafael Costa! Convidado: Valeu, Juliana! É um prazer enorme estar aqui no Allur. Cara, eu confesso que quando li o anúncio do Alpha 1 do 8.6, eu quase caí da cadeira. A gente que acompanha o PHP há anos sabe o quanto a gente "pediu" por uma integração mais nativa dessa parte de I/O. O momento não podia ser melhor, né? Apresentadora: Com certeza, Rafael! E para começar, vamos direto ao ponto que está todo mundo comentando. A gente sempre ouviu que o PHP é síncrono, né? Tipo, ele executa uma linha, espera terminar, e vai para a próxima. Se o banco de dados demora, o PHP fica lá parado esperando. Como que o PHP 8.6 e essa Io\Poll mudam esse paradigma? Convidado: Pois é, Ju. Historicamente, o PHP é o mestre do "bloqueio". Cada requisição é um processo ou uma thread que fica ali travada esperando um socket abrir ou um arquivo carregar. Para fugir disso, a gente sempre usou ferramentas incríveis como o Swoole ou o ReactPHP, mas elas tinham um problema: ou você precisava instalar uma extensão em C super complexa, ou tinha que fazer umas gambiarras pesadas em userland para monitorar os processos. Apresentadora: Caraca, então quer dizer que o PHP agora fala a "língua" do sistema operacional de forma direta para gerenciar múltiplas tarefas? Isso tira um peso enorme das costas de quem desenvolve aplicações de chat, servidores de alta escala ou sistemas de mensageria, né? Convidado: Exatamente! Massa que você mencionou isso. Imagina um sistema de filas ou um proxy. Antes, você ficava muito dependente de extensões externas. Agora, a fundação está dentro da linguagem. Isso democratiza a assincronicidade. Não vai ser mais "coisa de especialista". O desenvolvedor médio vai começar a ver frameworks como o Laravel ou o Symfony usando isso "por baixo do capô" e a performance vai simplesmente saltar sem que a gente precise reescrever tudo do zero. É uma evolução absurda de infraestrutura. Apresentadora: E teve um nome que você citou quando a gente conversava antes de gravar que foi o Patrick Allaert. A comunidade de Internals teve um papel pesado nisso, né? Não foi algo que surgiu do nada. Convidado: Total! O Patrick e a galera dos Internals estão fazendo um trabalho de formiguinha fantástico. Trazer algo para o core do PHP exige uma estabilidade gigante. O Io\Poll não é só "funcionar", é funcionar de forma segura e consistente em diferentes sistemas operacionais. É um passo audacioso, porque prepara o PHP para os próximos 10 anos. A gente está parando de ser "só" uma linguagem de script para web e virando uma linguagem de propósito geral para aplicações distribuídas. Apresentadora: Muito legal. Agora, mudando um pouquinho de assunto, mas nem tanto, porque tudo isso se conecta na robustez do código. O PHP 8.6 também trouxe coisas da programação funcional. Eu vi um termo que parece complicado, mas que dizem ser uma mão na roda: a "Partial Function Application". O que é isso na prática, Rafael? É tipo deixar uma função "pela metade"? Convidado: (Risos) Tipo assim, Ju! É quase isso. Sabe quando você tem uma função que precisa de três argumentos, mas em um certo lugar do seu código você já sabe dois deles e só o terceiro vai mudar? Hoje, você teria que criar uma closure, passar as variáveis... um boilerplate meio chato. Apresentadora: Massa demais! E junto com isso vieram as Typed Closures, né? Isso é para dar aquele "cheque-mate" nos erros de tipo que a gente às vezes deixa passar? Convidado: Com certeza! O PHP está ficando cada vez mais "tipado", o que é ótimo para grandes times. As Typed Closures permitem que você defina com muito mais rigor o que entra e o que sai de uma função anônima. Cara, isso em sistemas complexos, onde você passa funções como argumentos para outras funções — o que acontece muito em programação assíncrona, aliás — evita uma dor de cabeça que você não tem ideia. É menos tempo fazendo debug e mais tempo entregando feature. Apresentadora: É o PHP ficando "gente grande" em todos os aspectos, né? Rafael, para a gente fechar esse papo técnico, se você tivesse que dar um conselho para o desenvolvedor que está ouvindo a gente agora e está meio assustado com tanta mudança... por onde ele começa a se preparar para o PHP 8.6? Convidado: Olha, o conselho é: não se desespere, mas fique curioso. O PHP 8.6 Alpha 1 ainda é uma versão de testes, então não vai sair colocando isso em produção hoje! Mas baixe, rode no Docker, tente brincar com a API de Io\Poll se você curte essa parte de redes. Se você é mais do dia a dia de API e Web, comece a estudar os novos paradigmas funcionais que estão chegando. O PHP 8.x é a melhor era da linguagem. Quem ficar parado no jeito de programar do PHP 5 ou do 7 vai perder o trem. A hora de experimentar e "quebrar" as coisas é agora, no Alpha. Apresentadora: Show de bola! É isso aí, galera. O elefante está correndo e está correndo rápido! Rafael, muito obrigada por esse papo. Foi muito esclarecedor, de verdade. Convidado: Eu que agradeço, Juliana! Valeu pelo convite e parabéns pelo Allur, o conteúdo de vocês é essencial para a nossa comunidade. Até a próxima! Apresentadora: Valeu! Pessoal, chegamos ao fim de mais um episódio. Se você curtiu saber sobre o futuro assíncrono do PHP e as novas funcionalidades do 8.6, não esquece de compartilhar esse episódio com aquele seu amigo que ainda acha que PHP morreu — mostra para ele o que é a Io\Poll e deixa ele de queixo caído!

Tags

open-source backend php functional programming performance concurrency asynchronous