Discursos sobre PHP estão por toda parte, e eles vêm até mesmo de caras inteligentes. Quando Jeff Atwood escreveu outro sobre o PHP, isso me fez pensar sobre as partes boas dessa linguagem.
O maior problema desses discursos é que eles vêm de pessoas presas no passado do PHP. Ou eles não se importam ou não querem admitir que o PHP realmente evoluiu em um ritmo muito rápido, tanto no nível da linguagem, como no nível da comunidade. Na verdade, ele evolui muito mais rápido do que qualquer outra linguagem ou plataforma web. Nem sempre tem sido o caso, mas os últimos 5 anos têm sido uma jornada incrível para o PHP.
Antes de falar sobre as coisas incríveis que a comunidade PHP tem alcançado recentemente, vamos dar uma olhada em alguns números interessantes: o PHP é utilizado por 77,9% de todos os sites cuja linguagem de programação server-side é conhecida. O WordPress é usado por 16,6% de todos os sites do mundo. Se você der uma olhada nos três melhores CMS, para os sites que usam um sistema de gerenciamento de conteúdo monitorado: o WordPress é o primeiro com 54,3%, o Joomla é o segundo com 9,2%, e o Drupal é o terceiro com 6,8%. Três produtos escrito em PHP.
PHP deve ter feito algo direito, não?
Agora, deixa eu te contar um segredo sobre o PHP: apesar das mudanças ao longo dos anos, o PHP ainda é a linguagem mais fácil para pessoas não-técnicas aprenderem: permite a qualquer um criar sites dinâmicos mais rapidamente do que com quaisquer outras tecnologias, permite também hospedar sites de forma barata e sem aborrecimentos. O PHP provavelmente não é a melhor linguagem projetada no mundo, mas permite que você faça as coisas, e contra isso você não pode argumentar.
PHP, a linguagem
O PHP 5.0(lançado em 2004) nos trouxe um modelo de objeto muito sólido… Espere um pouco, eu estou falando de algo lançado há quase oito anos. Vamos avançar um pouco no tempo. A versão mais recente do PHP, o PHP 5.4, vem com todos os recursos com os quais você poderia sonhar em uma linguagem web moderna: sim, PHP suporta namespaces; sim, PHP suporta closures; e sim,PHP suporta traits.
Levou algum tempo, mas o PHP5,4 também vem com uma agradável sintaxe que torna toda a experiência melhor do que nunca: sim, o PHP suporta [] para definir arrays; sim, o PHP suporta chamar um método em um objeto recém-criado ((new Foo()) -> bar ()); sim,o PHP suporta obter um item do array de qualquer expressão($ foo-> bar () [1]).
O PHP até mesmo aprendeu com seus erros: register_globals e magic_quotes estão definitivamente fora.
Por último, mas não menos importante, o PHP ainda vem comum servidor web embutido que facilita testes locais… e ele começa em uma questão de micro-segundos.
Próximos desafios: Como é que a gente faz “upgrade”de todos os tutoriais antigos que falam sobre PHP na web? Qual é a melhor maneira dar suporte para a tecnologia WebSocket em um aplicativo PHP?
PHP, o ecossistema
Ter uma boa linguagem é ótimo, mas ter um grande ecossistema é ainda melhor.E o ecossistema PHP evoluiu muito nos últimos anos.
Git
Não vou falar muito sobre ele. O Git está em toda parte, e o PHP o adotou rapidamente. Quase todas as grandes bibliotecas PHP, frameworks e quase todos os produtos agora estão usando Git, incluindo o próprio PHP.
Composer
Dois anos atrás, eu queria me livrar do PEAR-hack horrível que fiz em symfony para suportar plugins. Eu queria substituí-lo por algo que fosse capaz de gerenciar dependências do projeto, não um instalador global como PEAR. Gerenciar dependências não é uma tarefa fácil, então tentei encontrar o melhor algoritmo para gerenciar as dependências de software; eu tinha um olhar para tudo: de Perl para Ruby,de Debian para Redhat. Nada foi satisfatório: apenas soluções caseiras que parecem funcionar… empiricamente. Então, me deparei com ZYpp. E foi isso. ZYpp usa um gerenciador SAT para gerenciar dependências. Avançando um pouco no tempo… Graças ao trabalho duro de Nils Adermann e Jordi Boggiano, o PHP possui agora um dos melhores gerenciadores de dependência, o Composer.
Sim, o PHP possui um gerenciador de dependência melhor do que quaisquer outras línguas.
E graças a Git, Composer e servidor web embutido do PHP, nunca foi tão fácil fazer o download/instalação/teste de um projeto PHP.
Quer testar Symfony (usandoPHP5.4)?
$ composer.phar create-project symfony/framework-standard-edition $ cd framework-standard-edition $ ./app/console server:run
Quer testar Silex?
$ composer.phar create-project fabpot/silex-skeleton $ cd silex-skeleton $ php -S localhost:8888 -t web/
Não conhece o Composer ainda?Você deveria aprender sobre ele. Pesquise sobre o Packagist, o repositório principal do Composer: ele já possui mais de 1900 pacotes disponíveis, e eles foram instalados mais de um milhão de vezes em menos de três meses.
Próximo desafio: incluir o instalador do Composer na próxima versão do PHP?
Colaboração
A colaboração da comunidade é o ponto mais importante deste artigo, do qual estou bem orgulhoso. Começamos a ver uma colaboração melhor entre projetos PHP, até mesmo dos muito grandes, aqueles que você pensaria que são grandes o suficiente para não se preocuparem com os outros.
phpBB, Drupal, eZPublish, Symfony e muitos outros (phpDocumentor, PHPUnit, Behat, Zikula, Propel, Doctrine, Midgard, …) estão compartilhando código. Sim, eles são”concorrentes”, mas todos entenderam que a adaptação de um ambiente para outro era uma coisa boa. E o Composer é um bom elemento.
Próximo desafio: convencer ainda mais projetos a aderirem a essa tendência.
Conclusão
Me deixa falar de novo: o PHP provavelmente não é a melhor linguagem que existe por aí, e eu sou o primeiro a exaltar suas peculiaridades, mas o PHP é a melhor plataforma web… de todos os tempos.
***
Texto original disponível em http://fabien.potencier.org/article/64/php-is-much-better-than-what-you-think