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.

Avalie esse artigo

Relevância
Estilo/Redação

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
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.