| Admito que o conceito das classes na PHP é limitado quando comparado com as possibilidades de outras linguagens, como por exemplo Java ou C++. Mas o ponto é que isso não impediu quase 2 centenas de programadores de contribuir com tantas classes de objectos em PHP, muitas delas sendo mesmo brilhantes. Acho que só quem usa é que pode apreciar. Por outro lado, não entendi a relação de ser ou não ser compilado e ter ou não ter referências, com a programação por objectos. Talvez seja bom esclarecer que desde o PHP 4 que através do mecanismo Zend, o PHP compila o código antes de executar. Existe ainda um optimizador opcional que é gratuito, várias alternativas de cache que permitem carregar o código já compilado em memória para não o ter de recompilar em cada acesso e ainda um codificador que grava o código compilado e optimizado num ficheiro que pode ser distribuído. Outro facto é que desde o PHP 3 (que já quase ninguém usa) é suportada a passagem de parâmetros por referência. No PHP 4 foi adicionada a capacidade de atribuir a uma variável uma referência para o valor armazenado por outra. De qualquer modo, não me parece que compilação e uso de referências tenha a ver com programação por objectos. Acho que está a forçar que sejam realçadas as diferenças entre PHP e Java com características que não têem necessariamente a ver com programação por objectos. Por exemplo, que eu me lembre, o C++ não tem (ou não tinha) a possibilidade de definição de multiplos interfaces, nem o Java oferece suporte a herança múltipla, mas isso não torna essas linguagens menos adequadas a programação por objectos, tal como PHP. Agora a possibilidade de definição de classes de objectos em PHP é precisamente uma das capacidades que a tornam muito superior a ASP, porque se não haveriam (mas não existem) repositórios de classes de ASP como este de PHP que (note-se) foi desenvolvido há quase 3 anos. Portanto as capacidades de de programação por objectos PHP já são muito antigas. Só para ter uma ideia, um outro projecto pessoal, uma meta-linguagem que transforma código escrito em XML em potencialmente qualquer linguagem (PHP, Java e Perl já são suportadas), consiste num compilador completamente escrito em PHP com mais de 20.000 linhas de código distribuido por dezenas de classes de programação por objectos. Se a PHP não tivesse capacidade de programação por objectos, este compilador não teria sido possível. |