Dart

Dart

Open Source

An approachable, portable, and productive language for high-quality apps on any platform.

Programming Languages

Scores

Popularity
2/5
Learning Curve
2/5
Flexibility
3/5
Performance
4/5
Portability
4/5

About

Dart was created at Google and first released in 2011, designed as a structured alternative to JavaScript for the web. Its trajectory changed fundamentally in 2018 when Flutter adopted Dart as its sole language, shifting Dart's primary audience from web developers to cross-platform mobile and desktop app developers.

Multi-target compilation. Dart's compiler toolchain covers three distinct targets: ahead-of-time (AOT) compilation to native machine code (ARM, x64, RISC-V) for mobile and desktop; transpilation to JavaScript for web deployment; and WebAssembly output for modern browsers. During development, a just-in-time (JIT) compiler enables hot reload — applying code changes to a running application in under a second without losing state.

Sound null safety. Dart 2.12 (2021) introduced sound null safety, making nullability part of the type system. Variables cannot be null unless explicitly declared nullable (String?), and the type checker enforces this at compile time. This eliminates an entire class of null-pointer runtime errors that plague most other languages.

Modern language features. Dart 3 (2023) added pattern matching, sealed classes, and class modifiers, bringing expressiveness closer to modern languages like Kotlin and Swift. The type system supports generics, extension methods, and mixins, and the async-await model built on Future and Stream is idiomatic and well-integrated.

Isolate concurrency model. Dart uses isolates rather than shared-memory threads. Each isolate has its own memory heap and communicates with others via message passing, eliminating data races by design. This model makes concurrent code safer but requires explicit data serialisation between isolates.

Package ecosystem. Pub (pub.dev) is Dart's package registry. The ecosystem is healthy for Flutter-centric packages (UI components, state management, platform integrations) but significantly thinner than npm or PyPI for general-purpose server-side or data engineering needs.

Release cadence. Dart releases align with Flutter's roughly quarterly schedule. Dart 3.11 (February 2026) is the current stable release. The language maintains strong backward compatibility within the 3.x series.

Key Features

  • Multi-target compilation: native ARM/x64, JavaScript, and WebAssembly from a single codebase
  • Hot reload: apply code changes to a running app in under a second without losing state
  • Sound null safety enforced at compile time — no null pointer exceptions at runtime
  • Async-await built on Future and Stream for clean asynchronous code
  • Isolate-based concurrency: memory-safe parallelism with no shared state between isolates
  • Pattern matching and sealed classes (Dart 3) for exhaustive, expressive control flow
  • pub.dev package ecosystem with strong coverage for Flutter UI and platform integrations

Pros

  • Hot reload makes Flutter/Dart development extremely fast — changes appear instantly without restart
  • Sound null safety eliminates an entire category of runtime null-pointer bugs at compile time
  • Single language and codebase targets iOS, Android, web, and desktop simultaneously
  • Approachable C-style syntax that developers from Java, Kotlin, Swift, or JavaScript can learn quickly
  • AOT compilation to native code gives Flutter apps smooth 60/120fps rendering with no JavaScript bridge overhead

Cons

  • Ecosystem is narrow outside the Flutter context — server-side and data tooling libraries are sparse
  • Job market demand is low; almost all Dart roles are Flutter-specific mobile positions
  • Isolate model requires explicit serialisation to pass data between isolates, adding friction for parallel workloads
  • Web output compiles to JavaScript, not truly native browser code — bundle sizes can be large
  • Community and learning resources lag far behind JavaScript, Python, and Java

Pricing

Open Source

Learning Resources

No resources yet — check back soon.

Vendor

Tags

DartOpen SourceWeb

Details

Maintained
Yes
Type system
Static
Execution
Compiled & Interpreted
Paradigms
Object-oriented, Functional, Concurrent, Imperative
Version
3.7.0
GitHub stars
11.1k
Stars updated
2026-05-01