BT

Scala no Browser com Scala+GWT e um novo site de documentação da linguagem

por Mirko Stocker , traduzido por Thomas Sant'Anna em 02 Jan 2012 |

Grzegorz Kossakowski publicou a terceira versão milestone do Scala+GWT, projeto que permite escrever código em Scala e compilá-lo para JavaScript por meio do Google Web Toolkit (GWT). Com o Scala+GWT, é possível escrever código estaticamente tipado com menos código repetitivo do que em Java, além de se obter outras vantagens.

O InfoQ.com conversou com Grzegorz Kossakowski, principal desenvolvedor do Scala+GWT, para conhecer mais sobre o projeto e a nova versão. 

InfoQ: Nesta última versão do Scala+GWT quase todas as funcionalidades da linguagem Scala são suportadas. A notas do release citam que algumas funcionalidades de buscas baseada em padrões ainda não estão disponíveis, mas que serão suportadas na próxima versão. Há outras limitações?

Os tipos estruturais não são suportados, e não serão suportados sem que sejam feitas mudanças na arquitetura do GWT.

InfoQ: Existem características do Scala (da linguagem ou das suas bibliotecas) que são particularmente adequadas ao GWT? Talvez atores possam ser úteis na comunicação entre as partes cliente e servidora da aplicação...

Pensei em algumas possibilidades (incluindo atores), mas não houve nenhum trabalho nessa área até o momento. Estou envolvido intensamente nas tarefas relacionadas ao compilador e deixando que outras ideias sejam exploradas pela comunidade. Acho que seria interessante fazer a integração com frameworks construídos sobre o GWT. Um exemplo é o Vaadin, um projeto cujos participantes são bastante entusiasmados com Scala. Isso poderia ser benéfico para a linguagem, posicionando-a como opção para a criação de interfaces gráficas de qualidade.

InfoQ: Você sabe de usuários que rodam sites em produção usando o Scala+GWT?  

Não. Na verdade tenho deliberadamente reduzido as expectativas das pessoas quanto ao Scala+GWT, já que sei que ainda existe uma boa quantidade de trabalho a ser feita; além disso ainda estão sendo realizadas muitas mudanças internas. A não adoção em produção pode também ser um reflexo dos números de versões que venho usando; a última versão é a 0.1-M3. Espero que a próxima seja a 0.1. Só então vou começar a recomendar o uso em projetos reais. 

Em uma entrevista bem mais detalhada no site scala-lang.org, Grzegorz explica a história do projeto e o processo para a transformação de Scala+GWT em JavaScript. Usar Java como a linguagem intermediária entre Scala+GWT e JavaScript não seria possível, já que nem todos programas em Scala podem ser mapeados para código em Java válido. Para resolver isso, foi introduzida uma nova representação intermediária, chamada Jribble, que é essencialmente Java com algumas das restrições retiradas, além de mudanças no GWT que permitem que "compreenda" o formato do Jribble.

O desempenho é obviamente um dos problemas com passos intermediários; para atenuar o problema, o Scala+GWT inclui um plugin para o Eclipse que permite usar o módulo de desenvolvimento do GWT:

No modo de desenvolvimento, a compilação ocorre de maneira diferente. O compilador gera bytecode da JVM como normalmente faria, e o GWT executa esse código em um emulador da JVM. Quando o código em execução precisa ler ou gravar o estado do navegador, ele usa uma chamada remota (RPC) ao navegador associado e envia o resultado para a JVM. Quando linha é alterada e o código é recompilado, somente a mudança é recarregada na JVM, não havendo a geração do JavaScript. Esse processo requer apenas alguns segundos, mesmo para uma aplicação grande, ao invés dos minutos necessários para gerar o JavaScript completo. 

O Scala+GWT está disponível no GitHub e existe um vídeo demonstrando o projeto em uso no Youtube.

Novo site de documentação do Scala

Como parte de um esforço em andamento para melhorar a documentação do Scala, um novo website de documentação foi inaugurado, servindo como ponto de entrada para a documentação da API. O site também inclui vários tutoriais, um guia de estilo, referencias da linguagem e o wiki oficial do Scala. Os usuários podem comentar em todas as páginas. 

Para quem quiser contribuir, o fonte em Markdown do site está disponível no GitHub. Basta fazer um fork e realizar as mudanças ou correções. O site foi construído usando o Jekyll, um gerador de sites estáticos escrito em Ruby.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT