Ao discutir idiomas, essas duas citações de Stroustrup sempre lembram :
Quem vem até você e diz que tem uma linguagem perfeita é ingênuo ou é vendedor.
e
Existem apenas dois tipos de idiomas: os que as pessoas reclamam e os que ninguém usa.
Agora para a pergunta em questão. A maior parte do ódio é principalmente dirigida ao PHP4. O PHP5 foi lançado pela primeira vez em julho de 2004 (beta um ano antes) e a última versão do PHP4 é a 4.4.9 lançada em agosto de 2008 . Não há mais razão válida para usar o PHP4, a menos que você mantenha algum aplicativo herdado. O PHP4 não é mais suportado pelo grupo PHP, e todos esperamos que desapareça em breve.
A diferença entre as duas versões é maior do que costuma ser entre duas versões principais, pois o mecanismo por trás do intérprete foi reescrito do zero e incluiu um novo modelo de objeto. O lançamento do PHP5 coincidiu aproximadamente com o lançamento do MySQL5, uma grande revisão do MySQL. O PHP geralmente é acoplado ao MySQL e a quinta versão de ambos tratou de vários problemas e os atualizou com a concorrência. O MySQL também está sujeito a comentários do FUD , mas, bem, é o banco de dados por trás do Google AdWords .
O PHP 5.3 foi uma versão importante em tudo, menos no nome. Muitos recursos destinados ao PHP6 foram encontrados na versão 5.3 e para todos os desenvolvedores da versão 5.2, recomendo fortemente que migrem para a versão 5.3+ mais cedo ou mais tarde. A versão atual, 5.4, inclui alguns recursos impressionantes (entre outros):
Agora, para seus comentários específicos:
PHP é bom, mas gera código espaguete
Isso absolutamente não é verdade. Nenhuma linguagem gera qualquer tipo de código, é sempre responsabilidade do desenvolvedor estragar, o código espaguete é possível em todas as línguas existentes. O que é verdade, porém, é que o PHP tem uma barreira de entrada muito baixa em comparação com outras linguagens populares; portanto, é muito mais fácil para desenvolvedores inexperientes escreverem código ruim (mas funcionando). Mas esse é um efeito colateral de todo idioma fácil de aprender.
Além disso, o PHP não impõe nenhum estilo ou paradigma específico, e sempre depende de você decidir o que fazer. Eu sempre pensei nisso como uma coisa boa, enquanto outros a veem como um ponto válido de crítica. Você terá que decidir por si mesmo.
PHP é legal, mas Python é material de casamento
O PHP não possui material que você obtém em outros idiomas como C # ou JAVA
Sim. E a linguagem de uso geral X não possui muitas coisas que você obtém no PHP. Como ser portátil em sistemas operacionais E servidores http e suporte para todas as bibliotecas imagináveis de terceiros que seriam úteis em um ambiente de desenvolvimento da web. Você precisa entender que o PHP não falta nada importante , se isso acontecesse, teria morrido há muito tempo. A comparação entre a linguagem de uso geral X e outras linguagens de uso múltiplo com PHP é uma falácia, maçãs e laranjas. Embora o PHP ofereça algumas facilidades para apoiar a ideia de que é de uso geral, não é, é uma linguagem da web.
Você deve ter em mente que o caminho evolutivo do PHP é bem diferente da linguagem de uso geral X : o PHP cresceu e evoluiu, ele não foi projetado. Toda vez que um recurso é adicionado ao idioma está fora da necessidade real, não de acordo com algum ideal imaginário do que um idioma deveria ser. Os idiomas são a primeira e principal ferramenta, e o PHP é perfeito como tal.
Não tenho nada contra a linguagem de uso geral X , sou a favor de escolher a ferramenta certa para o trabalho. Sempre misturei e combinei, e também estou codificando em Java e Python, às vezes em paralelo com PHP. Mas o PHP é o único com quem eu consideraria me casar. :)
Se você está pensando em começar com o PHP, é claro que deve começar com a versão estável mais recente, como faria em qualquer outro idioma.