PHP, Java or ASP?

Você pode ler este post em português também.

Recently a friend asked me about PHP. What you will read here is the reply that I sent to him.

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Each language has its good and bad sides. It depends of “where” you will use them, and ’cause this I make the comparison as web developer. And I will do it comparing the ASP (not ASP.NET), PHP and Java languages.

The factors that I use to make a choice of a language are:

  • Typing (weak, strong or dynamic. The most common is the requirement to declare a variable / type to use it);
  • Portability (how it can run in heterogeneous environments);
  • Scalability (how difficult is to increase / improve the environment for running the application);
  • Development tools (What exists to improve the development experience);
  • Readability (the learning curve of its syntax);
  • OOP compliance (as provided by the OO pattern);
  • Bureaucracy (How much you’re MUST to follow to use it).

Based on the topics above:

  1. Typing: PHP and ASP have weak typing. Java has strong typing. PHP/ASP therefore tends to give more freedom to develop. Java to be more orthodox, it’s more organized. As I prefer the freedom, point to the PHP and ASP.
  2. Portability: Point to PHP. For web applications, it supports more environments than Java. And if none of available binaries work for you, you can download the source code of PHP and recompile it on the freak environment that you’re building. ASP here, joke.
  3. Scalability: Here, less is more. Less work to scale an application, turns it to be better to scale. Ignoring the design pattern factors that should be followed to allow rise the environment, I think that PHP is the best. Unfortunately I have no facts to prove it. So, point to the three languages.
  4. Development tools: Point to PHP. This language has almost everything that you can imagine to help or give base for development: the Internet there are giants repositories of projects/classes/functions where you can get almost everything for not to start from scratch.
  5. Readability: Point to PHP. As a language with weak typing and low bureaucracy, the learning curve of the language is very low. There are several kits on the Internet ready to start developing, and indeed, many of them don’t need to be installed (running directly from a pendrive, by example). ASP in the second, and because of its complexity/bureaucracy, Java last.
  6. OO compliance: Point to Java, with PHP closest to him (especially after the new version 5.3, which support namespaces and other cool things). And yes, PHP is OO (1). ASP isn’t. Just to compare, namespaces are like packages in Java.
  7. Bureaucracy: Point to PHP. Mainly due to the items 1), 5) and 6). I say that PHP is like Delphi, which provides many OO resources, but without forcing you to use them. Java is highly bureaucratic. Search for examples on Google and you will see that the difference is obvious.

This is an excellent theme for a bar table. There are several other factors, like as maintainability, robustness, reuse, development speed. But is subject for another post.

Adding the score:
a) PHP = 6 points;
a) ASP = 2 points;
a) Java = 2 points.

Done. PHP is better. I swear that I tried to be impartial.

😉

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

References:

(1) – OOP manual at PHP site.

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.