Lançamento da versão estável do Dart 2.0 e Dart Web Platform

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.

Source: https://habr.com/ru/post/pt419635/


All Articles