BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

Google Dart, outra alternativa a JavaScript: tipos opcionais, sintaxe familiar e ferramentas

| por Werner Schuster Seguir 4 Seguidores , traduzido por Michel Graciano Seguir 0 Seguidores em 17 out 2011. Tempo estimado de leitura: 2 minutos |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

[Esta nota foi melhorada e enriquecida pela equipe editorial do InfoQ Brasil]

Lars Bak, criador do V8, o engine JavaScript do Google Chrome, e Gilad Bracha anunciaram durante seu keynote na GotoCon na Dinamarca, a nova linguagem Dart.

A linguagem, proposta pelo Google como uma alternativa ao JavaScript, foi apresentada como um preview de tecnologia, e ainda não está disponível no Chrome. Tem sintaxe familiar para os desenvolvedores Java e JavaScript e suporte a concorrência no estilo Erlang/Actor. 

A nova linguagem oferece herança simples baseada em classes e traz suporte a interfaces. Outras características são tipos estáticos opcionais e tipos genéricos reificados, além de escopo léxico real e threads simples. São suportadas também a sobrecarga de operadores e a interpolação de strings ("Hello ${texto}"), além da sintaxe Lambda: (x) => x.

O exemplo abaixo, adaptado da documentação, demonstra um pouco da sintaxe da linguagem.

interface Forma {
num perimetro();
}
class Retangulo implements Forma {
final num altura, largura; 
Retangulo(num this.altura, num this.largura);  // Sintaxe compacta de constrututor num perimetro() => 2*altura + 2*largura;  // Sintaxe curta para funções 
}
class Quadrado extends Retangulo {
Quadrado(num tamanho) : super(tamanho, tamanho);
}

Em Dart, mesmo se os argumentos ou variáveis forem definidos com tipos incorretos, o código poderá ser executado; entretanto as ferramentas irão avisar sobre inconsistências.

As interfaces em Dart suportam implementação através de factories; por exemplo, a interface Pessoa teria uma factory PessoaFactory. Interfaces têm construtores; chamadas ao construtor são direcionadas à factory definida na interface.

A concorrência em Dart é implementada com Isolates. Cada Isolate é um processo conceitual, no estilo da linguagem Erlang. Não há compartilhamento e a comunicação ocorre via passagem de mensagens. Isolates têm uma ou mais "portas" e podem ser executados em paralelo.

A distribuição do Dart inclui um conjunto de APIs básicas para estruturas de dados e operações, mostradas na figura abaixo (extraída da documentação técnica do Google).

O compilador DartC é capaz de compilar o código para JavaScript comum; ou o código em Dart pode ser executado em uma VM dedicada. Uma terceira opção é utilizar ferramentas que acompanham a Dart para criar uma imagem do heap de uma aplicação e empacotá-la em um formato otimizado, que pode ser carregado quase que instantaneamente, de forma similar ao sistema de imagens do Smalltalk.

Entre as ferramentas oferecidas estão plugins para Eclipse, com auto-complementação de código e outras facilidades.

É possível baixar uma versão preview da linguagem no site oficial ou no Google Code do projeto. Os interessados nos detalhes de implementação da linguagem podem examinar a especificação da linguagem (pdf).

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

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT