Por que usar PHP?

Artigo que cita algumas características da linguagem PHP que justificam sua utilização.

PHP for life

Bom, estive pensando: por que uso PHP? Conheci a linguagem depois de ver um pouco de Perl e logo me identifiquei. Aos poucos fui percebendo que ela era muito mais fantástica do que imaginava. Fazia muitas "mágicas" para os programadores. Eu destaco algumas coisas:

  • Consistência;
  • Variáveis/Atributos variáveis;
  • Funções/Métodos variáveis;
  • Existência de função "eval";
  • Métodos mágicos e interfaces para sobrescrever comportamentos nativos da linguagem;
  • Habilidade de conversão de valores entre tipos diferentes;

A consistência que me refiro é a previsibilidade que tenho ao programar. Uma das linguagens que mais me dá dor de cabeça é JavaScript, que cada navegador implementa de um jeito. PHP tem alguns poucos pontos que diferem de S.O. para S.O.

Variáveis, Atributos, Funções e Métodos acessados com variáveis é uma das coisas mais interessantes que percebo. O poder de criar uma classe a partir do valor armazenado em uma string é algo ótimo para ser fazer um framework. Em todo caso, avalio como um recurso perigoso nas camadas mais alto nível da aplicação (desde questões de segurança, até a legibilidade de código).

A função "eval" está na mesma situação. Ela permite executar um techo de código PHP armazenado em uma string. Ele é bem perigoso também, mas pode oferecer alguns benefícios para performance ou redução da quantidade de código.

Os métodos mágicos e interfaces que sobrescrevem comportamentos nativos (como a interface Iterator ou ArrayAccess) são muito úteis para criar classes genéricas. Por um lado, prejudica a legibilidade/documentação, por outro, ajuda bem em camadas baixo nível onde ninguém precisa por a mão.

Bom, a habilidade de trabalhar com tipos diferentes é algo muito bom, especialmente para trabalhar com Web, que recebe tudo na forma de texto dos formulários HTML. Eu tenho dificuldade pra entender por que usar uma linguagem fortemente tipada para uma aplicação Web. O dado vem na forma de string da interface Web e vai na forma de string pro BD. Então por que precisamos guardar a porcaria do dado em um atributo inteiro? Não bastaria métodos de conversão de PHP pra BD e de BD pra PHP? Quando precisar fazer conta, converta para inteiro ou flot, ou use string com BC.

É, tem muitas outras coisas interessantes, mas que é complicado colocar num post assim. Alguns desejos que tenho sobre a linguagem são:

  • Suporte a desalocação de classes e funções;
  • Sobrecarga de operadores;
  • Suporte a Unicode (estão trabalhando para isso no PHP 6);
  • etc.

1 comentário