O desafio da escolha: soluções para aplicações WEB
(por Ricardo Mauro Quati)
Sumário: Um dos grandes desafios para as empresas que se propõem a oferecer
em seus sites algo mais do que a simples "presença na web" é como dispor
visões de seus dados e interagir com seus potenciais clientes pela World Wide
Web. Neste panorama, uma das primeiras escolhas que vêm à mente dos arquitetos
de sistemas é: qual tecnologia utilizaremos para isso?
Índice: Projeto e desenvolvimento de aplicações WEB utilizando-se de JSP,
PHP ou ASP.
1. INTRODUÇÃO
Apesar de existirem dezenas de soluções práticas para a tarefa de construir
aplicações WEB, três delas têm se destacado, e garantindo seu quinhão no
disputado mercado de aplicações servidoras. São elas o ASP, o JSP e o PHP.
O que estas soluções possibilitam, de forma simplificada, é o tratamento
das requisições de página de um servidor WEB, permitindo que se adicione
conteúdo dinâmico à resposta enviada aos clientes (browsers) através da
utilização de scripts (aplicações).
Todas elas têm em comum a implementação dos recursos mínimos esperados
neste porte de solução, como controle de sessões, módulos para acesso a bancos
de dados variados, tratamento de formulários e do fluxo requisição/retorno de
páginas; todavia, existem diferenças significativas entre elas que podem levar
projetistas de sistemas a se decidirem por uma ou outra.
PHP
O PHP (HyperText Processor) é uma linguagem desenvolvida a partir de um
projeto pessoal de Rasmus Ledorf, inicialmente como uma pequena linguagem de
Script para adicionar alguma lógica ao processamento de formulários de seu
site. De 1994 para cá, tem estado em constante evolução e conquistado um
espaço significativo no mercado, com grande penetração em ambientes Unix.
Colaboram para sua disseminação neste ambiente a proximidade de sua sintaxe
com a da linguagem C - a língua mãe do Unix e suas intermináveis variações, e
o fato de ser distribuído gratuitamente como Open Source, ou seja, com código
aberto. Some-se a isso uma curva de aprendizado pouco íngreme, uma excelente
performance e o acesso nativo a um dos bancos de dados mais populares em sites
WEB, o MySql (também gratuito), e torna-se fácil entender a razão deste
sucesso.
O PHP tem, porém, algumas características que o inviabilizam tecnicamente
para projetos muito grandes, onde seu uso torna o projeto dispendioso quando
da manutenção. Ambas são herança de sua concepção despretensiosa, e
transformam em dificuldade o que para aplicações de pequena e média
complexidade são vantagens relativas.
A primeira delas é a fraquíssima implementação da orientação a objetos;
isto torna inaplicáveis boa parte dos recursos atuais de projeto e
desenvolvimento, dificultando o reaproveitamento de código e a manutenção das
aplicações.
A outra, bem mais evidente, é o fato da lógica misturar-se à camada de
apresentação, o que torna confusa a leitura dos módulos de um sistema. Os
scripts PHP são executados em meio ao código HTML da apresentação, o que torna
qualquer trabalho de manutenção ou reaproveitamento- tanto pelos dos
desenvolvedores como pelos webdesigners - extremamente delicado.
Ainda assim, é uma alternativa rápida, barata e confiável, disponível em
várias plataformas, inclusive Microsoft/Intel, e pode ser uma solução
interessante para aplicações de pequeno a médio porte, integrando-se a vários
servidores WEB (do IIS ao Apache) e acessando uma grande variedade de bancos
de dados. O conjunto Linux/Apache/PHP/MySql é um dos mais tradicionais entre
os sites que disponibilizam conteúdo dinâmico, em um leque de usos que abrange
da interação com sistemas legados a serviços de webmail e gerenciadores de
portais.
ASP
O ASP (Active Server Pages) é a solução Microsoft para proporcionar aos
usuários de seu ambiente (notadamente o conjunto Microsoft Internet
Information Server /IIS, Microsoft SQL Server e Microsoft Windows NT/2000
Server) a geração de páginas WEB de conteúdo dinâmico, e tem forte apelo
comercial para os que adotaram o "mundo" Microsoft por inteiro - leia-se
sistema operacional, servidores WEB e de banco de dados.
Mantendo a tradição Microsoft e validando o compromisso desta com seus
consumidores fiéis, o ASP baseia-se na linguagem Basic (no caso, o Visual
Basic) para a confecção dos Scripts; existe a opção do _javascript_, mas esta é
pouco considerada pelos profissionais ASP. A grande maioria, oriundos do
Visual Basic, opta por este. O acesso à bancos de dados é, também, bastante
variado, graças ao uso do ODBC e do ADO, ambas tecnologias Microsoft aplicadas
e suportadas globalmente. Utilizando-se outros produtos do portfolio da
Microsoft, pode-se construir aplicações realmente complexas e integradas a
partir do ASP.
Não pode-se classificar o aprendizado de ASP como difícil, embora o contato
com a linguagem Basic ajude bastante neste quesito. A abundante oferta de
mão-de-obra formada neste ambiente facilita em muito a decisão pelo ASP em
empresas que investiram em soluções Microsoft.
Assim como o PHP, o ASP sofre com o acoplamento apresentação x lógica; o
que a princípio torna fácil o seu aprendizado acaba por tornar-se um empecilho
em projetos de maior porte, dificultando as tarefas de desenvolvedores e
webdesigners. As características de orientação a objetos são, como no PHP,
tímidas perto do JSP.
Pode-se pensar no ASP como a solução ideal para pequenos e médios projetos
em ambientes Microsoft, onde a "cultura" desta seja bem difundida. Por ser uma
tecnologia proprietária, o ASP não atrai desenvolvedores adeptos do mundo Open
Source; quanto à sua performance e segurança, repete-se aqui a já histórica e
inflamada discussão "Unix" vs "Windows". Para grandes projetos, a Microsoft
ainda está devendo uma solução à altura, cenário que talvez se modifique com o
".Net".
JSP
Temos no JSP - Java Server Pages - a resposta da Sun, criadora da
tecnologia Java, às necessidades dos desenvolvedores de aplicações WEB. O
principal mercado almejado pela Sun é o mesmo da Microsoft com seu ASP - o das
grandes corporações, dos projetos mais complexos onde são aplicadas técnicas
modernas de projeto, desenvolvimento e manutenção. Diferentemente do ASP, e
sem chegar a concorrer diretamente com o PHP, o JSP nasce com atributos
suficientes para a missão a que se propõe: orientação a objetos nativa e
forte, desacoplamento entre código e apresentação, e o que se chama no meio
servidor de "robustez industrial" - a grosso modo, a solidez procurada para
aplicações de missão crítica, característica esta herdada do ambiente
Java.
A curva de aprendizado do JSP não pode ser considerada suave, como a
apresentada pelo PHP ou pelo ASP. Apenas os desenvolvedores bastante
habituados com Java, e que tenham a orientação a objetos como um paradigma
natural em suas cabeças, não sentirão o impacto da troca de um ambiente
procedural e o desenvolvimento de aplicações em camadas.
O JSP apresenta-se como uma solução profissional, e pode ser considerado o
futuro das aplicações WEB: desacopla com facilidade a apresentação da lógica,
permite a compilação em tempo real das aplicações (uma vez executado o script
pela primeira vez, uma versão compilada se apresenta às requisições seguintes)
e integra-se à perfeição no mundo Java. Como este, possibilita acesso a
diversos bancos de dados (através de JDBC), é executado em inúmeros sistemas
operacionais (virtualmente, o que possuir uma máquina virtual Java) e vem se
tornando a opção de fato para o milionário mercado de servidores (gigantes
como IBM, Netscape e Oracle têm investido neste nicho suportando JSP), além de
possuir alternativas gratuitas ou Open Source como o projeto
Jakarta/Tomcat.
A penetração do JSP só não é maior devido ao conjunto de conhecimentos
exigidos para que se tire proveito de seus melhores atributos: o entendimento
do paradigma da orientação a objetos e a fantástica extensão de sua linguagem
nativa, o Java. Isto posto, o JSP é uma aposta sem margem de erro, e não
encontra concorrentes quando se pensa em aplicações críticas em ambientes
corporativos.
2. COMPARATIVO
ASPECTO JSP PHP ASP
Curva de Aprendizado Aguda
Suave Suave
Código fonte Aberto Aberto Proprietário
Linguagem Nativa Java Própria, grande semelhança com C ansi. Visual Basic e
_javascript_
Drivers para Bancos de Dados JDBC e ODBC Nativos, modulares ou ODBC
ODBC/ADO
Porte típico dos projetos Médios a Grandes
Pequenos a Médios Pequenos a Médios
Ambiente típico Java Unix Microsoft
3. CONCLUSÃO
Não há como apontar uma solução ideal para todas as necessidades de
aplicações WEB. Via de regra, no momento da decisão, vale muito mais o
ambiente que dará suporte a estas aplicações, o perfil dos profissionais que
se dispõe para desenvolve-las e as diretrizes do planejamento estratégico para
a área de Tecnologia da Informação do interessado, do que qualquer tentativa
de formular uma "regra universal" para esta escolha. Usando-se bom senso,
provavelmente uma das três alternativas aqui discutidas deve preencher os
requisitos de sua aplicação; todas as três são soluções maduras e largamente
disponíveis e suportadas, minimizando os riscos de um erro de escolha. Nesta
hora, uma análise do "market share" das soluções pode até influenciar, mas é o
conjunto dos fatores descritos acima que acabará ditando a escolha por uma ou
outra.