059 – FAQ – Perguntas e Respostas sobre a Linguagem DART – Curso Gratuito de DART
Playlist: Curso Grátis de FLUTTER e DART Completo
Perguntas e Respostas sobre a Linguagem DART
Dart FAQ
Esta página coleta algumas das principais perguntas que ouvimos da comunidade desde que o Dart foi aberto.
Geral
P. Existe uma especificação para o Dart?
Sim. Dart 1 tem uma especificação formal de propriedade da Ecma TC52.
O Dart 2.x está sendo especificado atualmente; a especificação está disponível na página de especificação da linguagem Dart.
P. Como você está recebendo informações sobre alterações no Dart?
Ouvimos comentários e problemas e analisamos os patches dos colaboradores. Um colaborador com um bom histórico pode se tornar um committer do repositório. Os engenheiros do Google também estarão trabalhando no repositório público, fazendo alterações visíveis. O projeto teve a sorte de ter recebido muitos patches externos e deu as boas-vindas aos committers distribuídos.
Língua
Q. Não é Dart muito parecido com Java?
O Dart tem algumas semelhanças com o Java. Veja o codelab Intro to Dart for Java Developers para exemplos de algumas das diferenças entre Dart e Java.
P. Como o Dart se relaciona com o Go?
Dart and Go são dois projetos de idiomas iniciados no Google, mas são independentes e têm objetivos diferentes. Como resultado, eles fazem escolhas diferentes, e as linguagens têm naturezas muito diferentes, mesmo quando todos tentamos aprender com o trabalho dos outros.
P. Por que o Dart não é mais parecido com o Haskell / Smalltalk / Python / Scala / outro idioma?
Várias razões, dependendo da linguagem que está sendo perguntada.
Para idiomas bem diferentes do JavaScript: é importante que o Dart compile para JavaScript eficiente. Nossa experiência no GWT é que, se o idioma de origem for muito diferente do JavaScript, ele cria alguns casos em que o código de saída complexo é necessário para emular o comportamento do idioma de origem. Isso pode fazer com que o desempenho varie de formas que não sejam transparentes para o programador.
Para idiomas compilados em código nativo: é importante que o Dart seja compilado de maneira eficiente para o código da máquina e, portanto, compartilhe vários aspectos com outras linguagens compiladas.
Para linguagens que são “mais dinâmicas” do que Dart: a Dart deliberadamente troca parte dessa modificação arbitrária de tempo de execução para o objetivo de melhor desempenho e ferramentas mais produtivas.
P. Por que a sintaxe do Dart não é mais excitante?
Nós incluímos alguns recursos sintáticos agradáveis como este. construtor args e =MAIOR para funções de uma linha, mas nós concordamos que Dart escolhe familiaridade por excitação. Um depoimento pessoal de um membro da equipe: “Eu gostaria que tivesse um pouco mais de deslumbramento, mas não posso negar que, literalmente, no meu primeiro dia escrevendo código de dardos, fui produtivo nele.”
P. O Dart possui recursos de reflexão?
Para servidores e scripts de linha de comando, temos suporte de reflexão da API de espelhos. Não há suporte para espelhos ao usar o DART para escrever aplicativos da Web ou Flutter (mais informações).
Q. O Dart pode adicionar tuplas, correspondência de padrões, tipos não anuláveis, avaliação parcial, ponto e vírgula opcional,…?
Os lançamentos futuros podem incluir (alguns) esses recursos, embora não possamos incluir tudo. Alguns recursos não se encaixam na natureza básica do idioma e alguns não funcionam bem com outros recursos. Simplicidade é o presente mais importante que podemos dar aos futuros programadores.
Consulte a lista de problemas de idioma e funil de idioma para ver se sua solicitação já está lá. Se for, deixe-nos saber que você se importa e dê um joinha. Caso contrário, vá em frente e adicione um novo problema de solicitação (veja o [processo de evolução da linguagem] [languageprocess] para detalhes). Faça um argumento pensativo para o seu recurso. O código de exemplo com e sem o seu recurso é uma boa evidência; uma base de código considerável que mostra a necessidade é uma evidência ainda melhor.
Não se surpreenda se a equipe de idiomas do DART disser “não” por padrão. É muito mais doloroso remover um recurso de idioma do que adicioná-lo, portanto, é provável que o Dart adicione os recursos mais óbvios primeiro e, em seguida, revisite o próximo nível mais tarde. E simplesmente existem mais recursos de linguagem possíveis no mundo que podem se encaixar em qualquer idioma sem fazer um hash total dele. Mas nós apreciamos muito as sugestões e evidências. Esperamos que você veja nossa apreciação por meio de escolhas de design cuidadosas e comunicação justa sobre eles.
Tipos
P. Dart é uma linguagem com tipagem estática?
Sim, o Dart 2 é digitado estaticamente. Para mais informações, leia sobre o sistema de tipos do Dart.