Nota: Participe da comunidade Dart de língua russa no Telegram , Slack e Google+ . E no final do artigo, você encontrará um pequeno anúncio.
O renascimento do Dart como uma linguagem de programação popular para desenvolvimento móvel e web
Hoje anunciamos o lançamento da versão estável da linguagem de programação Dart - 2.0, bem como da plataforma web Dart, que oferece uma combinação única de produtividade, desempenho e escalabilidade.

Os desenvolvedores do Flutter aproveitam os muitos recursos do Dart 2, pois o Flutter usa versões de pré-lançamento do Dart 2 SDK há vários meses. No entanto, o lançamento da versão estável do Dart 2 é outro passo importante para o lançamento do Flutter devido à forte conexão entre a estrutura e o idioma. Se você ainda não instalou o Flutter,
tente agora .
Com o lançamento do Dart 2, agora e os desenvolvedores da Web também podem usar esta versão da linguagem, todas as bibliotecas e ferramentas receberão diversas melhorias específicas da Web. Todas as informações necessárias sobre a instalação e criação do primeiro aplicativo podem ser encontradas
aqui .
Dardo: crescente popularidade
O Dart 2 é um marco importante no caminho para revitalizar o Dart como uma linguagem de programação popular focada no desenvolvimento rápido e conveniente de aplicativos móveis e da Web. Queremos que os desenvolvedores que criam aplicativos clientes sejam produtivos: com uma linguagem, estrutura e componentes que reduzam o código padrão e permitam que se concentrem na lógica de negócios, além de ferramentas que identifiquem erros nos estágios iniciais, ajudem na depuração e gerem compacto e código rápido.
Vimos um aumento acentuado na popularidade da Dart no ano passado. Nossa própria análise mostra um aumento de dez vezes no uso externo. No último trimestre, o Dart foi
um dos idiomas de
mais rápido crescimento no GitHub, medido por solicitação de pull;
as perguntas crescentes no StackOverflow também mostram uma tendência positiva na popularidade do Dart:

Para o Google, o Dart é um dos poucos idiomas que usamos para desenvolver aplicativos da Web com milhões de linhas de código de vários projetos diferentes, incluindo Google Ads, Google Shopping e nossos próprios projetos de infraestrutura interna.
De fato, você já pode usar o Dart sem perceber: o popular
pré-processador do estilo Sass foi
reescrito recentemente
para o Dart para torná-lo mais rápido, mais portátil e mais fácil de desenvolver. Agora, o Sass é distribuído como um executável independente no Homebrew e no Chocolatey e compilado para JavaScript no npm. O Dart facilita a instalação de aplicativos em qualquer lugar sem dependências externas, bem como a implantação de fluxos de trabalho para usuários que escrevem no Dart, assim como para usuários que não o fazem.

O Dart 2 se concentra em três aspectos:
fortalecendo e reforçando o idioma, desenvolvendo nosso suporte para plataformas da Web e móveis e criando ferramentas e componentes que suportam o uso do Google Dart para o mundo exterior. O restante deste artigo abordará esses três tópicos.
Dart 2: uma linguagem otimizada para o desenvolvimento do cliente
Como
dissemos em fevereiro (
versão russa )
, o sistema do tipo Dart é
explícito . Isso significa que, antes que os usuários iniciem seu aplicativo, ele passará pelo estágio de análise e compilação, durante o qual uma grande classe de problemas é frequentemente descoberta. Quando escalamos o Dart para aplicativos extremamente grandes no Google, o sistema de tipos detectou muitos erros em um estágio inicial de desenvolvimento, o que levou à criação de um código melhor.
Com o Dart 2, você não pode entrar em um estado no qual uma expressão é executada com um valor que não corresponde ao tipo estático dessa expressão. Isso significa que você pode dimensionar sua base de código para milhões de linhas, refatorar grandes projetos e implantar seu código na produção, confiando nele.
Não se preocupe:
explícito não significa montanhas de códigos desnecessários. O sistema de tipos inclui saída estendida - mesmo para argumentos de tipos
genéricos .
final _field = [3.14, 6.28]; void main() { // , <int> print([1, 2, 3].runtimeType); // List<int> // , // int (1) double (3.14) `num` print([1, 3.14].runtimeType); // List<num> // print(_field.runtimeType); // List<double> }
Saiba mais sobre o sistema do tipo Dart 2
nesta página.
Como mencionado nas postagens anteriores do blog, o Dart 2 também reduz o ruído do idioma em várias áreas principais: por exemplo, a
nova palavra-chave agora é opcional e a palavra-chave
const é opcional no
contexto apropriado .
Finalmente, fizemos muitos trabalhos nos bastidores para unificar as várias ferramentas auxiliares, que agora estão unidas por uma
interface comum que suporta nossos compiladores e
tempos de execução . Isso fornece consistência aos nossos usuários e promete melhorar a velocidade e a qualidade dos novos recursos, à medida que o Dart continua a evoluir.
Dart 2 na Web: estrutura rica e poderosa
Os aplicativos da Web desde o início têm sido fundamentais para a missão de Darth. De fato, a maioria dos desenvolvimentos Dart do Google são para aplicativos da web. Um dos maiores é o Google Ads, que fornece bilhões de dólares em economia online. No processo de portar código para o Dart, eles reduziram o tamanho da base de código da interface do usuário em 40%, melhorando o desempenho e a qualidade do aplicativo.
Embora o Dart SDK principal forneça bibliotecas para acessar as modernas APIs do navegador, também oferecemos suporte a uma estrutura robusta baseada em Angular para criar aplicativos da Web complexos.
O AngularDart 5 , enviado como parte do Dart 2, aproveita o sistema
explícito do tipo Dart e o
novo sistema de compilação (descrito abaixo) para que o usuário possa usar compilações incrementais rápidas durante o desenvolvimento e JavaScript compilado mais compacto.
Uma das principais direções nesta versão foi reduzir a quantidade de código processado quando a página é carregada, o que reduz significativamente o "tempo de interatividade" das páginas da Web. Em muitos aplicativos, o tamanho do código foi reduzido em mais da metade em comparação com o AngularDart 4.
Para demonstrar as melhorias na plataforma web Dart, criamos uma
implementação de cliente baseada em Dart para o site HackerNews como um aplicativo web progressivo; é publicado juntamente com outros exemplos no popular site da
HNPWA . Usando as práticas recomendadas para criar aplicativos da Web no Dart, conseguimos criar um aplicativo totalmente funcional que é totalmente interativo em um segundo em dispositivos modernos e até cinco segundos em um modesto dispositivo móvel em uma rede 3G lenta. Isso é competitivo mesmo quando comparado a estruturas da Web leves otimizadas para aplicativos pequenos.
https://hnpwa.dartlang.org/Nossos investimentos em infraestrutura também se estendem à nossa
biblioteca de componentes , que também atualizamos. Agora você tem acesso a 100 novas classes, incluindo vários
componentes de material . Você pode explorar todos os nossos componentes na
galeria de componentes .
O Selecionador de data do material é um dos componentes disponíveis para o seu aplicativo da web.
Kit de ferramentas para Dart 2
Juntamente com o Dart 2, o Dart se torna a linguagem de primeira classe compilada em JavaScript, com o ciclo de desenvolvimento esperado pelos desenvolvedores da Web e excelentes recursos de desempenho em tempo de execução. Isso é alcançado graças às vantagens que a maioria das linguagens orientadas a JS não oferece: um sistema de tipo
explícito e excelente suporte para aplicativos móveis nativos.
Com o Dart 2, nossas ferramentas da web abrangem um modelo de desenvolvimento 100% JavaScript com dois compiladores JavaScript adicionais. O compilador de desenvolvimento,
dartdevc , fornece compilação incremental rápida ao gerar JavaScript fácil de ler e depurar. Isso permite que o compilador
dart2js se concentre na criação de JavaScript altamente otimizado para aplicativos da Web avançados para aplicativos de desktop corporativos móveis e complexos. Ambos os compiladores usam o sistema explícito do tipo Dart para otimizar sua saída.
Nossas ferramentas da Web são baseadas em um
novo sistema de compilação projetado para ser rápido, depurado e extensível. Agora, tarefas como gerar código de serialização, compilar Sass em CSS e compilar Dart em JavaScript, tudo acontece em uma cadeia de ferramentas, que suporta atualizações rápidas e incrementais à medida que partes de seu aplicativo mudam. O sistema de compilação também foi projetado para suportar o uso fora da Web. Exemplo: é usado pelos desenvolvedores do Flutter para gerar código para
serialização no JSON .
Juntamente com o Dart 2, temos um conjunto expandido de ferramentas para desenvolvedores. Além de oferecer suporte às ferramentas
Android Studio e JetBrains, incluindo
IntelliJ IDEA e
WebStorm , também oferecemos suporte ao
Visual Studio Code com a extensão
Dart Code . E também temos uma plataforma para experimentação: o
DartPad , que foi completamente atualizado para o Dart 2.
Por fim, o Dart SDK vem com um conjunto de outras ferramentas úteis: um gerenciador de pacotes que funciona com nosso
site , um
analisador estático , um linter que você pode usar na linha de comando ou como um pacote, além de ferramentas para
documentação e
formatação da Web que estão
em conformidade
com os padrões de idioma Dardo .
Aprenda mais
Confira nosso Guia de introdução ao
Flutter e
Web Dart Toolkit .
As
notas de versão fornecem informações técnicas detalhadas sobre muitas outras pequenas melhorias feitas desde o Dart 1, algumas das quais são críticas. Se você encontrar problemas que o Google não pode resolver, recomendamos começar com o
StackOverflow . Inscreva-se no boletim informativo
Dart Announcements e siga-nos no
Twitter para receber atualizações. Também gostaríamos de vê-lo em nossas comunidades, por exemplo, no
Gitter e no
r / dartlang reddit .
Obrigada
O Dart se tornou uma linguagem de uso geral otimizada para desenvolvimento na Web e em dispositivos móveis. Trabalhamos no Dart 2 há vários anos, durante os quais afetou todos os aspectos do nosso ecossistema e exigiu a migração de milhões de linhas de código e centenas de pacotes.
Agradecemos às comunidades
Dart e
Flutter , bem como às centenas de engenheiros do Google que nos ajudaram nessa jornada. Não poderíamos ter feito isso sem você!
Da comunidade
Gostaria de parabenizar a equipe de desenvolvimento da Dart por um evento tão importante, este é realmente um marco importante para o desenvolvimento da linguagem. Obviamente, muitas das palavras deste artigo podem parecer bastante
discutíveis para você. Você pode discuti-las nos comentários e em nossos bate-papos por
Telegrama ,
Slack e
Google+ .
E o anúncio prometido: além de pequenas mitaps, realizamos grandes eventos anuais dedicados ao idioma, ferramentas, Flutter, AngularDart e tudo relacionado a eles. No ano passado, fomos visitados por engenheiros do Google,
fabricamos uma cerveja especial e, em geral, foi divertido. Este ano vamos tentar fazer ainda melhor! Portanto, reserve o final de novembro - o início de dezembro e fique atento aos anúncios.