Sessão de perguntas e respostas do Snakes and Rubies

O vídeo da sessão de perguntas e respostas do Snakes and Rubies (evento que foi realizado no ano passado onde foram discutidas as características dos dois frameworks) está disponível no Google Vídeo. Como essa parte do evento não havia sido disponibilizada inicialmente e ela é tão interessante ou mais que a própria apresentação, eu resolvi disponibilizá-lo abaixo.


Afinal de contas, o que é esse tal de AJAX?

Muito se tem falado sobre o AJAX, o barulho em torno dele é grande, assim como os Applets quando surgiram. O XML e JavaScript Assíncrono, também conhecido como AJAX (Asynchronous Javascript And XML), é na verdade uma nova abordagem para desenvolvimento de aplicações web mais ricas, interativas e responsivas. O AJAX não é realmente uma tecnologia, mas uma forma de utilizar várias tecnologias como HTML ou XHTML, CSS, JavaScript, DOM, XML, XSLT e o Objeto XMLHttpRequest.

O mecanismo de interação das aplicações web é diferente do das aplicações desktop tradicionais. Cada instância de uma página da web precisa se comunicar com o servidor para obter a resposta necessária para ser atualizada. Isso consome uma grande quantidade de tempo e reduz a qualidade da experiência do usuário.

Vamos imaginar uma aplicação que exibe fotos por exemplo. Como ela se encontra rodando no servidor web e não no lado do cliente, quando o usuário quer ver a próxima foto, a página inteira precisa ser montada do zero mesmo que 99% do seu conteúdo nunca se altere. Agora considere a mesma aplicação novamente, mas dessa vez rodando como uma aplicação desktop: Quando o usuário clica para ver a próxima foto, isso é feito tranquilamente e a aplicação só tem que exibir a foto, porque ela está rodando inteiramente no lado do cliente.

A diferença que existe entre o comportamento de aplicações web e aplicações desktop é anulada pelo AJAX já que ele é processado do lado do cliente. O AJAX pode ser utilizado para criar Rich Internet Applications (RIA) que podem ter a interface consistente de um componente da GUI do desktop rodando em um browser comum sem aumentar o tamanho das páginas.

Como o Ajax Funciona?

As aplicações AJAX usam um Motor AJAX que atua como uma camada de aplicação intermediária entre o usuário e o servidor web. Esse Motor AJAX é escrito totalmente em JavaScript e algumas vezes é colocado em um frame escondido. Nesse momento algumas pessoas podem concluir que a presença de uma camada intermediária irá tornar a aplicação menos responsiva, mas a verdade é que ocorre exatamente o oposto no caso do AJAX já que as aplicações resultantes da sua utilização são muito mais responsivas.

Como isso é possível? Quando uma página web é acessada pelo usuário pela primeira vez, o Motor AJAX é carregado pelo navegador. Esse motor é responsável por montar a interface do usuário a medida que vai obtendo dados do servidor web no formato XML utilizando o objeto XMLHttpRequest. Agora a aplicação inteira está rodando no Motor AJAX e não precisa montar a página no servidor. O Motor AJAX permite que a interação do usuário com a aplicação ocorra de forma assíncrona (independente da comunicação com o servidor). Isso significa que o usuário nunca será apresentado à uma janela em branco enquanto estiver esperando que o servidor faça alguma coisa.

Toolkits de desenvolvimento AJAX

Os Motores AJAX possuem códigos complexos escritos em JavaScript, e não é fácil escrever um sozinho. Felizmente, existem vários Toolkits de desenvolvimento desenvolvidos por terceiros para escrever aplicações web baseadas em AJAX. Os três listados abaixo não são exatamente uma lista significativa, mas são um bom lugar para se começar.

Aplicações Web desenvolvidas em AJAX

Assim que o AJAX ganhou popularidade ele saiu dos laboratórios e foi para os servidores de produção na forma de aplicações web reais, simples e complexas. Ele também se tornou uma das tecnologias favoritas no Google, o que pode ser visto nas várias aplicações que eles tem desenvolvido usando AJAX. Abaixo encontra-se uma pequena lista com algumas coisas nas quais o AJAX está sendo utilizado no mundo real.