Executando verificação de segurança...
1

Muito interessante seu post, porém tem alguns pontos que eu discordo e vou-lhe mostrar o porque.

  1. PHP não é interpretado ocasiona perca de performance
    Isso até pode ser verdade, porém há formas de contornar isso de uma maneira bem legal. De uma maneira geral, sabendo configurar o ambiente você não terá problemas e isso deve ocorrer somente em ambiente de dev/qa. O PHP possui o opcache, que são caches de bytecode que 'pula' a etada de interpretação a cada request, dando um ganho de memória GIGANTESCO. A maior parte da latência é justamente nesse momento de interpretação do script, então com o opcache já eliminamos um bom tempo de resposta (:. Com o PHP 8 ainda tivemos a implementação do JIT que é um opcache 'com bomba', que ajuda ainda mais a aplicação ganhar performance. Você terá um ganho gigantesco de performance e provavelmente isso não será problema. Moral: Se você está com problema de performance PROVAVELMENTE (eu disse provavelmente) o problema não é a linguagem, mas sim a configuração do ambiente ou código.

Eu palestrei sobre isso recentemente em duas faculdades, caso queira dar uma olhada, aqui estão os slides: https://speakerdeck.com/renandelmonico/tunando-seu-php-em-producao-com-cache-de-bytecode.

  1. Falta de async/await
    Claro, isso é um 'problema', porém pode ser contornado em qualquer aplicação. Trabalho com CQRS e os comandos são sempre 'Fire and forget', ou seja, eu envio uma requisição para a aplicação e não fico esperando executar determinada ação para ter uma resposta, possuo um middleware que já me devolve uma resposta enquanto o PHP fica processando 'por trás dos panos'. Dê uma olhada nas funções ignore_user_abort(), ob_start(), ob_end_flush(), ob_flush() e flush().

  2. PHP para projetos médios/grandes
    Na empresa que trabalho usamos PHP para projetos grandes e processamento de um bom número de dados e não temos problemas com performance. Com as ferramentas certas (profiling da aplicação) conseguimos identificar facilmente onde o código está lento e otimizar e normalmente é problema de lógica. Então sim, eu usaria PHP para projetos maiores, PORÉM depente do que o projeto se propõe. Com certeza devemos considerar as demais linguagens antes de tomar uma decisão.

Carregando publicação patrocinada...
1

Gostei muito do seu comentário =)
Concordo que com o opcache ajuda bastante a performance e ele é bem tranquilo de configurar. Sobre essa questão do async/await, acaba caindo na ponto de alternativas como comentei no texto, conheco o Swoole. Ele possui essas chamadas "por de baixo do capo" que você comentou.

No geral, ainda me parece que é um esforço adicional (e talvez desnecessário) quando você tem outras opções que já resolvem isso nativamente, o que acaba (na minha opinião) derrubando a possibilidade de criar novos projetos grandes em PHP. Claro que quando você já tem sistemas escritos é uma outra história..

1

Sim, é um esforço adicional que precisamos fazer quando queremos algo assíncrono. Em alguns casos vai resolver, mas também acho que o PHP precisa de algo nativo para criarmos funções nativas assíncronas. Historicamente o PHP demora um pouco para adotar novas ideias. A linguagem "espera" algo ser "validado" por outra para depois implementar nela, o que acaba ocasionando essa "demora". Acredito que em versões futuras o async/await venha :D