Há um bom tempo atrás rolou uma discussão na lista do PHPMS sobre um comparativo de performance entre PHP x Python x Ruby x Perl.
Bom, a conclusão que tirei do comparativo foi de que a velocidade de execução é importante, mas mais do que isso, o programador é essencial. No exemplo da thread supracitada, o PHP perdia feio para as outras linguagens, mas olhando para o código escrito em PHP, dava para notar vários erros de uso da linguagem e suas funções (ponto para o Begnini que viu o código antes de todos).
Então a dica de hoje é: estude bem a linguagem. Procure a saber o funcionamento das funções e construções da linguagem, isso é essencial para se tornar um bom programador.
Exemplos de código
//uso comum
for($i = 0; count($var) < 0; $i++)
...
//forma mais adequada
for($i = 0, $c = count($var); $c < 0; ++$i)
...
//outro caso, ao invés de forçar várias verificações
if( $a > 100 )
...
if( $a < 100 )
...
if( $a == 100 )
//use a estrutura adequada
if( $a > 100 )
...
else if( $a < 100 )
...
else //não precisa fazer o último teste
...
// esse último caso que me inspirou a fazer o post
// a pessoa só queria saber se o array $var tava vazio, e para isso contou todos os seus elementos
if ( count($var) > 0 )
...
// enquanto ela poderia ter usado uma verificação direta como
if ( !empty($var) )
Este último caso, que motivou o post foi visto no changelog da versão 1.2.6 do CakePHP. Neste caso o “erro” foi encontrado e corrigido pelo brasileiro Juan Basso neste commit.
O intuito do post não é meter o dedo na cara de ninguém, apenas alertar para situações onde culpamos uma determinada linguagem pelo desempenho de nossa aplicação quando o problema na verdade é o mal uso que estamos fazendo.