Microsoft Volta: balela

19/12/2007 | Tags:, , | Escrito por: Dirceu Pauka Jr.

Balela aqui é uma referencia a um blog do Manoel Netto que tem como título “seu repositório de boatos virtuais e outras pragas” (blog Balela), nesse artigo eu vou explicar por que na minha opinião o Volta da Microsoft é pura balela.

Microsoft Volta[bb]Ele causa impressão errada sobre o que realmente é, propositalmente. Em diversos blogs (como por exemplo no Virtual Dreams) ele é anunciado como a solução para todos problemas. Segundo os blogs que noticiaram sobre o assunto, o desenvolvedor que usar o Volta conseguira nada menos que: “uma aplicação Cross-browser, Multi-camada, Sem dependência de plugins de qualquer gênero, Rodando no cliente ou no servidor, Com AJA* (chamadas assíncronas), Com user controls, Com gráficos e animações, Com 3D e Tudo em DHTML!”.

Vamos inverter a ordem dos itens para facilitar o entendimento da enganação

Tudo em DHTML! (HTML+JavaScript)

Ah! A grande balela. O que torna todas características não explicitamente indicadas como não balela abaixo, cegas.

Cross-browser

Para ser cross-browser a aplicação precisa usar os recursos já presentes nos grandes navegadores e conseguir distinguir qual navegador está fazendo a requisição para enviar a resposta com ajustes para cada incompatibilidade. Nenhum problema, seja diferenças de renderizar CSS ou processar JavaScript isso é possível de contornar de forma fácil. O que melhora usando um framework como o Volta é que ele vai lidar com essa característica sozinho, tirando a preocupação do desenvolvedor. Ok, isso é bom, então vamos deixar isto como não balela (por enquanto).

Multi-camada

As aplicações .NET[bb] são realmente divididas em camadas. Algo como um MVC que eles não chamam disso, mesmo tendo a camada de dados (model), camada de apresentação (view) e camada de negócios (control). Outra não balela então, ok?

Com gráficos e animações, Com 3D

Ok, vemos isso na web todos dias seja em Flash[bb], Silverlight ou Applet Java. Mas o Volta promete isso sem o uso de nenhum plugin. Só com DHTML e isso é o grande problema, como já dito é a grande balela. Não é possível usar JavaScript de forma eficiente para isso, saiba por que no próximo item.

Sem dependência de plugins de qualquer gênero

Isso é pra deixar claro que não será necessário ter instalado um Silverlight, Flash ou qualquer tipo de recurso fora do navegador. Reforçando que DHTML basta. Quer dizer que o Volta converte a aplicação para JavaScript. Mais especificamente ele detecta se o usuário possui algum CLR (tipo Silverlight) instalado e caso não tenha, retorna a aplicação em JavaScript. Realmente rodando em DHTML. O grande problema é que JavaScript além de não ter certas permissões no sistema que o Flash ou Silverlight possuem, ele não possui performance para rodar a mesma aplicação desenvolvida para Silverlight (ou Flash) com gráficos e animações 3D, JavaScript não feito pra isso!

Rodando no cliente ou no servidor, Com Ajax[bb] (chamadas assíncronas), Com user controls

Novamente eles adoram encher lingüiça e citar como se fosse uma grande evolução características já existentes em aplicações e frameworks há tempos.


Se você quer sentir na pele a impossibilidade de fazer aplicações com as características citadas, salve o que estiver fazendo e tente abrir um dos exemplos: http://labs.live.com/volta/samples.aspx. Sinta na pele que não é possível rodar bem algo muito complexo em JavaScript.

E mesmo que no site do projeto eles dizerem que realmente não roda rápido por que não foram feitas otimizações no código para rodar em JavaScript, pode ter certeza que por mais que seja otimizada a parte do Volta com o JavaScript não será possível ser feito algo como o prometido, simplesmente porque JavaScript não foi feito paraisso.

Só será possível se por parte de quem desenvolve o JavaScript for lançada uma nova versão com características de desempenho melhor para aplicações visuais (3D). Coisa que demora e tem que ser bem discutida por todos fabricantes de navegadores.

Pela falsa promessa da Microsoft de prover uma maneira fácil dos desenvolvedores fazerem tudo isso somente com DHTML e usando a plataforma .NET, o Volta é uma balela!