BT

Novidades do Google Dart: compilador Frog, IDEs binários e propostas para o sistema de tipos

por Werner Schuster , traduzido por Adalberto Zanata em 19 Dez 2011 |

O Google está tornando mais simples experimentar com a linguagem Dart. Estão disponíveis versões compiladas do Dart Editor, o IDE da linguagem baseado no Eclipse, além do novo compilador Frog, que transforma Dart em JavaScript e foi escrito em Dart pelo criador dos projetos Jython e IronPython. A equipe de desenvolvimento do Dart tem se dedicado a explicar o uso da linguagem, além de propor um sistema de tipos mais abrangente, incluindo tipos que permitem valores nulos, entre outras funcionalidades.

O Dart Editor, que é baseado em SWT/Eclipse, inclui agora o compilador DartC, suporte a gerenciamento de projetos, assistentes etc., além da possibilidade de executar aplicações compiladas com o DartC. O editor executa o verificador de tipos em todo o código e destaca os itens que apresentam problemas, tornando mais proveitosa a atuação do verificador de tipos.

O DartC, fornecido com o Dart Editor, é um compilador Dart para JavaScript e foi escrito em Java. A questão "Por que o DartC não foi escrito em Dart?" será aposentada em breve graças ao projeto Frog. O projeto Frog faz parte agora do repositório do Dart; está evoluindo de forma muito rápida, e é um bom exemplo de código em Dart.

O projeto Frog foi iniciado por ninguém menos que Jim Hugunin, o criador do Jython e IronPython, que agora trabalha no Google. Em trechos extraídos de uma mensagem de email, Jim fala sobre a sua experiência com o Dart:

Passei a maior parte da minha carreira tentando acabar com as batalhas entre os mundos dinâmico e estático; em vez disso tentei fazer com que cada um pudesse desfrutar os benefícios do outro. Foi ao escrever esse compilador em Dart, que encontrei, sem muito esforço a combinação desses mundos. [...]

O Dart me possibilitou, pela primeira vez, escrever código de forma muito dinâmica e adicionar verificações estáticas incrementalmente, na medida em que o design se torna mais estável ou quando a complexidade exige esse esforço.

O Google anunciou o Dart como um preview de tecnologia para obter o feedback e comentários da comunidade. A linguagem está longe de estar finalizada; detalhes importantes como o recurso de "reflexão" estão sendo tratadas nesse momento. A comunidade logo começou a se manifestar através da lista de discussões do Dart e na web.

Um exemplo foi a proposta feita por Bob Nystrom (que faz parte da equipe do Google Dart), sobre a possibilidade de se adicionar tipos nullable à linguagem. A ideia básica é que todos os tipos não aceitem o valor null, mas ao se adicionar o sinal de interrogação às anotações de tipo, seria permitido ao tipo aceitar null como valor.

Abaixo é citada uma das razões para a existência dos tipos "nuláveis", extraída da proposta.

Gilad Bracha descreveu o Dart como tendo um sistema de tipos "documentativo". Com tipos nullable e não-nullable, podemos agora utilizar anotações de tipos para indicar aos usuários das nossas APIs quais itens aceitam receber o valor null e quais não aceitam. Em outras linguagens não se tem escolha, a não ser a de se explicar os detalhes na documentação. No Dart, a indicação fica na própria assinatura do método. Se for chamado o método (Tipo a, Tipo? b), fica claro que pode receber o valor null no segundo argumento, mas não no primeiro.

Os tipos nullable e ideias similares não são novos. Aparecem em outras linguagens como parte do sistema de tipos ou, por exemplo, na forma de anotações Java como @NotNull. Mas considerando o transtorno que o valor null tem causado, essa pode vir a ser uma característica muito útil.

Gilad Bracha, que integra a equipe da linguagem Dart, ministrou recentemente uma palestra onde apresentou algumas das ideias por trás do sistema de tipos opcionais, citando a documentação em código como sendo a contribuição mais importante.

Assim como as anotações Java ou atributos C#, as anotações de tipos do Dart são opcionais e não têm impacto direto no comportamento do sistema em tempo de execução. Um vídeo e a transcrição da palestra de Gilad, bem como a entrevista de Gilad sobre o Dart cedida ao Channel9, estão disponíveis na web.

Outro meio para se manter informado sobre o Dart é o blog DartWatch, que fornece notícias e explora também vários assuntos referentes ao Dart.

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 mensagens dessa discussão
Comentários da comunidade

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

Receber mensagens dessa discussão

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

Receber mensagens 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-2014 C4Media Inc.
Política de privacidade
BT