[DÚVIDA] PHP vale a pena ?
Considere o seguinte cenário: você tem várias aplicações em produção utilizando PHP para exibir painéis indicadores de produção e resultados, você está pensando em trocar de linguagem devido a preocupações com desempenho e outras razões. Qual é a opinião de vocês sobre o PHP? E se você decidisse mudar de linguagem, para qual você consideraria migrar e por quê?
Sistemas lentos
Todos os sistemas "lentos" que já me deparei nesse vários anos de profissão, eram por conta da arquitetura da aplicação e não da linguagem.
Só de organizar a arquitetura com cache, mensageria, alguns serviços de suporte, eliminar processos desnecessários, otimizar fluxos de execuções, reduzir o tamanho dos payloads tanto na "ida" quanto na "volta"... tudo isso tem um impacto gigantesco na performance da aplicação.
Algumas vezes é necessário atuar na camada de dados, otimizando o banco de dados, ou se usa ORMs verificar se ele não carregando coisas demais quando não são necessárias ao negócio. Já vi casos que em um processo, o cliente precisava apenas do código e descrição do produto, mas como os programadores utilizavam apenas um repositório com ORM sem pensar nos processos como um todo, o que era retornado era o cadastro inteiro do produto (categorias, preços, urls de imagens...). Ou seja, usaram o repositório de CRUD que tratava o cadastro inteiro do produto, para todas as outras operações que envolviam produtos, esse é um dos maiores problemas de quem quer implementar repositórios mas se esquece dos contextos delimitados.
Enfim, tem muita coisa que dá para alterar e ter uma boa performance na aplicação sem alterar a linguagem de programação. Fazer essa troca é caro e demorado demais, sabe aquela grana que poderia ser o seu aumento de salário, essa grana vai ser usada para bancar a migração da linguagem de programação ou para contratar outra pessoa para ajudar, mas certamente não vai para o seu bolso.
É claro que as versões tanto da linguagem como das dependências devem sempre ser atualizadas, isso também pode ter um impacto de performance no final.
Veja que não falei especificamente de PHP, o que eu descrevi serve para qualquer linguagem.
Sobre PHP valer a pena
Depende do seu objetivo, assim como qualquer outra, para aplicações web vai atender muito bem. Se for para trabalhar com análise de dados, Python tem ferramentas mais especializadas. Se for para embarcados vai de C/C++ ou Rust.
PHP particularmente acho que é uma boa linguagem para se ter na sua caixa de ferramentas.
Cara,
Ano passado tinhamos o mesmo problema. Uma aplicação feita em CodeIgniter em 2009. Somos 03 na equipe fora esse sistema temos as demandas do dia a dia. E tivemos para pensar em 03 tecnologias
NodeJS: -Precisa se preocupar com boilerplate para tudo. Não dava para conciliar.
Python/Django: -Teríamos que aprender essa nova linguagem. Queríamos isso. Mas tivemos algumas limitações.
C#.Net: -Até cogitamos. Pois temos algumas aplicações.
A verdade é que você precisa olhar para sua equipe e vê o que cada pessoa vai fazer. Na empresa tivemos que deixar 01 para a Infra e DevOPS. O outro cara pegou a parte Web. Na época era Júnior. E eu tive que assumir as reuniões e focar no Banco de dados. Tanto para modelar o sistema, como para instruir o Dev.Web
E nesse caso a conclusão foi:
PHP/Laravel:
- Conseguimos deixar o COdeIgniter e Laravel no mesmo servidor
- Curva de aprendizado acelerada e pudemos reutilizar a linguagem alternando entre as aplicações.
- Possibilidade de utilizar o Livewire (Isso realmente vai salvar muito o seu tempo nas entregas).
- O que ele aprendia no CodeIgniter poderia aplicar no Laravel.
- Profissional Laravel não é barato. Depois de formado.
- Tem uma estrutura robusta para os projetos.
- Ecossistema rico.
- Pacotes para tudo que pensar.
E o melhor tudo: PAZ.
Considero que fomos felizes na nossa escolha. O Laravel define tanta coisa e tira muitas escolhas dos seus ombros. Agora se for um projeto solo. Escolha o que quiser.
Conselho:
- Pense nas habilidades do seu time e pegue a tecnologia que irá valorizar eles e você. Escolha de tecnologia não é algo individual.
- Pense nas responsabilidades fora da tecnologias.
- Entender as regras de negócio e colocar no sistema.
- Reuniões com usuários e diretoria
- Saber colocar prazo.
- E se um dos caras da sua equipe sair?
PHP é EXTREMAMENTE performático!
PHP-FPM com configuração mínima já é extremamente performático!
Temos duas aplicações em Node.js e um outra em C#, nos arrependemos de não termos feito em PHP com Laravel.
Para projetos Web (API) aqui na empresa é PHP SEM DÚVIDAS!
Tenho aplicações com mais de 60 mil usuários simultâneos e a infra PHP pra isso é muito barata.
Tenho uma aplicação Laravel que roda mais de 20 milhões de Jobs por dia... Se eu precisar eu posso escalar horizontalmente colocando mais servidores de Job.
Quem trabalha com PHP Moderno pra Web não precisa de outra coisa.
Detalhe, eu uso o PHP para API, todos os meus fronts são em VueJS com Quasar
O desempenho do Laravel é excelente, não troco por outra linguagem. O ecossistema Laravel em si é gigantesco, cheio de facilidades.
Pode vir JavaScript, Python, Java que não tem o que o Laravel tem, não faz o que ele faz.
Você monta um projeto com autenticação, toda a parte visual, rotas, migrations, persistência de dados com sqlite por padrão inicial, tudo isso em menos de 5 min com apenas 1 comando laravel new --breeze, e ainda é customizável.
Só vale trocar o PHP por linguagens extremamente performáticas, como Go ou Skala.
Java e C# só entra em cogitação se o seu projeto for GIGANTESCO com milhares de classes.
Nenhuma outra linguagem (Node, Python, ...) terá um ganho de desempenho sobre um PHP bem configurado.
Fora que se sair do PHP e ir para uma linguagem mais performático o custo do teu profissional vai aumentar em muito. Estuimo que 50% para java/c# e mais de 100% para GO.
Compensa trocar apenas porque os outros falam que uma boa linguagem é ruim?
Sim.
Qual é a opinião de vocês sobre o PHP?
Linguagem rápida, completa e estável. Útil e indicada para inúmeros sistemas complexos baseados em web, dá pra construir muita coisa bacana.
E se você decidisse mudar de linguagem, para qual você consideraria migrar e por quê?
JS, mais especificamente NodeJS. Andei estudando um pouco sobre e me rendeu uns resultados bacanas, acho que conseguiria construir alguns sistemas que já fiz em PHP com o NodeJS também, então acho totalmente válido, além de ser bem veloz.
preocupações com desempenho do que exatamente? está fazendo as contas dentro do PHP? que versão de php está usando? e o resto da equipe, qur outras tecnologias dominam?
dá mais contexto fe onde vem esses indicadores e as "outras razões" se possível.
Vale muito a pena esse vídeo aqui do Pinguim do Laravel -> https://youtu.be/67ZYVrHXL1A
lendo os demais comentários eu pode perceber que seus colegas estão querendo migrar toda uma aplicação que já funciona para duas linguagens diferentes para dividir front e back. na minha humilde opinião, vocês vão fazer merda. mantenham-se no PHP, atualize para a mais nova versão, façam uma refatoração dos pontos mais críticos, utilizem cache sempre que possível, revisem a normalização do banco de dados e revisem a arquitetura. tudo isso pode ser feito sem alterar a linguagem de programação e tenho certeza que trará resultados significativos no ganho de performance.
Esse ponto sobre uma linguagem valer a pena ou não vai muito do objetivo que você deseja atingir. Cada linguagem de programação tem seu melhor recurso (MUITO provável que você já deve saber desse fato) para chegar no destino onde deseja, não entendo muito de PHP mas acredito que se não valesse a pena não estaria viva no mercado até hoje ao longo dos anos. Mas o que realmente deve ser levado em consideração é seu objetivo final.
OBS: Sobre paineis indicadores, gráficos primeira coisa que me veio em mente foi Power BI, uma tecnologia incrível pra analise de dados e construção de gráficos.
vale apena sim meu caro amigo. estude algum framework para frontend e rode o php no backend você vai ver que terá o mesmo resultado em desempenho na sua aplicação que muitas outras app que rodam no backend outras linguagens tais como python ou node.js. Se você ainda esta no inicio de uma olhada neste artigo aqui
Hospeda isso onde? Qual a média de requisições?
Verifica onde o servidor ta com gargalo pra estar ocorrendo essa lentidão (pega algumas métricas de monitoramento, tem diversos meios pra isso).
Obviamente quanto mais performático tiver a aplicação, menos recursos serão utilizados.
Se fosse um lançamento de produto novo, não recomendaria PHP, mas já que é pra manter um produto existente, não vejo sentido em trocar se a única (ou maior) razão é "desempenho".
Não recomendo trocar de linguagem só por ser mais rápido. Principalmente se você já tem uma aplicação funcionando.
Como foi dito pelo @user1, se o problema é desempenho, existem milhares de outras coisas a se fazer primeiro, em relação a design de sistemas/arquitetura, pra deixar o sistema mais performático. Inclusive, esses problemas continuarão existindo mesmo se mudarem de linguagem.
PHP com octane e swoole fica mais performatico que Go e nodejs, ainda mais com as Fibers que permite processamento paralelo.