PHP, Java ou ASP?

You can see this post in english too.

Recentemente, um amigo me questionou sobre o PHP. O que lerá aqui é a resposta que enviei a ele.

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Cada linguagem tem seu lado bom e ruim. Tudo depende do “praquê” a utilizaremos, por isso realizarei a comparação como desenvovedor de aplicações para a WEB. E farei isso comparando as linguagens ASP (não ASP.NET), PHP e Java.

Os fatores que costumo levar em conta para utilizar uma linguagem são:

  • Tipagem (fraca, forte ou dinâmica. O exemplo mais comum é a obrigatoriedade de declarar uma variável/tipo para poder usá-la);
  • Portabilidade (capacidade de execução em ambientes heterogêneos);
  • Escalabilidade (o quão difícil é aumentar/melhorar o ambiente de execução da aplicação);
  • Ferramentas de desenvolvimento (o que existe para melhorar a experiência de desenvolvimento);
  • Legibilidade (a curva de aprendizado de sua sintaxe);
  • Adequação à OO (quanto de OO ela disponibiliza);
  • Burocracia (Quantas coisas você é OBRIGADO a seguir para utilizá-la).

Com base nos tópicos acima:

  1. Tipagem: PHP e ASP possuem tipagem fraca. O Java possui tipagem forte. PHP/ASP por isso tende a dar mais liberdade ao desenvolvimento. Java por ser mais ortodoxo, é mais organizado. Como prefiro a liberdade, ponto para o PHP e para o ASP.
  2. Portabilidade: Ponto para o PHP. Para aplicações web, ele é acoplável a mais ambientes que o Java. E se nenhum binário disponível te servir, baixe o código-fonte do PHP, e recompile-o no ambiente esdrúxulo que estiver montando. ASP aqui, piada.
  3. Escalabilidade: Aqui, menos é mais. Quanto menor o trabalho para escalar uma aplicação, melhor ela será. Desconsiderando os fatores de padrão de projeto que devem ser seguidos para permitir um escalonamento, acho que o PHP é o que escalona melhor. Mas isso é achismo, infelizmente não tenho fatos para comprovar isso. Por isso, ponto para os três.
  4. Ferramentas de desenvolvimento: Ponto para o PHP. Esta linguagem tem quase tudo que você consiga imaginar para auxiliar ou dar base para seu desenvolvimento: na Internet há repositórios de projetos/classes/funções gigantes de onde você pode tirar de praticamente tudo para não começar do zero.
  5. Legibilidade: Ponto para o PHP. Por ser uma linguagem de tipagem fraca e de baixa burocracia, a curva de aprendizado da linguagem é muito baixa. Existem na Internet vários kits prontos para começar a desenvolver, e inclusive, muitos deles não precisam nem ser instaláveis (podem ser executados num pendrive, por exemplo). ASP em segundo, e devido sua complexidade/burocracia, Java por último.
  6. Adequação à OO: Ponto para o Java. PHP a segue muito de perto (principalmente depois da nova versão 5.3, que suporta namespaces e outras coisas mais). PHP é sim OO (1). O ASP não é. Só para comparar, namespaces são como os packages do Java.
  7. Burocracia: Ponto para o PHP. Principalmente devido os itens 1), 5) e 6). Costumo dizer que PHP é como o Delphi, que disponibilizava muitos recursos de OO mas não te obrigava a usar. Java já é altamente burocrático neste ponto. Pesquise por exemplos no Google e verá que a diferença é clara.

Este é um excelente tema para uma mesa de bar. Existem vários outros fatores a levar em conta, como manutenibilidade, robustez, reuso, velocidade de desenvolvimento. Mas fica para outro post.

Somando os pontos:
a) PHP = 6 pontos;
a) ASP = 2 pontos;
a) Java = 2 pontos.

Pronto, o PHP é melhor. Juro que tentei ser imparcial.

😉

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

Referências:

(1) – Manual de POO no website do PHP.

About Adriano Laranjeira

Software engineer & developer See more at http://about.me/arglbr
This entry was posted in Português and tagged . Bookmark the permalink.

1 Response to PHP, Java ou ASP?

  1. Pingback: Adriano Laranjeira » Blog Archive » PHP, Java or ASP?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s