Ajax vs Flex – 15 factores de decisão.

Ajax vs Flex – 15 factores de decisão.

Na hora de desenvolver uma Ria, muitos se questionam qual a tecnologia a usar. Para os amantes de HTML, efeitos simples e cumprimento de padrões SEO, sem duvida o Ajax se torna uma opção viável, mas para os amantes de fiabilidade, rapidez, suporte e uma interface bem agradável, o flex é a opção.

 

Não vou defender nenhuma destas tecnologias (ou talvez vá!) mas vou colocar algumas características bem interessantes dos 2, retiradas de alguns sites, comentários e artigos.

Vou mostrar alguns pontos, em ambas as tecnologias conforme a necessidade e deixarei a minha analise no final:

 

1. Animação

Em muitas das ria’s os efeitos são na realidade uma mais valia.

AJAX: Pouco suporte limitado apenas a efeitos lineares.

FLEX: Um grande suporte nativo, bem como possibilidade de personalização.

2. Manipulação de imagens

Possibilidade de manipulação, alteração, edição e efeitos

AJAX: Algum suporte, dependendo do browser e de bastante código server-side

FLEX: Suporte nativo.

 

3. Suporte a HTML.

AJAX: Suporte nativo.

FLEX: Suporte muito limitado, não permitindo tabelas, css, frames ou javascript

 

4. Video e audio streaming

AJAX: Sem suporte nativo, dependendo de plugins de terceiros

FLEX: Suportado, embora pouco usado. Suporta também captura de câmaras ou microfones do utilizador.

 

5. Desenvolvimento, programas e custos.

AJAX: Bastantes aplicativos livres como Google Toolkit, Echo2, jsLINB ou Rico. Existem alguns pagos, mas como são tantas as opções livres não vou nomear.

FLEX: Flex Builder Eclipse Plugin ($500 US ~ 325 €), Flash CS3 ($700 US ~ 450 €) ou um qualquer editor de texto que requer grandes conhecimentos do seu método de programação.

 

6. Runtime, Execução.

AJAX: Alguns pontos têm que ser programados para os diferentes browsers (alguns problemas de cross-browsers)

FLEX: Uma plugin única (flash player, que se estima que esteja instalada em cerca de 85/90% dos computadores pessoais) que permite cross-browsing e cross-plataform sem problemas.

 

7. Código e desenvolvimento em equipa. Linguagem orientada a objectos.

AJAX: Suporta linguagem OO em algumas frameworks, mas é sempre compilada a uma estrutura base. A maior parte de librarias não são compatíveis com outras o que causa muitos problemas.

FLEX: Compatibilidade ECMAScript, altamente suportado em aplicações WEB. O seu código é facilmente organizado e partilhado, compilado sobre a base de Action Script 3.

 

8. Suporte a graficos vectorizados.

AJAX: Já suportado via VML nas recentes versões do IE e apenas suportado em alguns browsers via SVG.

FLEX: Suportado nativamente (AS3).

 

9. Segurança e seu código.

AJAX: & FLEX: Ambos utilizam (e estão dependentes) da segurança da sandBox dos browsers.

AJAX: O seu código pode sofrer violações de terceiros visto existirem alguns reticências quanto à sua segurança.

FLEX: O código dificilmente será violado, pelo menos nas partes criticas, graças à (já por defeito) distorção do código fonte na compilação, bem como a possibilidade de encriptação.

 

10. Controlo DOM.

AJAX: Suportado nativamente.

FLEX: Não suportado, dependendo sempre de chamadas externas  a objectos javascript.

 

11. SEO (Optimização para motores de busca).

AJAX: Suporte amigável aos browsers, embora alguns browsers não sejam capazes de seguir links em javascript. Se parâmetros SEO tiverem que ser cumpridos, o AJAX deve ser cuidadosamente programado.

FLEX: Suporte limitado. As “normas” SEO podem ser cumpridas recorrendo a META TAGS e publicação separada do conteúdo.

 

12. Acessibilidade.

AJAX: Muito pouca, bem como poucas frameworks anunciam boas praticas de acessibilidade.

FLEX: Acessibilidade compatível com as normas 508

 

13. Open Source / Código Aberto.

AJAX: Existem muitas lincenças, desde livres a comerciais, variando de framework para framework.

FLEX: O flex e action script são código aberto, e até à pouco tempo a maquina virtual do flash (FVM) era fechada. Recentemente aberta como indica no projecto Adobe Open Screen.

 

14. Extensibilidade (componentes terceiros).

AJAX: Como o ajax é uma extensão do HTML e Javascript, a framework é por norma extensível.

FLEX: Os seus componentes são facilmente extensíveis, bem como a possibilidade de criação de novos. A plugin para o eclipse é facilmente extensível através de um grande número de extensões.

 

15. Suporte.

AJAX: O ajax é médiamente suportado, bem como as suas frameworks, com alguns artigos e tutoriais, embora muito ambíguos devido à variedade de frameworks.

FLEX: Grande suporte por parte da adobe, bem como pela crescente comunidade de programadores. A framework está altamente documentada com exemplos na própria pagina da adobe bem como os seus exploradores (Effects, Components e Styles)

 

Resumo final, como li num artigo bem interessante de onde retirei grande parte destes comparativos, depende muito do objectivo da RIA, embora concorde bastante com a seguinte frase:

“Use AJAX for tactical improvements and Adobe Flex for strategic implementations”

Onde se pode entender que o AJAX deve ser usado quando a nossa RIA necessita de updates constantes e a Ria em si é leve e pequena. Pode ser usado para acrescentar alguns “pontos de RIA” a pequenas aplicações/páginas. Mas deve ter em atenção um possível futuro de abandono de suporte de algumas frameworks, bem como uma possível reformulação dos browsers e seu suporte.

O Flex deve ser opção quando o “cross-browsing” deve ser um factor decisivo, bem como em aplicações medias-grandes. Como existe uma grande marca por detrás (Adobe), é de esperar uma elevada e crescente continuidade do suporte, muito graças à grande capacidade do Action Script e da penetração do Flash Player no mercado, ainda mais agora com a estratégia Open Screen da adobe. A possibilidade de modo offline, graças ao AIR, torna o flex muito versátil.

Nota final e opinião:

Com tudo isto que li, traduzi e aqui escrevi…volto-me mesmo para o desenvolvimento em flex, porque afinal de contas é uma paixão minha.

Espero que estas informações sejam úteis na hora critica de decidirem a linguagem/framework da vossa RIA.

 

image    Este artigo está disponivél em pdf  para download.


4 comments

add yours
  • Ved May 14, 2008

    Eu não descarto o AJAX completamente, principalmente quando existe a necessidade de um trabalho de SEO, coisa que eu acho nula devido ao SWF será um arquivo binário. Mas muitas pessoas ainda confundem a utilização: Flex é para desenvolver sistemas… é o Delphi para a Web e AJAX vai bem em interfaces abertas a todos os usuários (websites) interativas.

    Grande abraço, Ved

  • Villas May 17, 2008

    Bom vou dar meus pitacos também.
    Antes de mais nada Mário e Ved quem quiser discorrer, naquela frase:

    “Use AJAX for tactical improvements and Adobe Flex for strategic implementations”

    O que se pode definir como “tactical improvements” e por “strategic implementations”??

    Ai sobre FLEX ou AJAX, falando bem simples, acho que para páginas simples tanto o Ajax como o Flex são pesados demais (acho isso de sites com muito flash também) … nego fecha e vai pra outra logo que vê o loading …

    Eu ainda acho que site deve visar conteúdo primeiramente e depois acessibilidade no sentido básico da palavra… carregar rapidamente, poucas imagens, tableless quando possível e por ai vai.

    Agora … para aplicações fora as “linguajens parrudas” como JAVA C++ Clipper, não vi ainda nada como o flex … achei imbativel

    Ajax tem muuitos frameworks e pouco suporte e a que eu acho que tem mais suporte é o JQuery.

    Um abraço

  • Mário Santos May 17, 2008

    Concordo em alguns pontos, mas hoje em dia se reparares, 90% das grandes empresas estão-se a “lixar” para as nomas SEO ou questões de acessibilidade e ainda mais, usam e abusam do flash. Ou seja, o mercado está a mudar e a imagem está cada vez mais a fazer uma marca, e as grandes marcas apostam numa boa imagem, e acabam por dar o toque final de profissionalismo com o flash.

    Eu por exemplo, quando aparece algo a dizer loading, espero…com muita curiosidade em saber o que lá vem :)

    Quando em cima falava em “tactical improvements”, fala em usar o flex em melhoramentos, ou seja, se um site necessita de partes mais rápidas e flexiveis, o cliente nem vai aceitar pagar uma remodelação completa do site, aí usas ajax!
    Quanto ao “strategic implementations” indica que o flex deve ser usado quando um produto tem que ser criado e sustentar flexibilidade e controlo total, pricipalmente quando depende de uma estratégia de mercado ou empresa como cativar outro tipo de publico ou uma aposta critica no design.

    Um exemplo, quando algém procura uma empresa que crie identidade corporativa, sites e publicidade, vai atrás de uma empresa que tenha uma imagem sólida, profissional, equilibrada, e repetindo, uma imagem “genial”, e essa empresa deve ter em mente que a sua imagem é mesmo a alma do negócio!

    De resto penso que o Flex não pode ser considerado sequer uma linguagem de programação, afinal de contas é só uma framework para trabalhar com o Action Script 3, pode ser comparado sim ao visual studio, zend, delphi ou tantos outros que existem…

    Bom, mas como são gostos e opiniões, é sempre claro que tem que haver adeptos de uma, de outra, das duas ou de nenhuma :)

    Em em 70% dos casos e dos clientes, o ajax (framework), pode simplesmente ser substituido por javascript simples, sem necessidade de recorrer a uma framework e as suas hierarquias, não é verdade??
    Como em outros casos, o uso de uma framework ajuda bastante a simplificar o processo!

    Abraço Villas!

  • Villas May 17, 2008

    Muito interessante o ponto de vista. è que eu sou da turma do ‘KISS’ (Keep it simple stupid !)

    Sempre que me enrolo com um código, daqueles que se assemelham a 10 IFs aninhados, eu volto ao básico e simples hehe

    Maravilha

Leave a Comment

Post