AJAX não é uma linguagem nova, nem uma plataforma de programação diferente, é apenas um conjunto de tecnologias já existentes no mercado, mas com uma visão diferente. Essa sigla significa: Asynchronous Javascript and Xml. Portanto, podemos notar que temos duas tecnologias - javascript e xml - que já existiam antes, mas que trabalham assincronamente, ou seja, trabalham de forma paralela à página que estiver sendo visualizada e essa é a grande idéia por trás disso, nada mais.
Agora que temos em mente o objetivo principal do AJAX, podemos estudá-lo melhor. O que dissemos anteriormente diz respeito a tecnologias utilizadas pelo AJAX, ou seja, não precisamos, como na maioria dos métodos e formas de trabalhos atuais, aprender uma nova linguagem ou ferramenta, pois elas já existem. Muitos podem estar se perguntando "então por que o AJAX é tão falado, se não precisamos aprender nada a mais do que já existe?". A resposta é simples: não precisamos aprender, precisamos desaprender!
Isso mesmo, desaprender! Mas desaprender conceitos. Isso é diferente de desaprender linguagens e técnicas. Pois, com todos esses anos de internet, nos acostumamos a criar páginas de internet - antes estáticas hoje em dia dinâmicas - mas esse novo conceito não cria páginas, cria aplicativos on line, e se isso estiver confuso, é exatamente porque é mais difícil desaprender do que necessariamente aprender. Para se trabalhar com AJAX precisamos ter disciplina e bom senso, senão estaremos criando mais problemas ao invés de melhorá-los. Muitas coisas que podemos fazer com AJAX são possíveis de se fazer sem ele, utilizando outras tecnologias ou mesmo algumas das tecnologias embutidas nele como, por exemplo, o javascript, ou mesmo um simples (x)html.
Com o AJAX veio o novo termo muito utilizado e pouco compreendido hoje em dia: WEB 2.0. Esse termo dá a idéia de avanço, complemento, ou seja, a WEB turbinada. Muitos "programadores" web de hoje em dia pensam que aplicar AJAX em seu site irá deixá-lo um site no padrão 2.0, mas pensar isso é erro, pois o conceito de WEB 2.0 está ligado a muitas outras coisas como acessibilidade e portabilidade do site. Desenvolver um site com AJAX pode ter muitas vantagens, mas também desvantagens, vamos manter o foco nas principais.
Um site bem estruturado em AJAX pode proporcionar uma ótima "experiência" ao usuário, visto que o site inteiro já foi carregado na primeira vez. Por outro lado, se o programador implementar o AJAX de forma incorreta ou mesmo para funcionalidades que não precisariam de AJAX para serem implantadas, esse site terá sérios problemas, seja com múltiplos navegadores, seja com ações do usuário.
Esses efeitos estão exclusivamente ligados à disciplina do programador e são facilmente corrigíveis com um pouco de bom senso. Mas existem outros pontos.
Uma ótima característica do AJAX são suas largas bibliotecas de efeitos gráficos que podemos implementar rapidamente. Elas vão desde efeitos de aplicação chamados de alpha, que são efeitos de transparência em qualquer objeto da página, até simuladores de aplicações desktop para a internet, como gerenciadores de e-mail, ou editores de texto. Existem serviços na internet que fazem praticamente todas as tarefas comuns dos computadores, pela internet. O Google é um bom exemplo. Existem muitos serviços do Google que são muito utilizados hoje em dia, e todos eles com uso de AJAX, por exemplo: YouTube, Orkut, Gmail, Google Earth, Google language tools, Google.com, Google Map, Page Creator, etc...
Na teoria, esse lado das vantagens não teria desvantagens, mas na prática as coisas mudam, pois esses recursos não devem ser utilizados à toa ou sem um contexto correto. De outra forma a aplicação ficaria com mais códigos, e por sua vez mais pesados sem necessidade.
Portanto, essa parte da disciplina fica bem clara. Utilizar AJAX com bom senso, do contrário, teremos problema. A parte mais simples - quem diria - é com relação à codificação, mas mesmo assim temos que ter cautela, pois temos que seguir alguns conceitos importantes também. O AJAX segue 4 princípios básicos:
De alguma forma, já expliquei esses quatro princípios, mas para deixar bem claro, vou explicar um pouco melhor...
O conceito de aplicação se dá pelo fato de um aplicativo AJAX simular uma aplicação desktop, ou seja, um software "não-web".
Fornecer dados é diferente de fornecer conteúdo, pois uma aplicação não feita com AJAX faz requisições ao servidor, que por sua vez retornam todo o conteúdo para o navegador exibi-los na tela. Com o conceito AJAX fazemos requisições apenas de dados separados, e transformamos em informações no cliente, ou seja, no navegador.
Sobre a interação do usuário, podemos fazer uma analogia como a seguir: no conceito antigo temos uma pessoa que atende o celular parada e quando termina a ligação essa pessoa atravessa a rua. No novo conceito temos uma pessoa que atravessa uma rua ao mesmo tempo em que fala ao celular. Isso é o mesmo na internet, pois o usuário não é interrompido no uso do restante do site enquanto o servidor está retornando dados.
Sobre a codificação, podemos repetir a afirmativa: é mais difícil desaprender do que necessariamente aprender.

Realmente Alantiel, hoje em dia vemos sites que simples código HTML resolveria, mas ao invés disso os "progamadores" e designers abusam e transformam um simples envio de formulário por exemplo numa tarefa irritante.
Claro que sabendo utilizar, o AJAX pode transoformar um site de forma surpreendente, mas como tudo nessa vida, devemos ter bom senso e o principal de tudo, o público que iremos atingir.
Abços!

O artigo começa bem ao apresentar o AJAX, porém não atinge o seu objetivo que é debater as vantagens e desvantagens na utilização de AJAX. Praticamente não foram citadas vantagens e desvantagens. Um exemplo clássico de desvantagem na utilização do AJAX é a perda da função do "back button" (botão voltar) do navegador. A grande maioria do usuários utilizam deste botão para voltar à pagina anterior, porém como o AJAX traz somente a parte que irá mudar na página, ou seja, não muda de página, os usuário não conseguem voltar ao conteúdo que estavam acessando anteriormente. Esse problema pode ser resolvido com implementações próprias, onde você irá controlar o histórico de conteúdos exibidos, assim como o google faz no gmail, porém é um trabalho a mais para quem quer utilizar AJAX e manter a usabilidade.
A desvantagem citada foi somente uma amostra da gama de vantagens e desvantagens que poderiam ter sido trabalhadas pelo artigo.

Obrigado pelos comentários, mesmo as críticas valem de alguma coisa.
Nesse artigo não quis me aprofundar muito na parte prática do AJAX, mesmo por que seria uma coisa interminável abordar 'todos' os aspectos prós e contras...
Espero que meu artigo tenha atingido o objetivo real que são os aspectos teóricos e uma visão para os desenvolvedores pensarem e refletirem antes de sair aplicando coisas muitas vezes desnecessárias nos sites que desenvolvem.
Até a próxima

Quem escreve um artigo sempre está sujeito a críticas positivas ou negativas. Neste caso critiquei mais de forma negativa do que positiva, porém como você mesmo disse "mesmo as críticas valem de alguma coisa". Fica aqui a minha sugestão de fazer um artigo que exponha os intermináveis prós e contras, pois acho que isso levaria muitos desenvolvedores que acompanham o iMasters a repensar a maneira de utilizar o AJAX.
Já trabalho a mais de 3 anos com AJAX e gostaria de ver a opinião de outras pessoas com relação a sua utilização, pois todos nós sempre estamos aprendendo.

Olá Flávio,
Gosto muito das críticas negativas, as vezes é melhor que as críticas positivas, pois nos levam a refletir e pensar melhor sobre o assunto.
Sobre as abordagens práticas, prometo que farei um novo artigo com esse objetivo, mas espero que tenha entendido que não era o propósito do artigo que escrevi, mas sim uma abordagem genérica e teórica, que também acho muito importante no nosso caminho de desenvolvimento.

Com certeza, esse artigo cai bem como uma introdução ao que ele supôe informar:
Vantagens e desvantages, enumerando-as.
Se em breve teremos o complemento, ótimo! Já estou aguardando para ler, pois vai ser bem interessante, tenho certeza.
Abraços!

Acredito que o conceito de web 2.0 vai muito além e inclusive não tem muito haver com acessibilidade e portabilidade e sim, compartilhamento de informação e interação dos usuários em sua aplicação.
Responder comentário
@Wesley: Acredito que o conceito de web 2.0 vá muito além, mas usar a terminologia 2.0 ou 3.0 (que é o mais difundido para "compartilhamento de informação e interação dos usuários") é relativo, pois as nomenclaturas são usadas mas não se tem o limite de onde começa uma para começar a outra. Mas acredito que ambos os conceitos são muito amplos e por isso mesmo será tema para mais alguns artigos, uns já estão no ar outros em andamento...
Obrigado
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Alantiel Freire Marins é Desenvolvedor Web há mais de 4 anos, representante da Fatec Zona Sul na maratona brasileira de programação por dois anos consecutivos. Estudante de Algoritmos e Estrutura de dados, atualmente é webmaster do UOL.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.