Há alguns dias um experiente analista de sistemas me perguntou, sobre um projeto de software do qual participei ano passado, o que eu achava do sistema ser todo migrado de PHP para Java. O que resultou foi uma interessante conversa. Eis o resumo:
1) Há grande quantidade de desenvolvedores Java e PHP no mercado. Ao contrário de outras linguagens, não haverá problema de encontrar quem mantenha o sistema uma vez colocado em producão.
2) Os desenvolvedores Java serão inevitavelmente mais caros. Isso não significa que a linguagem Java seja melhor que PHP ou que os desenvolvedores de uma sejam superiores. Acontece que Java é uma linguagem mais “burocrática” que o PHP. Estudar Java normalmente requer uma curva de aprendizagem mais aguda que PHP, e custa caro formar um programador Java. Já o PHP é uma tecnologia aberta cujo aprendizado pode se dar através da enorme comunidade online. Há centenas de fóruns, grupos de discussão, tutoriais e amplo material grátis sobre PHP.
3) Quando o sistema se torna grande o PHP exigirá maior disciplina dos desenvolvedores para se manter coeso. A própria linguagem PHP foi sendo criada conforme a necessidade dos programadores, sem muito planejamento. O resultado? Milhares de funcões dentro do core da linguagem em vez de organizadas em módulos, inconsistências na ordem de parâmetros, incompatibilidades entre versões(tome a camada OCI Oracle da versão 4 e 5 PHP por exemplo), e muitos outros problemas da falta de planejamento do PHP. Já a tecnologia Java obriga o programador a seguir um padrão bastante coeso e padronizado desde o início do projeto. Acontece que essa “burocracia” do Java faz dela uma linguagem meio desajeitada para fazer scripts rápidos. O problema é a velha e sempre atualizada lei do software: todo software quebra-galho que funciona com eficiencia se torna permanente e tende a crescer desorganizadamente. Por isso Perl e PHP tendem a tomar uma fama negativa, porém é preciso ressaltar que não se trata de um problema da linguagem e sim da tendência dos programadores de serem desorganizados por natureza.
4) A linguagem Java é um padrão aberto, democrático e tem diversas implementacões abertas de ferramentas e servidores de aplicativos. Portanto é basicamente equivalente ao PHP em termos de abertura. Acontece que Java é uma marca registrada de uma empresa privada, porém isso tem se mostrado menos e menos relevante conforme a tecnologia se torna um padrão internacional. A Sun hoje não tem controle de muita coisa exceto a distribuicão dos compiladores oficiais(e existem alternativas independentes caso a Sun passe a cobrar por eles) e, claro, a marca registrada “Java”.
5) Desenvolver em Java é muito mais lento que em PHP.
6) Java é compilada, PHP é interpretada. Para vender um produto em PHP você normalmente envia o código-fonte junto. Existem compiladores PHP mas são produtos comerciais e trazem alguns problemas de compatibilidade e estabilidade. Há cerca de um ano testei alguns produtos do tipo e não me convencí em colocar em producão.
Conclusão – use Perl!