Dart

Dart é uma linguagem de programação feita pela Google em 2011. Nascida para substituir o JavaScript, hoje ela roda em navegadores (transpilada para JS), back-end, desktops e é a linguagem usada no Flutter.

É agradável de escrever e muito similar com ou linguagens mais famosas como o próprio JavaScript, Java e C. Além disso é rápida e cheia de recursos. A cada versão, são apresentados novos recursos.

Podemos rodar o Dart de duas formas:
  • Dart Nativo: esse é para dispositivos (mobile, desktop e servidor). A máquina virtual do Dart (Dart VM) irá compilar o código para máquinas ARM e X64. E aqui está uma das coisas mais legais do Dart, a forma de compilar por JIT ou AOT (irei explicar daqui a pouco).
  • Dart Web: o nome é autoexplicativo, aqui o código Dart é transpilado (traduzido e compilado em outra linguagem) nesse caso, para JavaScript, que atualmente é a única linguagem de script embutida nos navegadores mais conhecidos, por meio dartdecv em tempo de desenvolvimento e dart2js quando "deployado" 😄 (publicado em produção por exemplo).
Separação visual das compilações do Dart
Imagem retirada do site do Dart, títulos e cores alterados.

Em ambos os casos o Dart foi construído para dois momentos, o de desenvolvimento e o de produção, vou explicar.

No Dart Nativo temos JIT e AOT. Quando você está escrevendo código e pede pra Dart VM rodá-lo, ela vai compilá-lo e executar logo em seguida. Nesses momentos você precisa de uma execução rápida, afinal, quer confirmar se deu certo aquele trecho de código. Com esse intuito a Dart VM compila no modo just-in-time ou JIT, que simplificando é compilar separadamente partes do código com o programa já em execução, dessa forma não é preciso aguardar o programa ser executado de novo nem qualquer recarregamento. Já pensou se seu programa demorasse 10 segundos pra subir e ter que aguardar isso a cada alteração. Baita mão na roda, ein?
É o AOT? A compilação ahead-of-time é usada quando o programa está pronto para ser implantado em produção ou loja de aplicativos. Aqui o Dart AOT irá compilar todo o seu código antecipadamente para o código de máquina ARM ou X64, e assim, ele é iniciado instantaneamente e executado sem problemas.

Já no Dart Web temos dartdevc e dart2js. Mesma ideia. O dartdevc ou Dart Dev Compiler é o compilador Dart para JS otimizado para respostas rápidas, ele está embutido dentro do webdev e vai oferecer tarefas de execução, depuração e construção.
O dart2js ou Dart JS Compiler é otimizado para códigos de produção, vai compilar o código de maneira rápida também, mas será um código compacto, sem trechos de código morto (não usado), ou seja, é um código JS performático ideal para produção.

A grande sacada da linguagem Dart é oferecer rapidez e elegância durante o desenvolvimento e entregar programas robustos em produção. Por ser multiplataforma e multi paradigma você poderá codificar em Dart em várias ocasiões.

Fontes:
Plataformas via site do Dart - https://dart.dev/platforms
What is JIT in Java? – Understanding Java Fundamentals - https://www.edureka.co/blog/just-in-time-compiler/
Dart From Wikipedia- https://en.wikipedia.org/wiki/Dart_(programming_language)

Comentários

Postagens mais visitadas deste blog

Primeiro Post