What is Dart?
What Dart is, why Google built it, and where it fits alongside Flutter and the wider app-development landscape.
2 min de lectura
Dart is a general-purpose, object-oriented programming language created by Google. It compiles to native machine code for mobile and desktop, to JavaScript for the web, and can also run instantly in a virtual machine during development — one language, several very different targets.
You've almost certainly heard of Dart because of Flutter, Google's UI toolkit for building natively-compiled apps from a single codebase. This course isn't about Flutter — it's about the language underneath it — but it helps to know why Dart looks the way it does: Flutter needed a language that could hot-reload instantly during development, compile to fast native code for release, and feel familiar to developers coming from Java, C#, or JavaScript. Dart was shaped by those constraints.
A language built for UI, but not limited to it
Dart isn't only for Flutter. It's a capable general-purpose language with its own standalone runtime, used for command-line tools, backend servers, and scripts:
void main() {
print('Hello, Dart!');
}Every Dart program starts at a top-level main() function, much like C, Java, or Go. There's no surrounding class required, no boilerplate — this three-line file is a complete, runnable program.
Statically typed, but not rigid
Dart is statically typed — every variable has a type, checked at compile time — but type inference means you rarely have to write types out by hand:
int year = 2026;
var language = 'Dart'; // inferred as String
final isCompiled = true; // inferred as bool, can't be reassignedThis combination — safety when you want it, brevity when you don't — is one of the reasons Dart feels approachable even if strict typing is new to you.
Why it exists
Before Dart, Google's engineers were building large, complex web apps in JavaScript and running into problems that a dynamically-typed language makes worse at scale: refactoring becomes risky, tooling can't reason about your code as confidently, and bugs that a type checker would catch instead surface at runtime. Dart was designed to fix that without abandoning what made JavaScript productive — a familiar C-style syntax, first-class functions, and fast iteration.
What you'll learn in this course
Over the coming lessons you'll write and run real Dart programs: variables and types, control flow, functions, collections, null safety, classes, and asynchronous code. None of it requires Flutter or a mobile device — everything runs from the command line with the Dart SDK, which is exactly where we'll start next.