Ajax
é um xunxo (gambiarra) no Javascript do HTML que permite
atualizar informações numa página sem precisar
recarregar a página. Apesar do recurso estar disponível
há anos, parece que só
agora descobriram ele.
Quicou uma bola nova no campo e os futebolistas de plantão correm como loucos pra ver quem será o primeiro a chutá-la. E chuta pra cá e chuta pra lá, não querem nem saber se é de basquete ou pingue-pongue, o negócio é experimentar. De vez em quando, de tão afoitos, chutam na torcida. O gol fica lá, criando teia.
A torcida vaia, mas eles não ouvem. Perguntar se eles estão gostando? "Imagina, claro que estão! Se eu estou gostando, eles também estão," dizem para si mesmos os jogadores.
Bizarro?
Foi mais ou menos assim que começou o futebol, mais de um século atrás. O mercado Web está começando agora, mas ao invés de aprender com o passado, só quer saber do futuro.
Volta e meia, começa uma nova onda tecnológica e surgem fóruns, sites, livros e etc. Ou você vai atrás, ou é considerado atrasado. Estou escrevendo esse post porque fui pressionado pelos meus leitores: "e aí, não vai comentar o tal de Ajax?"
A última é a onda que ainda não atingiu o apogeu no Brasil é o tableless, que conta inclusive com uma tendência de design, já comentada aqui antes. Se continuar como sempre, seguindo os estadunidenses com dois anos de atraso, o Ajax deve bombar no Brasil só depois de 2007, quando os estadunidenses já tiverem descobrido que o Ajax também tem suas desvantagens e não só vantagens, como vêem agora. Então, devemos ter um Ajax maduro aqui lá por 2009.
Não precisamos esperar tanto. Se desde o início, formos críticos diante de tecnologias como o Ajax, estaremos inclusive na frente dos estadunidenses que, pelo fato de serem os criadores dessas tecnologias, ficam ainda mais enfeitiçados.
A Isabel já falou sobre as vantagens que o Ajax pode trazer para a usabilidade de um website, porém, como tudo na vida, sempre há as contra-indicações.
Todos os problemas do Ajax decorrem do fato de que páginas são páginas, não ambientes de desenvolvimento. Navegadores não foram feitos para rodar aplicações, muito menos para debugá-las. Javascript é uma linguagem feita às pressas e é interpretada diferentemente por cada navegador. Usuários estão acostumados a navegar por páginas dentro de um navegador e não se sentem muito à vontade para operar uma aplicação ali dentro.
Vejamos alguns exemplos de novidades com Ajax. Detalhe importante: meu navegador é o Opera 8, o navegador mais inovador do mercado. Se Ajax é moderno, então tem que funcionar nele.
Tabtastic é um experimento de abas dinâmicas, que mudam seu conteúdo sem carregar novas páginas. É como se ao clicar num item de menu, a nova página abrisse instantaneamente.
Vantagem: não precisa esperar carregar uma nova página
Desvantagens:
Yahoo Mindset é uma busca que permite ordernar os resultados de acordo com seu objetivo: comprar ou pesquisar. Claro que o usuário pode ter muito mais objetivos do que esses dois, mas trata-se apenas de um experimento do laboratório do Yahoo que pesquisa como ensinar algoritmos a serem mais inteligentes.
Vantagem: o usuário pode filtrar o que interessa mais rapidamente do que se tivesse que refinar a busca ou passar de página em página
Desvantagens:

Já me peguei diversas vezes no Google digitando uma palavra-chave e só depois clicando na aba de busca por imagens. Antigamente, na nova página que abria não constava o que já tinha digitado, agora pelo menos o termo continua. No Yahoo quando se clica na aba, ela muda instantaneamente.
Vantagens:
Desvantagens:

No Yahoo News, ao clicar num hiperlink no corpo do texto, abre-se imediatamente uma caixa dentro do próprio texto que retorna notícias que contenham a palavra hiperlinkada. Na captura acima, cliquei no hiperlink CIA. Depois dessa tela, apareceram os resultados:

Vantagens
Desvantagens

Neste blog, coloquei na busca um script que faz sugestões de termos, de forma parecida com o Google Suggest. Os termos que são sugeridos são as palavras-chave dos posts definidas pelo autor e pelos leitores (veja no fim do post).
Vantagens:
Desvantagens:

Alguns amigos abandonaram o Outlook para usar o Gmail porque ele é mais rápido e prático de usar. Em geral aplicações Web são mais lentas que de desktop, mas realmente não é o caso do Gmail. Uso o Gmail só para receber as listas de email e funciona extremamente bem, melhor do que num cliente de email desktop. Porém, ainda prefiro o Thunderbird para gerenciar minhas contas principais.
Vantagens
Desvantagens

Na imagem acima, vemos fotos tirada por satélite da cidade de São Paulo e mostradas pelo Google Maps. Você digita o endereço e ele mostra o local, seja num mapa, seja na foto.
Vantagens
Desvantagens
Mais exemplos de Ajax, você encontra no Ajax Patterns.
Conclusão
O que todos esses exemplos tem em comum? Todos tentam melhorar a experiência do usuário diminuindo o tempo de resposta do sistema. Clicou, abriu. Alguns deles abre sem nem precisar clicar. O problema é que o usuário está acostumado a esperar pelo carregamento de uma nova página a cada vez que dá um clique. Então, se não houver uma dica visual de que algo está acontecendo ou já aconteceu, a resposta pode passar desapercebida e o usuário pode ficar se perguntando porque nada aconteceu. Luke Wroblewski dá algumas dicas de como fazer isso.
E o Flash? Onde entra nessa história toda? Bem, até antes de surgir o Ajax, o Flash era a ferramenta mais indicada para dar esse tempo de resposta instantâneo. Porém, com Ajax não dá pra fazer tudo que o Flash faz. Em 2003, escrevi um artigo pro Webinsider anunciando as Rich Internet Applications e levantei algumas vantagens que serão usadas na tabela comparativa abaixo:
Vantagens pro usuário
Flash |
Ajax |
|
|---|---|---|
tempo de resposta menor |
+ |
+ |
atualização em tempo real |
+ |
+/- |
atalhos no teclado |
+ |
+/- |
elementos gráficos mais leves |
+ |
- |
interface mais compacta |
+ |
+ |
interface animada |
+ |
+/- |
suporte a áudio/vídeo |
+ |
- |
acessibilidade |
+/- |
+ |
graceful degradation |
- |
+ |
não precisa de plugin |
- |
+ |
Vantagens pro desenvolvedor
Flash |
Ajax |
|
|---|---|---|
designers definem a aparência direto na ferramenta de desenvolvimento |
+ |
- |
maior flexibilidade para desenvolver interfaces inovadoras |
+ |
- |
linguagem de programação fácil de aprender |
+ |
- |
reduz a carga do servidor |
+ |
+ |
boa ferramenta de produção |
+ |
- |
E então Ajax vai ou não vai desinfetar o Flash? Não já já, mas se a Adobe bobear, é possível. A grande vantagem do Ajax é que ele atende aos padrões da W3C e, consequentemente, oferece maior acessibilidade e indexabilidade do que o Flash. A grande desvantagem a meu ver, é a falta de ferramentas de produção como tem o Flash, mas isso é uma questão de tempo para surgir.
Porém, mesmo que o Ajax vença o Flash na disputa pelas Rich Internet Applications, este não vai desaparecer. No seu nicho original, experiências multimídia na Web, ele ainda é imbatível.

Parabéns! Uma puta matéria, que dá até gosto de ler pela segunda vez. A primeira vez que vejo a abordagem do Ajax nesse sentido, e ainda com tanta classe!
Responder comentário
Olá, gostaria de deixar uma crítica MUITO construtiva: o Ajax NÃO é um concorrente do Flash. Ao escrever, parece que vc está respondendo a alguém que fez alguma crítica sem sentido ao flash, e partindo para o lado de fanatismo por uma tecnologia, e acho que isto não é bom para um colunista. Os bons profissionais que escrevem sobre o Ajax costumam citar as desvantagens dele na maioria das vezes e, apenas os mais inexperientes acham que o ajax deve ser usado em todo lugar. Outra coisa: a tecnologia ajax não tem nenhuma pretensão de criar interfaces gráficas portanto não pode ser considerada concorrente do seu flash. 3. Quase todas as desvantagens que vc citou do ajax TAMBÉM EXISTIRIAM se a mesma solução fosse desenvolvida com o flash. POR ISSO PARA CONCLUIR DIGO: ACHO QUE VC ESTÁ CONFUNDINDO AS COISAS. Porém, este artigo é muito bom para frear um pouco os ânimos dos inexperientes que acham que ajax é solução para tudo. Toda tecnologia tem seu lugar se for usada com cuidado e voltada para o usuário. Espero que não ache minha crítica muito ofensiva. Té mais...
Responder comentário
Olá Frederick,
Primeiramente gostaria de parabelizá-lo pelo reconhecimento que você vem alcançando.
Tudo se resume ao seu esforço em levar Usabilidade a frente e seus excelentes conhecimentos.
Sobre o título do seu artigo, na minha opinião o Ajax não está e nem vai concorrer com o Flash em nada.
As duas tecnologias não entram no mesmo meio de uso e podemos citar como exemplo próprias aplicações e exemplos já criados por cada uma delas.
Falemos do Gmail ou orkut, por exemplo, que são os representantes mais vulgares do Ajax. Pra que alguém desenvolveria essas aplicações em Flash? Não tem sentido.
Agora falando de animações e jogos dinâmicos e cheios de gráficos complexos para a internet, quase sempre feitos em Flash. Quando o Ajax entraria nesse mercado? Jamais!
As duas tecnologias podem ser usadas juntas, ajudando o desenvolvedor a criar aplicações, sites, serviços cada vez mais eficientes e interessantes para o usuário.
Mal vejo a hora dessa re-Evolução toda! :)
Mais uma vez, meus parabéns!
E nos vemos na premiação do iBest 2006 ;D
Um forte abraço,
Felipe Gomes
www.felipegomes.com.br | contato@felipegomes.com.br

Gente, estou comparando Flash com Ajax num nicho específico: Rich Internet Applications. Não caberia fazer uma comparação geral entre as duas tecnologias, mas nesse nicho faz sentido e é isso que faço no final do artigo.
Existem aplicações que combinam o melhor de cada tecnologia, como o www.flickr.com , por exemplo, mas são poucos os que podem fazer isso. Na minha opinião, o Ajax por enquanto é o que apresenta o melhor custo-benefício para esse nicho.
Mesmo que ele vença, isso não significa que o Flash vai desparecer. No último parágrafo deixo isso bem claro.

Frederick,
Sim, eu li o último parágrafo.
Porém continuo com a minha posição.
Depende também de que tipo de RIA se deseja desenvolver.
O Flash vai mais além do que o Ajax, a única desvantagem de RIA desenvolvido em Flash, que dá um ponto dos grandes a favor do Ajax é o preço, como você também disse.
Não estou aqui dizendo que seu artigo está errado, ou algo parecido, muito pelo contrário. É que existem opiniões diferentes para tecnolgias diferentes.
Muitos defendem o Ajax e outros muitos o Flash. Como eu disse acima, não existe o melhor nesse nicho. Depende do tipo de RIA pretendido.
Bom, é isso.
Um abraço,
Felipe Gomes
www.felipegomes.com.br | contato@felipegomes.com.br

Acho que o Frederick foi muito feliz em ilustrar o novo mercado e as novas tecnologias. Creio que a comparação foi feita para melhor entendimento, e sem o objetivo de levar ao pé da letra, já que não haveria cabimento. Creio que o artigo conseguiu atingir seu objetivo e mostar um pouco do que vem ocorrendo.
Responder comentário
Olá Frederick, gostei muito da sua materia expondo sua opinião e exemplos atuais do AJAX na web mas não concordo com algumas de suas afirmativas.
Veja bem, em alguns casos de vantagens e desvantagens o critério a ser avaliado saiu do contexto em foco. Na verdade o AJAX em si não passa de algumas linhas de código que sempre fará as mesmas operações. O que irá mudar na aplicação web é a forma de como você irá tratar os dados enviados ou recebidos. Então na verdade não se tem um aprendizado sobre AJAX. A forma como você irá montar o AJAX é sempre o mesmo. Quero dizer que não se pode por a culpa no AJAX de problemas de usabilidade e design. Podemos sim estar levando em consideração o tempo de resposta, custo e outras coisas. Quanto a atalhos no teclado, interface, elementos gráficos e acessibilidade, isso é dever do web designer e do web developer e não tem ligação com o AJAX. Eu sou o mais novo moderador de Javascript do fórum do iMasters e posso então te afimar com certeza que o AJAX pode ser invocado por atalhos no teclado e outros N modos. Aliás, recentemente acabei de construir uma aplicação em AJAX onde as operações de gravação, exclusão de registros e outras peculiaridades podem ser executadas através do teclado e do mouse de acordo com o gosto do freguês. Em um futuro próximo pretendo publicar um artigo onde o foco seria Usabilidade e Dinamismo, onde eu relataria justamente as formas de integração do usuário e o AJAX. A respeito de uma briga entre AJAX (Javascript) e RIA (Flash), devemos pensar que são somente modos de se chegar á um resultado. O que é possível fazer com um é possível fazer com o outro. Pode ser mais trabalhaso fazer no AJAX do que utilizado RIA ou vice-versa, mas o que os dois métodos fazem básicamente é a mesma coisa. Quando se escolhe sua aplicação ou site vai ser em Flash ou HTML, você deve escolher as ferramentas de acordo com seus pré-requisitos como velocidade de resposta, interface e por aí vai. Foi o caso do gmail. Já falei demais então. Fica aí minha opinião registrada. Abraços e até mais!

Complementando o que o Diego falou, acredito que há apenas uma diferença de realidades, de estilos
de trabalho. Não vejo nenhum conflito REAL entre as tecnologias citadas.
O importante é conhecer o potencial e saber usar cada ferramenta disponível sem se ater a
nenhuma, afinal, cada caso é um caso. Claro, há sempre aqueles profissionais que só fazem sites inteiramente
em Flash, geralmente sites de apresentação de empresas (apesar de muito se falar em sites comerciais todo em Flash); ou fazem uma animação que faz
sempre o mesmo movimento e dizem que o site é dinâmico; ou pior, colocam aquelas introduções que impedem
que você retorne a tela anterior; e que ficam enciumados quando alguém faz alguma coisa diferente em Flash.
Também há os que fazem tudo com JScript, até o que não precisa; Por exemplo, é incrível
como o site BondFaro está sujo com JScript, chegou até a dar erro e encerrar o meu browser, nunca
mais acesso esse site. Algum estagiário que acabou de aprender JScript se empolgou e encheu o site de lixo.
E quanto às comparações também achei divergentes e nada imparcial; Claro que procurando
"Bach" ou qualquer outra coisa vai aparecer link patrocinado, afinal o Terry não criou o Yahoo apenas por caridade.

Independente disso, é sempre bom ter um artigo que incentive a discussão sobre diferentes e novas realidades e pontos de vista.
Responder comentário
Apagou os comentários porque? Algum problema técnico? . . . democracia zero!!!
Responder comentário
Ops. desculpem... apareceram denovo. Deve ser algum problema com o script do imasters. Infelizmente não é possível eu apagar meu comentário abaixo.
Responder comentário
Artigo muito bom! Parabéns... mas vamos ser sinceros, esse negócio de querer padronizar a web é contra até o próprio sentido da web, que sempre foi a liberdade e a inovação, trazendo inclusive novas tecnologias... Muito se fala sobre acessiblidade, não sei você, mas muito mais por moda e status... algo que já aconteceu com o super "flash" tempos atrás... Ajax ou Flash. O que fizermos, façamos bem feito.
Responder comentário
O uso indiscriminado do AJAX prejudica sim, mas me diga alguma coisa cujo uso indiscriminado não seja prejudicial?
Veja que problemas de usabilidade podem aparecer sim, como nos casos que vc mostrou, contudo parte deles não são conseqüencias do uso desta tecnologia, são simplesmente erros na usabilidade.
O mercado Web é recente comparado com outros mercados, porém sua dinamica é diferente. É preciso pensar sempre no futuro, sem esquecer o passado, claro, senão ficamos para trás muito rápido. As tecnologias na web se difundem muito depressa na rede, o que pode ser perigoso, mas senão abraçarmos todas as tendencias e soubermos usa-las nunca saíremos da velha visão de Internet como outra qualquer mídia.

Meu amigo. Seu bla bla blá expõe o seu radicalismo pessoal. O ajax é uma "novidade" bem vinda! Achar que o usuário está acostumado a esperar é meio absurdo...
Concordando com o comentário do Pierre Sandora os exemplos e erros apontados estão muito mais relacionados ao uso que desenvolvedor fez do que à tecnologia em si. A questão de existir uma "resposta" a ação do usuário pode ser facilmente resolvida pelo programador/design.
Acreditar que o flash resolve as questões do ajax? Onde estamos? O flash é contraditório às questões de acessibilidade. Tem peso de carga e, dependende da máquina do usuário para seu processamento. Mas apesar de tudo existem momentos realmente perfeitos para se desnvolver em flash.
Da mesma forma o ajax não deve ser usado com exageros, e, quando usado, deve ser bem utilizado. A agilidade proporcionada em alguns sites e, principalmente aplicações (sistemas) web é muito interessante.
Aliás, utilizar a web para aplicações é o que há. Existe uma tendência clara de adaptação e produção de sistemas corporativos em plataforma web, ou será que os bancos enlouqueceram? E nesse aspecto o ajax ajuda e muito... Mas me desculpe... esqueci que você não é programador... não deve saber do que estou falando...

Caro amigo, concordo com a maioria das opiniões dos amigos. Muitas partes de seu texto vai completamente contra os conceitos de usabilidade. Você coloca como desvantagens recursos excelentes de usabilidade que a tecnologia AJAX está nos proporcionando. Utilizando AJAX podemos extender muitos recursos para web que já são utilizados por softwares (desktop) e que sabemos que melhoram a usabilidade do sistema. Outra coisa que você precisa saber, o OPERA não é o único navegador que existe, ok? É um navegador muito bom etc.. etc... mas ainda existe o IE e Firefox. Queira você ou não, a GRANDE PARCELA dos internautas ainda utilizam o IE para sua navegação, então se funcionar no Opera e não funcionar no IE, prefira que funcione no IE!
Quanto a sua comparação do AJAX com o FLASH, acho que você quis comparar 2 coisas completamente diferentes, não foi feliz...
Enfim, creio que sua matéria, apesar de grande e cheia de citações, no modelo que gosto, não foi interessante talvez pelo seu desconhecimento no assunto.

Oi Fred, prazer em ver voce fora do seu Blog pra variar. Meninos resolvi dar uma pequena contribuição, não se esqueçam sou apenas um TIO idoso da época dos valvuládos. 1_ Ainda me lembro quando o Java ia tomar conta de Tudo. 2_Não me recordo desse AJAX 3_Adoro Flash, e o fato dele forçar a existência de banda larga já serviu para justificar essa tecnologia. 4_A W3C precisa ser revista pra ontem 5_Testo tudo em IE 5.0 isso mesmo 5.0, tem um ziborolhão de gente no mundo que ainda usa o 5.0. 6_ Quanto ao Ópera prefiro Aida de verdi. E vê se param de esculhambar com o articulista, mania de católico que todo mundo tem que ter a mesma opinião,. Opinião é opinião.
Responder comentário
Tenho uma pergunta para
esse ser!
Você é programador ?
É incrível como as pessoas entram nessa matéria e a parabenizam!
Fico perplexo, como pode ser isso ?
Esta matéria se trata de pura preferência pessoal, o que eu não acho profissional da parte desse colunista!
Ele deveria ser imparcial se tratando de um assunto novo, e com certeza ele não tem domínio sobre ele, já que com certeza ele não faz a mínima idéia de que programação bem estruturada é uma coisa extremamente complicada.
Mais fazer o que ???
Existem pessoas como essas, que escrevem isso, e pessoas que lêem isso e ainda acham muito bom.
Péssimo !!!

Sinceramente, caro author voce está um pouco equivocado quanto a muitas coisas do seu POST, Primeiro ajax funciona sim no Opera e sem dificuldades, segundo comandos de teclado tambem funciona e sem dificuldades isso é o programador que determina se há necessidade de utilizar os comandos de teclado ou não, Terceiro pra que comparar coisas totalmente diferentes FLASH e AJAX sao tao diferentes quanto Pão e o Abacaxi. se a ADOBE Bobear como você falou, se você nao sabe ou está desinformado a ADOBE lançou um framework de desenvolvimento de aplicações em ajax. procura se atualizar um pouco mais, gostei do que voce disse mais as criticas que você fez a linguagem foi direcionada errada. por que o que voce citou de desvantagens é falha de programação e falta de projeto. e outra o problema é que você como colunista falando de novas tecnologias fica se espelhando em um país especifico, se está comentando sobre uma nova tecnologia tem que ver o mundo em sua volta. ok? então é isso daí. leia um pouco mais sobre o assunto estude mais... para depois falar sobre.. :) ajax é muito bom. não vai dominar o planeta e nao vai fazer as horroridades que o flash faz. são ferramentas diferentes. e pra web pode-se criar sim ambientes de aplicativos on-line, o mundo está se evoluindo para isso.
um forte abraço e obrigado
breve falarei mais sobre ajax em meu blog. http:\\blog.wilker.com.br

Realmente não concordo com Frederick pois ele me pareceu um pouco preconceituoso quanto ao flash e acho os comentários dos meus amigos que aqui postaram corretos pois prezam a liberdade de cada um poder usar e empregar da melhor forma as duas tecnologias, sendo que cada um tem a sua utilizações e ambas possuem recursos diferentes não sendo concorrentes uma da outra, basta saber utilizadas no lugar certo e no projeto certo.
Responder comentárioOs 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.
Frederick van Amstel é designer de interação, mestrando em Tecnologia pela UTFPR e Bacharel em Comunicação Social com habilitação em Jornalismo pela UFPR. Edita o blog/podcast Usabilidoido, Top 10 do Ibest em 2005.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.