Jump to content

Por que o PHP era um gueto?


Recommended Posts

Posted

Eu estava conversando com o fundador de uma start-up bem legal em DUMBO outro dia sobre o porquê de o mundo do

desenvolvimento “não-PHP” ter tanto desdém pelo PHP e pela comunidade em volta dele. Ele trouxe um ponto interessante que ficou na minha cabeça, principalmente porque nunca o tinha ouvido antes.

Se você não está a par da antipatia que a maioria dos desenvolvedores tem pelo PHP, ela geralmente gira em torno de:

  1. Sintaxe feia
  2. Falta de alguns recursos necessários que outras linguagens têm (antes da 5.3, namespacing, closures)
  3. Nomeação de funções, usos e outras peculiaridades inconsistentes
  4. Mistura de código procedural e orientado a objetos
  5. O fato de 80-90% dos projetos PHP serem grandes porcarias

Mas o problema dele com o PHP era um pouco diferente. Ele não disse que a linguagem em si era pobre – ele disse que era a cultura geral em volta da linguagem, que é geralmente reverenciada pelo criador da linguagem, que parece ter encorajado praticas ruins. Isto é, as bases de código do PHP tendem a ser insustentáveis.

O conceito de que a comunidade de certa linguagem ou framework carrega a filosofia do autor parece ser verdade. Ele mencionou Ruby e Matz.

Matz queria que a linguagem fosse simples para ler e escrever, e aumentasse a produtividade do programador. Os programadores de Ruby não parecem desenvolver um aplicativo rapidamente e com elegância?

Então o DHH e o Rails surgiram. E depois o Guido e o Python. Aí eu pensei: e o Rasmus?

Rasmus Lerdorf é uma figura interessante. Ele criou a versão original do PHP, continua a contribuir com ela, é vastamente considerado um semideus na comunidade e a autoridade em tudo o que diz respeito a PHP. Ele rouba a atenção de um grande número de pessoas nas conferências, é contratado por grandes lugares da internet e ganha o respeito de todos, apesar de uma propriedade ofuscante: Rasmus representa tudo que a maioria dos desenvolvedores “não-PHP” odeiam no PHP.

Ele geralmente promove a abstenção de uso de frameworks, e o uso do PHP como uma linguagem de template. Para ele, isso se traduz em velocidade pura e escalabilidade (no que diz respeito ao carregamento). Para todos os outros, isso se traduz em pilhas de código procedural macarrônico e projetos de manutenção impossível. Durante os 10 anos difíceis que se seguiram ao nascimento do PHP, em 1995, era dessa maneira que os projetos eram escritos.

Mas outro problema surgiu: durante seus anos adolescentes (antes do 5.0), o PHP ganhou sérios adeptos entre os novatos. A linguagem tem uma barreira de entrada muito baixa, então qualquer pessoa poderia começar em 2 minutos ao fazer o download de uma pilha AMP para Windows. Adicionalmente, a aceitação do paradigma MVC não tinha ainda acontecido no desenvolvimento web. O que você tem quando mistura n00bs com uma grande falta de práticas boas? Lixo insustentável. E foi isso que proliferou.

Não me entenda mal – existiam alguns desenvolvedores PHP muito bons por aí, mesmo naquele tempo. Mas como eu disse, n00bs não refinados estavam por aí. Quando desenvolvedores PHP sem escrúpulos se reuniam para construir um projeto, ele saía parecendo com PHPbb, PHPNuke ou alguma outra massa deformada de arquivos .php3. Mas podemos culpar unicamente os desenvolvedores PHP? Não! As outras grandes linguagens web, ASP e Perl, também eram nojentas e promoviam as mesmas práticas de código macarrônico.

Então por que o PHP ficou com a má reputação? Por causa do seu legado. A maioria dos desenvolvedores antigos de PHP que migrou para Python, Ruby, e Java não olhou para trás para ver que tipo de desenvolvimento aconteceu na linguagem desde a introdução do MVC na web. Além disso, existiam criticas extremamente sinceras como “o cara Ruby” Zed Shaw, reclamando de desenvolvedores com “o cérebro infectado com PHP”, e a distribuição de coisas como essa no RubyInside.

PHP era um gueto.

Mas o desenvolvimento de frameworks como Zend e CodeIgniter empurrou o desenvolvimento da linguagem para a direção certa. Na verdade, ela foi empurrada na direção oposta que o Rasmus gostaria. Dê uma olhada nos frameworks Zend e CodeIgniter e me diga se não são alguns dos códigos mais bem documentados e bem escritos que você já viu.

Quando a maioria dos desenvolvedores aprendeu o Ruby, eles estavam aprendendo Rails e MVC ao mesmo tempo. O PHP estava em uso por longos 10 anos antes disso. Então na verdade não existiu um período de tempo quando o hediondo Ruby estava sendo escrito por novatos. Existia um padrão já estabelecido para o Rails, e sua barreira de entrada era muito maior, mantendo, assim, desenvolvedores menos experientes do lado de fora.

O fato é que aplicações PHP podem ser tão bem escritas como aplicações em qualquer outra linguagem, e elas provavelmente têm a vantagem adicional da velocidade. O vasto uso do desenvolvimento no estilo MVC no mundo PHP é um fenômeno relativamente recente, e admito que podemos agradecer o Rails por isso.

Então o que o PHP tem a seu favor agora?

  1. Padrões (não universais, mas geralmente com uma pitada de MVC para a maioria dos projetos, e pouca porcaria procedural)
  2. Uma barreira de entrada muito baixa
  3. Velocidade & Escalabilidade (talvez os melhores entre linguagens baseadas em script)
  4. Um ótimo framework para unidades de teste
  5. Tem a melhor documentação que qualquer linguagem

Além disso, ela está por trás de alguns dos websites e ferramentas mais influentes de hoje, como Facebook, Digg, Wikipedia, WordPress, Drupal etc. Aposto que um entendimento sólido sobre o PHP pode abrir mais portas para um desenvolvedor do que qualquer outra linguagem.

Se você não concorda com o que eu disse acima, comente este post – eu gostaria de ouvir porque você não concorda.

Eu não sou fã do PHP – na verdade, eu sou bastante agnóstico no que diz respeito a linguagens. Eu escrevo mais em PHP porque, você adivinhou, as pessoas me pagam para isso. Tudo se resume a isto: se você é capaz de tomar decisões inteligentes no que diz respeito a design de softwares, o PHP é uma ótima escolha para construir sua aplicação.

Falando nisso, se eu te convenci a escrever sua nova aplicação web em PHP, dê uma olhada no CodeIgniter.

É um framework leve e super rápido para PHP. No que diz respeito ao CodeIgniter, sou fã.

  • Vote 1
Posted

Você esta correto em todas as sua palavras, eu também penso o mesmo a respeito.

PHP é uma linguagem "ruim" como diz algumas pessoas, devido a sua facilidade de aprendizado, mas acaba se tornando um ponto ruim.

Algumas pessoas iniciam suas atividades como desenvolvedor web pelo php devido a sua facilidade, e acabam se tornando programadores ruins, por preguiça ou falta de oportunidade. Código procedural é um problema enorme, e infelizmente acaba virando costume.

Sou programador PHP a um bom tempo, e tenho falta de certas documentações, como por exemplo padrões de projetos. Por exemplo, eu tive que ler um livro de JAVA para aplicar os conceitos em php.

Enfim, existem excelentes programadores em qualquer linguagem, assim como maus programadores também.

Posted

Relamente, a EllisLab já não está a desenvolver o CI, mas o mesmo esta no GitHub e em constante atualização. É um excelente framework!

Realmente o PHP amadureceu muito, e esta a fica cada vez melhor.

Posted

OP mostra um pouco de teu código noutra linguagem que nao seja PHP... se calhar nao passava em testes unitarios...

Nem imaginas o que evolve um programador que use PHP que tenha que passar o codigo por PHPUnit, TravisCI e Scrutinizer... experimenta passar o teu codigo por estas ferramentas LOL

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.