Pesquisar este blog

terça-feira, 1 de abril de 2008

Ajax vai acabar ficando para trás?

Estive olhando as novas iniciativas em aplicações via Web. Ao invés de puro Javascript com comunicação assíncrona com o servidor, ou seja, AJAX, elas usam o antigo conceito de componentes embutidos.

Applets Java, Flex, Flash. Esse tipo de aplicação sempre foi considerada "pesada" e provavelmente este é o motivo para geralmente se preferir que aplicações na Web sejam feitos em puro AJAX.

Ocorre que o AJAX talvez não esteja evoluindo no mesmo passo das conexões com a Internet. Basicamente o AJAX continua sendo uma espécie de hacking. A Microsoft não criou as funções que possibilitam o AJAX -aquelas que fazem comunicação assíncrona com o servidor através de Javascript no cliente- pensando em se fazer aplicações inteiras do tipo Office via Web.

As ferramentas de desenvolvimento para AJAX não são de auto-nível. Auto-nível em programação significa que o programador não precisa saber como as coisas funcionam por trás do código que está sendo executado. Não precisam entender os limites da plataforma utilizada para programação. Simplesmente usam instruções mais intuitivas e o compilador do código de alto nível se encarrega do resto.

Até existe um ambiente de programação de alto nível para AJAX, o Morfik, que possibilita fazer aplicações AJAX inteiras utilizando linguagens comuns como BASIC ou Pascal, sem jamais precisar ver códigos em Javascript ou entender os limites da plataforma do browser. O Morfik de fato "compila" a linguagem de alto nível em instruções Javascript mais complexas, lidando com todas as picuinhas da plataforma Web de forma totalmente transparente.

No entanto o Morfik, não sei bem por qual motivo, não fez muito sucesso.

Alia-se a isso o fato de que os browsers não estão evoluindo bem suas capacidades de hospedagem de aplicações. Diante do sucesso do AJAX e da Web 2.0, eu há muito tempo que aguardo um browser mais voltado para ser "plataforma de aplicações", com APIs voltadas para tal. A verdade é que uma iniciativa nesse sentido não surgiu nem por parte da Microsoft nem do pessoal do Firefox. Minha teoria é que a Microsoft não tem interesse nisso, já que a galinha dos ovos de ouro dela é o software instalável em pacote. Já o pessoal do Firefox no meu ver não tem a mesma capacidade de inovar tanto quanto tem uma mega-empresa de software quando tem vontade de fazê-lo.

O resultado é que as conexões cada vez mais velozes de Internet começam permitir vislumbrar outras saídas para o impasse.

As soluções "pesadas", Java applet e Flex/Flash da Adobe, começam a se tornar mais viáveis.

Seus editores de texto, ao contrário daqueles feitos em AJAX, são verdadeiramente WYSIWYG, ou seja, você vê na tela exatamente como aparecerá impresso, algo que ainda é essencial em um editor de textos, e que os editores em AJAX simplesmente não possuem, por limitações primárias de suas plataformas. Tanto o Google Docs como o Zoho não mostram as margens das páginas na tela e suas quebras. Um texto que ocupa 2 linhas na tela pode, por exemplo, ocupar 5 linhas quando impresso. Você não tem controle do que cabe e do que não cabe na folha. O motivo é que simplesmente até hoje nenhuma produtora de browsers implementou um controle mais completo de algo básico como impressão.

Tanto o BuzzWord da Adobe, feito em Flex, como o Write da ThinkFree possuem essa funcionalidade, além de interfaces bem mais complexas e agradáveis de se usar. O problema continua sendo que em algumas conexões essas aplicações são muito mais lentas que aplicações em AJAX puro. Eu testei por exemplo no Virtua 4mbps e ficou bastante utilizável, mas no Claro 3G simplesmente não abria de tão demorado para carregar os componentes.

Infelizmente essas soluções perdem também um pouco da sensação de "não instalar nada no cliente", já que os componentes são primeiro baixados pelo browser e rodam como se fossem executáveis normais. Já aplicações em AJAX puro são rodadas em partes, conforme a necessidade, e não carregadas por completo. São pequenos pedaços de código que rodam quando solicitados. E são rodados pelo próprio browser ou servidor, e não utilizando recursos externos a este. No caso do AJAX é mais verdadeiro o conceito de "o browser como plataforma", enquanto que nas outras soluções as plataformas tem outros nomes, como "Java Virtual Machine".

No entanto, a continuar o AJAX com suas pífias limitações, mesmo com as conexões ganhando mais velocidade, não vejo outro caminho lógico que não o dessas aplicações em "componentes" ganharem mais e mais espaço, já que elas utilizam plataformas muito mais poderosas e voltadas para o tipo de tarefa, só que desenvolvidas por empresas que no entanto não tem muito interesse em entrar na briga dos browsers em si.

Ou quem sabe a Google resolve fazer um browser, ou trabalhar em cima do Firefox, já que ele é de código aberto. Ou então quem sabe a Microsoft larga de ser besta e faz um browser voltado para aplicações Web...

Está declarada a guerra das plataformas para desenvolvimento e hospedagem de aplicações Web.

Nenhum comentário: