DClick

Ajax e Flex


Debates sobre qual é a melhor tecnologia são comuns. Alguns destes debates são debates genuínos, outros, um tanto dissimulados. Em outras palavras, é preciso tomar cuidado para não comparar laranjas com bananas: ambas são frutas, porém, a primeira é rica em vitamina C e a segunda em potássio. Mas o problema é que em tecnologia as comparações são bem complicadas.

Uma discussão recente no mundo virtual envolve o Flex e o Ajax. Ambas são tecnologias para desenvolver Rich Internet Applications. Mas será mesmo que podemos compará-las a ponto de afirmar qual é a melhor?

Este texto complementa e é complementado pelo do Fábio Terracini publicado no CF Gigolô, e é fruto de uma troca de idéias que tivemos recentemente.

A Explosão do Ajax

Em 2001, quando a Macromedia (agora Adobe) usou pela primeira vez o termo Rich Internet Application (RIA), o Flash era a melhor, senão a única, ferramenta para o desenvolvimento das RIAs. O seu IDE, nada familiar aos programadores, foi provavelmente o grande responsável pelo fato dele não ter tido uma aceitação massiva por parte do público de TI. A resposta veio alguns anos mais tarde com o lançamento Macromedia Flex, que oferece a este público uma maneira padronizada para o desenvolvimento de Aplicativos Ricos para a Flash Platform. Porém, embora o Flex tenha alcançado um sucesso significativo, é o Ajax que vem chamando atenção nos últimos tempos.

Uma possível explicação para o sucesso do Ajax é o fato dele ser uma boa solução Open Source. Não estou dizendo que o sucesso do Ajax se deve exclusivamente ao fato dele ser gratuito. Estou simplesmente dizendo que o Ajax ganhou o mundo por ser uma boa tecnologia Open Source. Uma rápida pesquisa no Google é capaz de mostrar que o “Ajax pago” faz menos sucesso que o Flex, e que o Flex faz menos sucesso que o “Ajax free”. Em outras palavras, é o “Ajax free” e não o “Ajax pago” que faz mais sucesso que o Flex.

Enfim, o Ajax é o nome do momento porque em tempos de internet boas soluções Open Source tem o poder de provocar esta reação em cadeia que se auto-regula e se auto-desenvolve - talvez devido ao fato da própria rede crescer dentro desta filosofia.

Porém, tecnicamente, seria o Ajax de fato melhor que o Flex?

Disputa Dissimulada

Só podemos dizer se uma tecnologia é melhor que a outra se ambas se destinarem ao mesmo objetivo. Neste caso é dito que ambas são tecnologias para o desenvolvimento de Rich Internet Applications. Mas o que são realmente as Rich Internet Applications?

A Adobe define Rich Internet Application como àquele aplicativo que apresenta o melhor do Desktop e o melhor da Web. O melhor do Desktop, neste caso, é a sua interface responsiva e intuitiva. O melhor da Internet é o seu alcance, que nos permite disponibilizar facilmente um aplicativo para qualquer um em qualquer parte do mundo. Desta forma, segundo a definição da Adobe, um aplicativo na Internet cuja interface se resume à um conjunto páginas com poucos recursos de interação não deveria ser considerado rico.

O problema com esta definição é que ela ainda é um tanto vaga. O termo rico carrega consigo uma forte conotação subjetiva. Tomemos o GMail como exemplo. Seria o GMail uma Rich Internet Application? Se sim, em que sentido ele nos oferece o melhor do desktop? E o que dizer dos seus recursos de interação?

Alguém poderia dizer que não devemos nos prender à definição da Adobe, e ele estaria certo. No entanto, definir precisamente RIA pode ser complicado. Um caminho seria enumerar os atributos que caracterizam uma Rich Internet Application, e os seguintes atributos provavelmente fariam parte de uma definição precisa:

- ausência do refresh de página
- controles de interface responsivos e intuitivos

O GMail é um excelente exemplo de dados que são buscados no servidor e apresentados na interface sem refresh de página; o Brocade é excelente exemplo de controles de interface responsivos e intuitivos. O primeiro não é considerado rico devido aos seus controles de interface; o segundo não é considerado rico devido a sua capacidade de eliminar o refresh de página. Mesmo assim, ambos podem ser considerados Rich Internet Application. Fica claro, portanto, que uma RIA não precisa apresentar, ao mesmo tempo, todos os atributos que a define. Podemos dizer que existem tipos diferentes de RIA: algumas apresentam um conjunto de atributos “X” e outras um conjunto de atributos “Y”. O GMail funciona muito bem sem o Flex e o Brocade dificilmente ficaria tão bom em Ajax. O que isto indica é que na realidade não existe uma disputa. O Ajax é melhor para algumas RIAs e o Flex para outras.

Segundo Round

Sei que embora estejamos falando de tecnologia a paixão muitas vezes sobrepõe a razão. Existem pessoas apaixonadas por Padrões Web, Ajax, Flash Platform, .NET, Java, etc. E isto torna a tarefa de resolver as disputas ainda mais difícil.

Alguém poderia dizer, por exemplo, que tudo que se faz com o Flex é possível fazer com o Ajax. Porém, “poder” não é “dever”. Os Padrões Web estão aí para mostrar que não é porque você pode usar tabelas para fazer o layout de uma página HTML que você deve. Muitas coisas são mais fáceis em Flex do que em Ajax, e isto é um benefício para o desenvolvedor. Também o resultado, que é um benefício para o usuário final, pode ser superior em Flex dependendo da RIA a ser desenvolvida. Por isto, é preciso avaliar caso a caso.

Outra crítica comum às RIAs feitas em Flex (Flash Platform) é que elas não são tão “indexáveis” pelos mecanismos de busca quanto as RIAs feitas em Ajax (HTML). Que fique claro que o que não é facilmente indexável numa Flex-RIA são suas telas interiores. Mas será que são todos os aplicativos Web que precisam ter suas telas interiores indexadas? Tomemos mais uma vez o exemplo do Brocade. Para quê indexar a tela que mostra o detalhamento de uma consulta? Oras, é o usuário que deve escolher a consulta que ele quer detalhar e não ir direto a um detalhamento qualquer através de um mecanismo de busca. Ou seja, tudo que o usuário precisa neste caso é encontrar o aplicativo e não suas telas interiores. E existem muitos outros casos onde a indexação de telas interiores não é necessária.

Uma crítica comum às RIAs feitas em Ajax é que elas não são tão belas quanto as RIAs feitas para a Flash Platform. Se por um lado não há como negar a importância da estética nos aplicativos Web, por outro, nem tudo que é funcional precisa ser belo. O GMail deveria ser mais belo? Isto é mesmo necessário?

Críticas a parte, o que deve ficar claro é que para determinadas RIAs os recursos do Flex podem atrapalhar e para outras os recursos do Ajax podem não ser suficientes. Você não deve usar canhão para matar mosquitos ou um estilingue para matar leões. Dentre os diversos atributos que caracterizam uma RIA, o Flex é mais aderente a alguns e o Ajax a outros.

The Right Tool for the Right Job

Vale lembrar que nem o Flash nem o HTML foram concebidos inicialmente para desenvolver RIAs. O Flash foi concebido para fazer animações. O HTML foi concebido para apresentar documentos. O HTML foi adaptado para eliminar o refresh de página - algo que o Flash já fazia desde suas primeiras versões. O Flash foi adaptado para renderizar tags - algo que é inerente ao HTML. Portanto, o HTML quer ser o Flash e o Flash quer ser o HTML.

A vantagem do Flash no passado consistia no fato dele ter sido modificado mais rapidamente para atender às RIAs. A vantagem do HTML no presente é que o Ajax é Open Source. No futuro creio que ninguém levará vantagem uma vez que a Adobe já anunciou uma versão free do Flex e o Ajax evoluiu muito nos últimos tempos. Além disto, falar em vantagem só faz sentido quando há uma disputa de fato. Se você ainda acha que alguma destas tecnologias leva vantagem alheia aos objetivos da solução, é melhor tomar cuidado. Vale lembrar a velha expressão popular com status de lei: The right tool for the right job.

Exemplo a Ser Seguido

O Flickr parece ter percebido muito bem onde a Flash Platform é mais indicada que o Ajax e vice-versa. Este excelente álbum de fotos público usa muito bem, por exemplo, os recursos do HTML para criar as associações e a Flash Platform para organizar as fotos e para slideshow.

Saiba Mais

A fim de tornar a integração do Flex com o Ajax ainda mais fácil a Adobe desenvolveu uma biblioteca de classes denominada Flex-Ajax Bridge. Também recomendo a interessante demo do Christophe Coenraets: Google Maps Collaboration.

Por Beck Novaes em 31/March/2006 | Comentar | Trackback


No Translations

5 comentários para “Ajax e Flex”


Vale lembrar que o Flex 2 SDK é free… assim como o Flash Player.


Parabéns, excelente texto.

“The Right Tool for the Right Job” é isso ai não existe o Santo Graal das tecnologias.


[...] O conceituado relatório pode ser lido pela bagatela de US$379.00. Isto me faz pensar se eu e o Fábio não estamos perdendo dinheiro ao fazer alguns posts de graça sobre o assunto. [...]


Parabéns pelo texto, espero que continuem free…
E sobre seu comentário você não esta perdendo dinheiro, muitas pessoas veem seu trabalho gratuito e certamente la na frente vão lhe gratificar com algo.
Mais uma vez parabéns e aguardo a proxima noticia…


[...] BLOG. Ajax e Flex. Disponível em: http://blog.dclick.com.br/2006/03/31/ajax-e-flex/#more-37. Acesso em: 12 maio [...]

Adicionar comentário

(requerido)
(requerido, não será publicado)