A última versão do Dart, linguagem de programação do Google, a versão 2.6, estende o suporte a compilação nativa e AOT com a adição do dart2native
, que permite a criação de programas no Linux, Windows e MacOs.
É importante ressaltar que o dart2native
gera binários independentes, o que significa que não é necessário o Dart SDK para executar programas gerados através do dart2native
. Outra funcionalidade importante do dart2native
é o suporte a todo o conjunto de bibliotecas principais do Dart. O dart2native
também é compatível com o dart:ffi, uma camada de interoperabilidade com o C introduzida no Dart 2.5, para fazer interface com com funções de sistemas escritas em C nativas nas plataformas.
Compilação AOT sempre foi suportado no Dart através do Flutter, porém exclusivamente para o iOS e Android. Graças ao dart2native
, é possível usar a compilação AOT para uma grande variedade de plataforma, do mobile para Web, e agora do desktop para dispositivos IoT.
De acordo com o gerente de programa do Dart e Flutter, Michael Thomsen, o cenário ideal para aproveitar os benefícios do dart2native
é computação serverless, na qual a principal vantagem é minimizar a latência ao iniciar a execução de uma função remota.
Com o uso da compilação AOT para gerar código nativo, é possível evitar essa latência e começar a executar imediatamente.
Executar o código nativamente significa iniciar a aplicação e milissegundos, o que fornece uma grande melhoria quando comparado com a compilação just-in-time (JIT).
Paul Mundt, desenvolvedor Dart, recentemente documentou sua experiência com o uso do compilador dart2native; foi possível reduzir o tamanho da imagem Docker em 91%, de 220MB usando o código compilado JIT para somente 10MB usando o código nativo!
Além do dart2native
, o Dart 2.6 inclui uma nova funcionalidade na linguagem, extension methods, que torna possível estender uma classe adicionando métodos a mesma em um escopo diferente do contexto de criação original.
É possível obter o Dart 2.6, com o dart2native
em https://dart.dev/get-dart, ou atualizando o Dart através do Flutter, no entanto, o suporte completo ao dart2native
não será instalado no último cenário.