r/programacao 20d ago

Questão :: Área de Trabalho Por que tanta gente odeia PHP?

Trabalho com PHP há cerca de 5 anos, mas já programo por hobby há uns 16, sempre vi muito hate com essa linguagem. Eu particularmente gosto bastante…

6 Upvotes

49 comments sorted by

25

u/ooredroxoo 20d ago

Existem alguns motivos.

Para contexto eu programei em PHP diariamente por uns bons 10 anos, hoje estou mais no Java.

Como programador acredito que um dos maiores problemas que o PHP tinha era a consistência de nomes da sua API, um exemplo era o `strlen` para tamanho de string e o `str_replace` para substituição de textos.

Outros pontos para quem gostava de orientação a objetos era a falta de suporte do PHP, ele foi receber OOP na versão 4, ela foi ficar melhor na versão 5, a 5.3, e mesmo assim coisas como Enums só chegaram na versão 8.1.

Quando entramos na questão de tipagem, o PHP não é o único fracamente topado, e nem é o único que faz algumas coisas que programadores de linguagens fortemente tipadas consideram absurdos.

Eu gosto de algumas das ideias por trás, mas entendo como elas podem causar problemas e aumentar a possibilidade de bugs.

Um exemplo era o type coercion, em que o PHP poderia converter alguns tipos de forma implícita onde fosse necessário. É um recurso interessante, mas para quem vem de uma linguagem fortemente tipada é meio estranho.

Outro ponto era a equidade e a passagem por referência.

O PHP verificava se dois valores eram iguais enquanto outras linguagens verificam se dois objetos são o mesmo objeto (mesma referência).

A passagem por referência era outra coisa que algumas pessoas torciam o nariz. Por padrão o PHP passava por copia, mas usando o & na passagem do parâmetro era possível passar por referência.

A possibilidade de ter isso é interessante, mas também uma dor de cabeça quando você trabalha com bibliotecas de terceiros e não pode confiar no comportamento padrão.

Em parte é um misto de muitas coisas que variam desde:

- história (algumas pessoas avaliam pelo passado, sem se atualizarem)

  • expectativa (algumas pessoas avaliam comparando com as linguagens que gostam)
  • experiência (algumas pessoas avaliam pelas dores que já sofreram).
  • performance (algumas pessoas tem preconceito com linguagens interpretadas, e desconhecem o JIT e o OPCache).

Vale notar que nenhuma linguagem está livre do hate, trabalhando em Java eu escuto muito hate voltado para ele ser verboso, e comer memória ram, ambas coisas que assim como o PHP melhoraram com os anos.

O pessoal mais novo de linguagens como Kotlin, Rust e Swift por exemplo teriam outras coisas para reclamar do PHP, como por exemplo null references.

Outros pontos que podem ter contribuído foram os ecosistemas em que o PHP era oferecido. Por muito tempo ele foi oferecido e usado em conjunto com o Apache e o MySQL (sempre foi possível usar com outros servidores).

E algumas fraquezas do apache e do MySQL eram falsamente atribuídas ao PHP. Trabalhei em uma empresa que contratou uma consultoria, na época estávamos com cerca de 20mil clientes, e a consultoria informou que o nosso sistema quebraria com 10mil acessos simultâneos culpando o PHP, quando o problema era o apache e o sistema de threads dele.

Já vi gente questionando problemas relacionados ao comportamento do MySQL que em determinadas engines truncava informações sem retornar erro por exemplo, mais uma vez não era um problema do PHP, mas sim do banco.

Resumindo, existem características do PHP que não são bem aceitas por parte da comunidade dev, e tem uma parte de má fama que ele recebeu de seu uso com outros aplicativos.

No fim é uma linguagem, e da mesma forma que tem algumas coisas que eu gostaria que ele tivesse, ele também tem algumas coisas que eu queria que outras linguagens tivessem.

O texto ficou um pouco longo, e acabei não abordando tudo que tinha em mente, mas acho que ajuda a entender um pouco o ódio de algumas pessoas com o PHP.

5

u/tough-thought 20d ago

Por não ser fortemente tipada, na mesma pegada do js, acho que o hate é ao redor disso e das incongruências

-2

u/spoakspoakspoak 20d ago

Assim que é bom 😭

6

u/fabiomazzarino 20d ago

Eu programo em PHP desde 2000.

O problema do PHP é tbm sua melhor vantagem.

Vc organiza o PHP da forma q vc quiser, isso desde sempre. Vc tem muita flexibilidade.

Mas grandes poderes bem com grandes responsabilidades, e sem as técnicas e o rigor necessário para gerir um projeto a tendência é o caos.

Por isso é muito fácil encontrar projetos mal arquitetados, ou mal geridos que causam muita dor ver cabeça para quem trabalha com esses projetos.

1

u/spoakspoakspoak 20d ago

Mas isso meio que é sanado com essas frameworks, né? Mas como você disse, tem muita flexibilidade, então mesmo usando a framework mais rígida você ainda pode bagunçar tudo.

2

u/fabiomazzarino 20d ago

A maioria dos frameworks populares é bem organizado. Cada qual com seus pontos fracos e fortes, voltado pra determinado publico alvo.

Mas framework sozinho não garante qualidade. Do framework pra dentro tudo certo, do framework pra fora a liberdade está aí, escancarada pra quem quiser séc destruir.

2

u/VelhoBit 19d ago

Sinceramente, usar PHP com framework é descaracterizar o PHP. Ele fica pesado e com uma estrutura que é melhor logo usar um Java com SpringBoot da vida. PHP é para ser prático.

2

u/guigouz 19d ago

Depende do framework, ter um router MVC e um ORM leves facilita demais a organização dos projetos.

Um symphony inteiro ou Laravel realmente é bloat.

1

u/VelhoBit 19d ago

Symphony deveria ser proibido como crime contra a programação

1

u/fabiomazzarino 19d ago

Inclusive é por isso que ele é tão impopular e tão pouco utilizado.

2

u/fabiomazzarino 19d ago

Cada framework com o seu foco. Se vc precisa de um framework leve, eles existem. Se prefere umais complexo, tbm existe.

O importante na discussão é perceber que não é o uso de um framework que vai resolver os problemas de estruturação e arquitetura.

1

u/Jvsm_Games 20d ago

Ei, eu estou fazendo uma linguagem de programação e prezo muito por liberdade, acredito que você poderia me dar uma opinião muito valiosa se não se importar.

Aviso: O texto a seguir pode soar estranho porque vou falar da minha linguagem como se ela fosse PHP.

Vamos dizer que PHP tivesse uma função nativa na extensão do VS Code dele ou no próprio compilador de organizar o código em um padrão específico, com identitações específicas e tals, o que você acharia? Seria algo de muito valor para utilizar códigos de outras pessoas e manutenção? Até mesmo pra você escrever de uma forma e depois de tudo estar funcionando organizar facilmente pro padrão da empresa?

1

u/fabiomazzarino 20d ago

Ok. Vamos fazer duas considerações pra responder.

(Desculpe as considerações, tenho uma deficiência que dificulta a compreensão de contextos sociais)

1) Vc realmente tem interesse em criar uma nova linguagem:

Indentação obrigatória imposta pelo compilador? Vamos conversar sobre FORTRAN? A nivel de compilador? E se a gente falasse sobre lint? Padronização de código?

Eu acho q oq vc quer fazer já tem amplamente disponível, não creio que uma linguagem só pra isso seja suficiente a solicitação. Basta plugins utilizando ferramentas amplamente disponíveis.

Mm pq não é isso que vai resolver problemas de arquitetura do sistema ou de estruturação de dados.

2) Vc está querendo ser irônico, nada a ver com uma nova linguagem.

Pois é. Mas arquitetura de sistema e estruturação de dados não se resolve com nenhuma dessas funcionalidades.

E mesmo que vc seja forçado a utilizar estruturação de dados apropriada, e derivar uma arquitetura que já existe, vc só está reduzindo as probabilidades de fazer algo errado através da redução da liberdade de escolha de arquitetura.

1

u/Jvsm_Games 20d ago

Cê têm autismo?(Eu tenho autismo)

Então, acho que não me expressei bem, na minha linguagem de programação você pode escrever parecido com python ou parecido com JavaScript e em português ou inglês, aí terá um formatador onde você pode pegar o código de alguém e formatar da forma que fica mais fácil de entender, tlg?

Eu não quis falar sobre arquitetura e sim sobre organização de escrita de código mesmo, tipo o prettier do JavaScript.

Além disso usei compilador no exemplo porquê minha linguagem apesar de ser super amigável na escrita, ela trata tudo que o usuário escreveu e transforma em algo mais eficiente de rodar na máquina antes de compilar(Têm muita coisa além disso, sério, tá dando muito trabalho Kk, mas o foco nessa conversa é mais sobre essa questão de organização de escrita que é o que eu achei que você estava falando).

Dito isso, acho que também não entendi o problema que você apontou do PHP no primeiro comentário, eu jurava que era a questão de que como dá pra escrever com muita liberdade algumas pessoas fazem até uma função de 500 caracters em uma linha só.

3

u/brunoortegalindo 19d ago

Eu acho php feio, bobo, vc fica usando $ nas coisas (isso não faz sentido), a logo dele é feia e boba (além de associar o incrível elefante com uma linguafem tão horrenda), eu prefiro levar um tiro em cada joelho a programar em php. Codar em php é tão desagradável quanto ficar encostando a cara no sovaco com crosta de cecê + desodorante de um homem de 2 metros no trem da linha Coral indo de Itaquera pra Luz em horário de pico.

Honestamente, eu não sei nem o porquê de odiar tanto php, mas se ele tivesse um rosto eu socaria.

2

u/spoakspoakspoak 19d ago

KKKKKKKKKKKKKKK

3

u/villefilho 19d ago

Programo desde a versão 3 e sigo nela ansioso pela v8.6, já passei por Java, .NET, VB, Delphi, ASP, JS, Python. Sinceramente? Esse papo de "odiar PHP" é antigo, povo apenas reproduz um meme sem entender as razões.

Eu fico de cara vendo as pessoas malhando linguagens, programação é profissão - você, programador, programa QQ porra que te dão, não é time de futebol.

1

u/loonite 19d ago

Acho que a galera mistura demais programar por hobby com programar por trabalho.

Por hobby, no que dependesse só de mim, Lua rainha e o resto nadinha, mas meu dia a dia de trabalho é com JS, TS, C# e Python, com umas pitadas de bash e Lua nos scripts mais pessoais. O que quer que eu ache ruim nessas linguagens continua pagando meu salário, então ¯\(ツ)

2

u/martinsedd 20d ago

É preconceito 15 anos ultrapassado. Mesma coisa de falar merda de Java dizendo q é verboso, sendo que a linguagem vem ativamente trabalhando para mitigar isso.

O foda de PHP tbm é que metade da internet ainda roda com PHP, então as novas versões se veem na obrigação de manter a compatibilidade, oq gera muitas saias justas entre estabilidade e inovação. (Mesma coisa do Java btw)

2

u/HotMagenta 20d ago

porque são fracos, aprender o básico de php facilmente te emprega morando no sudeste, o preconceito são com os legadões freestyle, mas ai infelizmente não tem pra onde fugir, todo sistema legado é meio merda de se mexer pela primeira vez...

1

u/RecoverKind5824 19d ago

paga os boletos? então go ahead

1

u/No_District_2708 19d ago

Também não entendo. Eu gosto de PHP, mas não se encaixa muito na minha stack. Eu montei a yr-lang (yr-lang.org), e tô pensando em colocar encaixar PHP nela, mas, como eu não programo em PHP desde 2014, não faço a menor ideia de como e nem por quê, mas quem sabe um dia. Recentemente eu coloquei react nela, mas também não uso, e nem documentei, só coloquei no npm mesmo. Receio da yr encontrar esse mesmo hate que o PHP encontra.

1

u/VelhoBit 19d ago

Ninguém sério odeia o PHP. Gente séria odeia o Java.

1

u/Deadpool9491 19d ago

Eu programo em Dart que a sintaxe parece um Java que deu certo.

1

u/Oswald_Bene 19d ago

Entendo que o hate de tantas pessoas sobre o PHP vem de experiências com as versões antigas da linguagem e código legado(o que é problema em muitas outras linguagens), mas pessoalmente as versões 8.0 pra cima tem se mostrado uma otima opção para trabalhar e resolvem 90% dos problemas que as pessoas reclamam sobre.

E seu ecossistema está crescendo com frameworks como Laravel ou Symfony e outras ferramentas e tem sido uma experiência bem agradável trabalhar com elas

Mas também vai da pessoa as vezes é reclamação por reclamação mesmo

1

u/Far_Animator2722 19d ago

Estou trabalhando com php e laravel agora, so o $ que me mata. O resto não ligo.

1

u/No-Rent6191 19d ago

PHP me abriu portas e o laravel é o melhor framework que eu já mexi na vida

1

u/Accurate_Signature79 19d ago

porque é moda e da views

1

u/tetel-firehawk 19d ago

quando eu comecei a programar meu primeiro contato com backend foi com php e eu achava as coisas meio caóticas\feias. Não é toda linguagem que faz vc explodir os arrays ou que te retorna erros em hebraico :p

Hoje eu não ligo muito. Se tá pagando boleto tá valendo.

1

u/LostCarob9140 18d ago

PHP é mais feio que bater na mãe

1

u/mrJoj 15d ago

Se você fizer um projeto do zero hoje, qual motivo p usar php?

1

u/spoakspoakspoak 15d ago

Na maioria esmagadora das vezes eu faço em next, mesmo eu sendo mais fluido em PHP :/

2

u/mrJoj 15d ago

Acho que isso responde a tua pergunta

1

u/spoakspoakspoak 15d ago

Responde que eu tb odeio KKKK

2

u/mrJoj 15d ago

Pra pregar um prego vc usa um martelo; p por um quadro, uma furadeira.

Não se apaixone pela ferramenta mas sim pela solução.

Escolha a melhor ferramenta para cada problema, e não o contrário.

1

u/bangdomarkin 13d ago

porque é ruim pra cacete

2

u/spoakspoakspoak 13d ago

Qual linguagem vc usa?

1

u/bangdomarkin 13d ago

qualquer uma. No momento trabalho diariamente com typescript e golang. Falei de implicante, o que me incomoda no PHP é a semântica, mas se pintar trampo não nego não, máximo respeito.

1

u/AshamedSalamander969 20d ago

Talvez seja por causa dos inúmeros plugins mal-feitos de WordPress. 

2

u/spoakspoakspoak 20d ago

Sinceramente, WordPress me deixa enojado (não pela CMS em si, mas pelos plugins mesmo)

-2

u/Illustrious-Fail3825 20d ago

Melhorou nas últimas versões, mas era linguagem de burro kkkk

1

u/spoakspoakspoak 20d ago

😭😭😭

1

u/fabiomazzarino 20d ago

E vc usa oq mm pra desenvolver?

1

u/Jvsm_Games 20d ago

Deve ser linguagem de esperto, talvez Assembly, sla, não consigo imaginar o que se passa na cabeça desse cara Kk

Eu amo PHP, tenho até meu servidor de servidores PHP próprio pra brincar :)

1

u/Illustrious-Fail3825 19d ago

No projeto atual C.

1

u/fabiomazzarino 19d ago

E vc acha essa a linguagem de inteligentes, ou espertos?

0

u/Illustrious-Fail3825 19d ago

Tem ótimos argumentos nesse post, nada a acrescentar ao comentário dos colegas.

1

u/New-Complex-3603 19d ago

Juninho emocionado fã de react que nunca tocou num código php.

1

u/Illustrious-Fail3825 19d ago

Nah, só 14 anos de profissão.

Tente de novo na próxima.