DEV Community

Cover image for O que é Dart?
Natasha
Natasha

Posted on

O que é Dart?

Dart é uma linguagem de programação criada pela Google em 2011, com o objetivo de ser produtiva, ágil e de fácil entendimento. Apesar de ser a linguagem base do framework Flutter, ela pode também ser aplicada em outras circunstâncias, como no Back-end.


Uma linguagem de programação é a forma por onde conseguimos passar instruções para que computadores executem, e é através delas que conseguimos criar softwares, aplicativos, sites, jogos, etc.
void main() {
  print("Hello, World!");
}
Enter fullscreen mode Exit fullscreen mode

O trecho do código acima apresenta o void main() { } que é onde chamamos a função inicial do Dart, ou seja, todos os códigos Dart se iniciam nessa função, e precisam estar contidos dentro das chaves {aqui}. O nosso comando irá imprimir Hello, World! no console.

Você pode testar essa e outras funções Dart aqui.

Ilustração de uma moça saindo de uma caixa
Tipos de Linguagens de Programação:

  • Linguagens de Baixo Nível: Próximas ao código de máquina, mais difíceis de entender (ex: Assembly, C).
  • Linguagens de Alto Nível: Mais próximas da linguagem humana, facilitam a programação (ex: Python, Java, Dart).
  • Linguagens Compiladas: Precisam ser traduzidas antes da execução (ex: C, C++).
  • Linguagens Interpretadas: Executadas linha por linha, sem necessidade de compilação (ex: Python, JavaScript).
  • Linguagens Híbridas: Misturam características compiladas e interpretadas (ex: Java, Dart).

Ilustração de uma moça sentada em uma cadeira lendo um livro
As principais características de uma Linguagem de Programação (✨) e como elas funcionam com Dart (🎯):

Sintaxe: É o conjunto de regras que define como o código deve ser escrito;
🎯 Em Dart temos um conjunto de regras para diferentes situações:

//variáveis
String nome = "Natasha";
int idade = 30;
double altura = 1.75;
bool gostaDeFlutter = true;
Enter fullscreen mode Exit fullscreen mode

Variáveis:

  • Cada linha termina com ; (ponto e vírgula).
  • Usa tipagem flexível, pode ser estaticamente tipado ou dinamicamente tipado.
  • Strings usam aspas duplas "" ou simples ''.

//funções
void saudacao(String nome) {
  print("Olá, $nome!");
}

void main() {
  saudacao("Natasha");
}
Enter fullscreen mode Exit fullscreen mode

Funções:

  • void indica que a função não retorna nada.
  • Argumentos da função são tipados (ex: String nome).
  • O bloco de código fica entre {}.

//estruturas de controle
void verificarIdade(int idade) {
  if (idade >= 18) {
    print("Maior de idade");
  } else {
    print("Menor de idade");
  }
}
Enter fullscreen mode Exit fullscreen mode

Estruturas de Controle:

  • Condições usam if, else e else if.
  • Comparações usam operadores como >=, <=, ==, !=.

//classes e objetos
class Pessoa {
  String nome;
  int idade;

  Pessoa(this.nome, this.idade);

  void apresentar() {
    print("Meu nome é $nome e tenho $idade anos.");
  }
}

void main() {
  Pessoa pessoa = Pessoa("Natasha", 30);
  pessoa.apresentar();
}
Enter fullscreen mode Exit fullscreen mode

Classes e Objetos:

  • Classes são definidas com class.
  • Construtores podem usar this para atribuir valores diretamente.
  • Métodos usam void ou outro tipo de retorno.

Semântica: O significado por trás das instruções escritas no código;
🎯 Em Dart a semântica é interpretada pelo compilador:

//erro semântico
int soma(int a, int b) {
  return a - b; //erro semântico! era para somar, mas está subtraindo.
}
Enter fullscreen mode Exit fullscreen mode

Erro semântico (sintaxe correta, mas lógica errada).

//erro de referência
String nome = "Natasha";
print(idade); //erro: "idade" não foi declarada.
Enter fullscreen mode Exit fullscreen mode

O compilador não encontra a variável idade, causando um erro de referência inexistente, ou seja, o código roda sem erro, mas não faz o que deveria.

Paradigmas: Diferentes formas de programar. (ex: Programação Orientada a Objetos, Funcional ou Procedural);
🎯 Dart é Multiparadigma, suportando programação orientada a objetos, funcional e assíncrona.

Compilação ou Interpretação: Algumas linguagens precisam ser compiladas antes de serem executadas, enquanto outras são interpretadas diretamente.
🎯 Dart possui compilação eficiente, podendo ser compilado para código nativo (rodando diretamente no processador) ou para JavaScript (para aplicações Web).

Ilustração de um rapaz abraçando uma gigante xícara de café
Não é necessário que se aprenda primeiramente Dart para depois aprender Flutter, esse aprendizado pode acontecer simultaneamente. Mas é essencial o aprendizado de Dart para a utilização do Flutter.


Links úteis:

Documentação Oficial

Dart — Dicionário do Programador (Youtube)

Github Oficial

Top comments (0)