Dia 6 de fevereiro de 2018 o time Asp.Net da Microsoft anunciou que o Blazor faz parte do Stack WebAssembly/.Net
O Webassembly vem sendo discutido desde 2015 na comunidade W3C por empresas como Microsoft, Google, Mozilla, Apple, alem de membros da comunidade, sobre o futuro das paginas Web.
Vamos falar mais sobre o WebAssembly. Desmitificar o que alguns entusiastas dizem ser a morte do JavaScript!
O WebAssembly
De acordo com o WebAssembly.org o WebAssembly (wasm) é um formato portátil para execução, carregamento, verificação e exibição de modelos de código. Projetado para servir como um alvo de compilação de linguagens de baixo nível. Como C/C++/RUST para a web.
Em outras palavras:
É uma melhoria do Javascript: Pode ser implementado em C# ou qualquer outra linguagem que dê suporte a WebAssembly. E simplesmente importá-la como uma biblioteca JavaScript!
Uma nova linguagem: Foi definido o padrão AST (Abstract Syntax Tree) pelo W3C. Que representa um formato binário. Sendo possível debugar no formato texto.
Uma melhoria do browser: Novas versões dos browsers irão entender esse formato binário. Significa que podemos criar pacotes menores do que os atuais Javascript. Que utilizam o uglify. E não precisam serem criados em Javascript. Pacotes menores são entregues mais rápidos, tornando a web melhor e mais performática!
O padrão Wasm sera o responsável por compilar os códigos de uma linguagem específica para binário, o que torna seu desempenho superior e seu pacote menor. Melhor que tudo que há hoje em dia na Web. Ha processos semelhentes. Como ao escrever em typescript e usar um transpile, como babel, para gerar um Javascript ES5, ES6.
O time do Wasm inclui pessoas da Microsoft, Google, Mozilla, Apple e mais algumas pessoas da comunidade W3C.
O WebAssembly estará sob cuidados do W3C. Assim como HTML, CSS e Javascript estão hoje!
Existe uma entrevista onde Brendan Eich explica porquê a industria precisa do WebAssembly e aborda o grande diferencial da tecnologia: O tamanho do pacote. Como isso pode tornar a Web mais rápida. Melhorando, sobretudo, a industria dos games.
As maiores empresas de software estão trabalhando nessa tecnologia. É de se esperar que cada uma delas apresente sua proposta para o padrão Wasm.
Blazor - O jeito da Microsoft entrar na jogada
Blazor é uma tecnologia experimental. Desenvolvida por Steve Sanderson, Engenheiro da Microsoft. Em fevereiro de 2018, foi oficialmente adotada pelo time de ASP.net. Incluído no Stack do WebAssembly/.Net.
Para cria-la Sanderson se inspirou em outros Frameworks já existentes do JavaScript. Como o React, Vue e o Angular. Assim nasceu o Blazor.
Ao invés de ter uma grande dependência do JavaScript. Com bibliotecas notoriamente complexas. O framework permitirá que os desenvolvedores usem as tecnologias existentes da Microsoft. C#, Razor, HTML e CSS para desenvolver o website.
Atualmente a versão está em alfa. A Microsoft ainda não recomenda sua utilização em produção. No futuro, porém, o Blazor terá todas features de uma Framework moderna. Como:
- Rotas
- Layout
- Forms e Validation
- Injeção de dependência
- Interop com JavaScript
- Renderização server-side
- Completa integração com .net para debugar tanto no Browser como na IDE
compatibilidade com os antigos browsers ( que não possuem Wasm) através do asm.js
Minhas considerações
Em breve o Webassembly fará parte de nossas vidas. Quando grandes empresas trabalham juntas, demonstram empenho e apresentam tecnologia para um problema. Pode esperar por mudanças no cenário.
Como toda nova tecnologia hype é dever dos arquitetos e desenvolvedores ficar antenados com o rumo da tecnologia. Não adota-la em produção. Ter cautela, pois ainda esta em fase Alpha. Apenas utilizá-la para fins educativos.
As primeiras versões quando não tem grandes bugs as atualizações costumas ter grandes mudanças. Impactando o código existente. Gerando a necessidade de modificar o código. E custoso manter a aplicação atualizada.
Nesse momento pode surgir questões de segurança. Das quais os desenvolvedores web ainda não estão acostumados ou preparados para lidar. O interpretador de Javascript dos browsers atuais já são maduros. E estão bem protegidos contra código malicioso.
Definitivamente o Wasm é encantador mas não é o matador do JavaScript como dizem alguns entusiastas. Brendan Eich, criador do JavaScript e atualmente envolvido no projeto do wasm, disse que este não é o propósito do projeto. O objetivo é tornar a web de 20 a 30 vezes mais rápida do que é hoje. Com pacotes menores é possível ter aplicações mais complexas sem ter um custo alto de tráfego. Ele cita que a industria de games sera um grande beneficiado.
We’re not killing JavaScript. I don’t think it’s even possible to kill JavaScript.
(Nao estamos matando o Javascript. Nao acho que seja possível mata-lo).
- Brendan Eich
Só espero que o Chrome não roube a memória que o Wasm vai poupar #farpas.
O consumo de memória que o Chrome está utilizando nesse momento enquanto escrevo esse artigo:
Comments