Depois de adicionar suporte a mais processadores em Março, o projeto Google's Native Client (NaCl) foi movido da versão de pesquisa e foi lançado um SDK ainda em versão preview, com esse lançamento já é possível escrever aplicações NaCl de forma rápida e já ter algumas impressões sobre esse novo conceito.
Lançado a cerca de um ano atrás como versão de pesquisa, o Google NaCl possui uma proposta interessante: rodar código nativo direto no browser através de uma sandbox que faz com que o código rode diretamente no cliente. O objetivo segundo o Google é manter a neutralidade do browser, portabilidade entre OS's, e a segurança que as pessoas esperam de uma aplicação web. Para os desenvolvedores o Native Client irá ajudar a criar clientes mais ricos e aplicações mais dinâmicas no browser.
Para aqueles que têm dúvidas sobre a segurança fique traquilo, o Google possui um scanner de código dentro da sandbox que, antes de executar qualquer código, verifica se existe alguma operação maliciosa e a mesma é bloqueada. De acordo com o Google, o NaCl compartilha os mesmos problemas de segurança que o Javascript.
Uma outra parte interessante do projeto Native Client é o Portable Native Client (PNaCl) (PDF). O PNaCl quebra a execução de um programa NaCl em duas partes fazendo com a a mesma funcione em diversos processadores de processadores. Ele possibilita que o browser converta o código em binário nativo para qualquer tipo de processador, sem a necessidade de acessar o código fonte. Bem, para entendermos melhor vamos entender veja o que ele faz.
Origem: Google
O primeiro passo é converter o código em um bytecode LLVM, que é um estado intermediário. Depois disso os módulos NaCl específicos para uma cada arquitetura de processador são detectados pelo PNaCl. Esses modulos então traduzem o bytecode em código de máquina para a arquitetura correspondente (é nesse momento que o módulo de segurança é ativado verificando se existe algum código malicioso). Claro que todo esse processamento leva um tempo considerável, porém o Google pretende otimizar o mesmo.
Com certeza o NaCl vêm para trazer um grande poder para as aplicações web, com ele será possível utilizar recursos de hardware nativo sem a necessidade de se instalar nenhum plugin, utilizando recursos que já estão instalados, nativamente na máquina.. Alguns exemplos do poder do NaCl já estão disponíveis na web, como por exemplo rodar o jogo Quake diretamente no browser, siga as instruções para instalar o Native Client e conseguir ver os exemplos.
Para aqueles que desejam escrever aplicações NaCl é necessário fazer o download do último build do Chromium e do NaCl SDK (é necessário iniciar o chromium com a flag --enable-nacl). Para mais informações sobre o NaCl assista o vídeo oficial do google ou acesse o site oficial do projeto.