PHP, o bode expiatório favorito da Internet

Tradução/adaptação livre deste post aqui: https://dev.to/lunamiller/php-the-internets-favorite-scapegoat-2kde

Eu não tenho certeza quando começou, mas mais e mais programadores estão saindo do PHP para Go, Java e Python. Claro, há também migrações entre essas últimas três, mas você raramente vê alguém mudando para o PHP. Esse fenômeno me fez pensar, e vi que o PHP é de fato o bode expiatório perfeito. Talvez seja porque seu logotipo é um elefante, o que o torna inerentemente mais capaz de carregar fardos.

Problemas de sistema? Culpe o PHP

Quando os sistemas constantemente têm problemas on-line, a culpa é do PHP. Quando um post-mortem é necessário, e alguém tem que assumir a culpa, não pode ser por causa da nossa própria incompetência, certo? Então, vamos culpar o PHP. Afinal, ele não vai argumentar de volta. Culpe o PHP por ser uma linguagem dinâmica com restrições frouxas, o que frequentemente deixa armadilhas despercebidas. Definitivamente precisamos refatorar.

Se as mesmas pessoas que escreveram o código originalmente forem as mesmas que estão refatorando, independentemente da linguagem, o resultado provavelmente será o mesmo. Elas estão apenas reescrevendo o código antigo em uma nova linguagem sem questionar se seu design inicial estava falho.

Alguns até escrevem código Go ou Java com uma mentalidade PHP: inicializando um monte de coisas manualmente no método principal, definindo uma tonelada de map[string]interface{} em Go ou usando multithreading para acessar propriedades de classe em Java sem bloqueio.

Altos custos de TI

Quando os custos do servidor permanecem altos, a culpa é do PHP pelo desempenho ruim e execução single-threaded. Honestamente, poucas empresas têm tráfego massivo. A maioria nem sequer recebe tantos cliques em um dia. Se o desempenho for um problema, é provável que seja devido a um monte de consultas lentas em execução constante. Mudar para C++ ou RUST não vai consertar isso magicamente.

Lembre-se, PHP foi a linguagem inicial usada pelo Facebook para construir conteúdo dinâmico de site e funcionalidade do lado do servidor. Duvido que muitas empresas tenham mais tráfego do que o Facebook.

Novas 'Novas Equipes'

Também é comum que novos líderes limpem a casa. Muitas pessoas online perguntam por que o sistema de uma empresa usa três linguagens de programação diferentes. As respostas usuais giram em torno de cada linguagem ser adequada para diferentes tarefas, mas o verdadeiro motivo geralmente é que a empresa mudou de CTOs várias vezes, e cada um trouxe suas próprias linguagens preferidas.

Quando um novo diretor técnico chega, eles geralmente tentam limpar a equipe antiga. Durante esse tempo, o PHP é culpado por vários problemas, supostamente atrapalhando o desenvolvimento futuro dos negócios e os planos de IPO. Essa tática é usada independentemente da linguagem de desenvolvimento para justificar a remoção de dissidentes.

Quando o PHP é culpado e uma mudança para outra linguagem é proposta, alguns programadores podem até comemorar. Tente mudar Java para Go ou vice-versa; é a mesma história. Ano passado, nosso novo CTO nos fez mudar de Go para Java, e alguns colegas desabafaram em um fórum anônimo, alegando que era um passo para trás.

Na realidade, se o novo líder visse Java, ele provavelmente faria você mudar para Go. Reformular a stack de tecnologia é apenas uma maneira de limpar a casa, mantendo os membros da equipe em conformidade enquanto se livra daqueles que não se alinham com a nova direção.

KPI (Indicadores-chave de Performance) e Promoção

Mesmo sem um novo líder técnico, nesta era orientada por KPI e obcecada por OKR, todos precisam encontrar trabalho para justificar sua existência. De que outra forma você pode mostrar que sua equipe está trabalhando duro, ficando até tarde todos os dias?

O PHP se torna o trampolim perfeito. Os gerentes podem dizer aos superiores que um sistema PHP legado precisa ser retrabalhado com a mais recente linguagem sofisticada, atribuindo a tarefa a alguém confiável. Dessa forma, mesmo que uma promoção não seja garantida, classificações de alto desempenho são quase certas.

Concluindo, esses são os pensamentos e visões pessoais sobre o porquê de o PHP frequentemente acabar sendo o bode expiatório. Essa análise pode não se aplicar a empresas verdadeiramente voltadas para a tecnologia. As pessoas adoram comparar linguagens de programação, mas a melhor é aquela que atende às suas necessidades. Comparar linguagens é como classificar estrelas do esporte; é principalmente subjetivo, mas gera interesse e tráfego, o que por sua vez apoia muitas pessoas.

Fique à vontade para colaborar/discordar nos comentários.

Vocês viram que a Rocketseat está lançando um curso de PHP? Confesso que me surpreendeu. Quem diria, hein?

Interessante falar sobre isso. Eu trabalho com PHP e Laravel há 10 anos e ainda assim decidi participar do curso da Rocketseat só pra entrar numa comunidade que, olhando de fora, parece ser tão massa. Só que me deparei com uma coisa bem desmotivadora: até o momento (segunda aula free) o foco do curso foi totalmente voltado ao Laravel, com alguns conceitos sobre o PHP básico. Daí eu vendo fico tipo... manoo... como assim?! Nada contra, admiro o trabalho dos caras, mas vamos ser realistas: se o título do curso fosse "Curso de JavaScript" e o cara já sai ensinando React e NextJS, o que você iria sentir? Na minha opinião, primeiro se aprende os conceitos básicos da liguagem e depois se evolui para frameworks e conceitos avançados. Indiferente da linguagem. Mas né, faz parte da estratégia deles, eu sei. É um curso de quase 100 horas, então vão mostrar um pouco sobre tudo e nestes videos gratuitos, como sempre, teria o superficial sobre o todo pra demonstrar o que seria visto no curso final. Só que não. Expressei a minha opinião falando exatamente isso no Discord deles e a galera realmente demonstrou não estar entendendo nada do curso e sentindo frustradas. Porquê será?
Putz! Não sabia disso. Estranho mesmo. Eu precisei desenvolver um projeto com Laravel, sendo que nunca tinha mexido com PHP. Mas tirei uma semana para estudar PHP e só na semana seguinte fui aprender Laravel. Foi um tempo curto, mas para mim que já sei estudar tecnologia deu pra levar. Durante o processo fui aprendendo o restante que precisava. Mas esta iniciativa de focar no framework para iniciantes é estranha.

Sempre gostei do PHP, desde o primeiro contato, mas realmente existe um sentimento muito forte de ou é ódio ou é amor pelo PHP, isso é bem triste, mas fazer o que XD

Team superioridade do elefantinho azul

Nunca trabalhei ou se quer coloquei a mão em um código PHP, mas pelo que ouço de quem trabalha é que ela é muito boa para web, porém pelo que escuto estaria aí o problema, pelo relatado parece que é uma linguagem que serve apenas para isso, aplicações web, seria tipo um dart (linguagem que amo), mas que basicamente só serve para trabalhar com Flutter.

As empresas hoje em dia tendem a optar por linguagens que ofereçam uma maior gama de possibilidades, por exemplo Node que usa Js/Ts, ou seja, uma linguagem e várias stacks (front, back, mobile), mesmo talvez não sendo a melhor em uma stack específica, ou Java (Api's, mobile, desktop, embarcados e mais), C# (Api's, mobile, desktop, embarcados e mais), ou Go (Api's, ferramentas de linha de comando, sistemas de rede e mais), ou Python (Api's, ferramentas de linha de comando, aprendizado de máquina e mais) ou Rust (Api's, compiladores, ferramentas de linha de comando e mais).

Se realmente o PHP se propôs a focar especificamente na parte web, meio que ficou para trás nessa corrida de versatilidade entra as linguagens e consequentemente na escolha pelas empresas. Mas essa é só a minha visão de longe, pois como comentei nunca trabalhei com ela, assim como também não consigo afirmar se ela no momento atual destina-se só a parte web. Saberia dizer?

O PHP é hoje uma linguagem bem versátil, também pode ser usado para outras finalidades além do desenvolvimento web, tais como api's, ferramentas de linha de comando, aplicações desktop usando PHP-GTK (apesar de não ser tão popular quanto Java e C#), automação e shell scripts, processamento de dados (CSV, xml, etc) com libs tipo o Symfony Console, Microserviços, ferramentas de rede, aplicações IoT, processamento de docs e pdfs (TCPDF, PhpSpreadsheet, PhpWord, etc), voltado pra área da Inteligência Artificial, pode ser usado para o desenvolvimento de chatbots, assistentes virtuais, pode ser usado para análise de dados se combinado com bibliotecas como o TensorFlow, reconhecimento de imagens e fala (OpenCV, DeepSpeech)... Acho que podemos dizer que o PHP não deve em nada para outras linguagens no quesito versatilidade.
faltou citar o nativephp pra desktop, so contribuindo.
Caramba que legal, não sabia que tinha esse arsenal todo, não sei como todas estas funcionalidades são utilizadas, se dependem de muita coisas por trás em comparações com as outras citadas, mas realmente não dá pra entender como uma linguagem já com tanta bagagem pode estar sendo negligenciada.
O PHP tem exatamente o mesmo problema do javascript, Java, C#, C++, etc. se chama "mão de obra desqualificada", boa parte da galera aprendeu copiando projetos de cursinho ou vídeos no YouTube, e não estou dizendo que isso é errado, mas infelizmente não tem a profundidade necessária para ensinar conceitos como lógica, estrutura de dados, etc. então código ruim em n linguagens é um sintoma de outro problema.

E ainda assim a linguagem e sua comunidade vivem. Reclamar desta ou daquela linguagem é natural e faz parte da vida, mas o maior problema, na minha opinião, são as pessoas que não entendem nada e nem sequer conhecem a linguagem a fundo, fazerem comentários maldosos. Muitas vezes, porque um dev que admiram falou que é ruim, aí vão na "onda", ou, como dizemos no interior: pegam rabeira.

PHP foi a primeira linguagem a unir front e back de maneira aproveitável. Teve e tem problemas? Claro, qualquer uma tem. Só acho que é preciso mais respeito com algo que ajudou tanta gente, e continua ajudando. E, lógico, com seu criador também.

"Reformular a stack de tecnologia é apenas uma maneira de limpar a casa..."

Quando o cara chega e não faz ideia do que tá aconcetendo, obriga a equipe a faer "qualquer coisa" mesmo que "fazer nada" seja a opção mais óbvia e benéfica.

A gente brinca que todo novo diretor/vp inventa de "criar" algo novo, mesmo que esse algo novo ninguém queira ou vá usar, só pra ter o que mostrar pro conselho diretor. huahuahua

PHP foi a primeira linguagem de programação que eu aprendi. Por mais que PHP seja alvo de críticas, confesso que só comecei ouvir coisas ruins a respeito quando migrei para outras tecnologias.

Desde 2016, tenho trabalhado com PHP e, ao longo desse tempo, percebi que ele é tão capaz quanto outras linguagens de programação. Mesmo quando se trata de desafios de desempenho, como os que vemos em sistemas baseados em JavaScript, o PHP oferece soluções eficazes. Embora o Java seja uma escolha robusta para grandes sistemas, o PHP tem uma vantagem importante: sua facilidade de aprendizado. Isso o torna uma opção poderosa e acessível, sem perder em capacidade técnica.

Bah, Que texto fodah em...

Colocação perfeita. Se o objetivo é receber poucas dezenas de resultados por hora, por que nao usar a tecnologia mais rapida e barata. Da para ser muito feliz com php ou ate algo mais simples.

Comecei em programação em php, pela facilidade de uso e exemplos disponiveis, por volta de 2002. A partir de 2009, migrei para python em novos projetos. Em relação ao php, eu via uma maior produtividade e uso mais amplo. E desde 2022, os novos projetos da minha empresa são em Rust, pela confiabilidade. Ainda mantenho código legado em php, e ate uso python em protótipos e scripts. Mas o prazer de desenvolver em Rust é saber que uma vez compilado, o número de bugs e erros em produção é bem menor. De qualquer forma, em qualquer linguagem, o uso de frameworks, padrões de projeto e testes adequados pode impactar muito na qualidade do software para uso em produção e também na manutenção.

A bagunça começa aqui:

SELECT * FROM wp_posts ORDER BY id DESC LIMIT 12

kkkkk

faz muito sentido rsrs
Oras, não conseguem fazer um SELECT em um banco e culpam quem? Sim ele mesmo, o PHP!!