Dart (programovací jazyk)
Dart (výslovnost [daːt]) je programovací jazyk vyvíjený společností Google, publikovaný jako otevřený software. Převážně se využívá pro web či mobilní aplikace, nicméně lze využít i na serveru nebo desktopových aplikacích.

Jedná se o objektově orientovaný, garbage collection jazyk se syntaxí podobnou jazykům Java nebo C. Dart lze kompilovat jak do strojového kódu tak do JavaScriptu.

Historie 
Dart byl představen na GOTO konferenci v Aarhus, v Dánsku 10. října 2011. Tento projekt založili Lars Bak a Kasper Lund. Verze 1.0 byla publikována 14. listopadu 2013.

V srpnu 2018 byla publikována verze 2.0, kdy hlavní novinkou byla silná typovost. Další novinka přišla s verzí 2.6 kdy díky dart2native, bylo už konečně možné kompilovat přímo do strojového kódu a nebylo potřeba mít Dart SDK pro běh programu. V roce 2021 přišla verze 2.12 ve které se Dart stal plně sound null-safe jazykem, což do té doby byl poslední velký nedostatek v porovnání s ostatními výššími programovacími jazyky.

Použití 
Jsou tři způsoby jak spouštět Dart kód

 Kompilovaný jako JavaScript
 Samostatně díky Dart SDK
 Ahead-of-time kompilace

Nativní aplikace 
Google představil framework Flutter pro vývoj nativních mobilních aplikací pro Android a iOS. Jedná se o kompletní opensource SDK napsané v Dartu s předpřipravenými widgety a nástroji pro kompletní vývoj mobilních aplikací.

Editory 
Doporučené editory pro Dart jsou hlavně VSCode nebo vývojová prostředí od JetBrains (například Android Studio či IntelliJ IDEA) díky velice udržovaným pluginům pro tento jazyk. Pro rychlé prototypování a zkoušení Dart team udělal online editor DartPad který také nabízí i zvýrazňování kódu, statickou analýzu kódu a doplňování.

Isolates 
Pro současný běh několik částí programu Dart využívá isolates, což jsou samostatné jednotky, které nesdílí paměť a komunikují přes zprávy. Každý Dart kód má minimálně jeden hlavní isolate. Od verze 2.0 Dart na webu nepodporuje více isolates a doporučuje použít spíše Web Workers.

Příklady 
Hello World! příklad:void main() {
  print('Hello, World!');
}Funkce na výpočet n-tého čísla Fibonacciho posloupnosti:int fib(int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;

void main() {
  print('fib(20) = ${fib(20)}');
}Ukázka třídy:import 'dart:math' as math;

class Point {
  final num x, y;

  Point(this.x, this.y);

  Point.origin()
      : x = 0,
        y = 0;

  num distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return math.sqrt(dx * dx + dy * dy);
  }
  
  num get magnitude => math.sqrt(x * x + y * y);

  Point operator +(Point other) => Point(x + other.x, y + other.y);
}

void main() {
  var p1 = Point(10, 10);
  print(p1.magnitude);
  var p2 = Point.origin();
  var distance = p1.distanceTo(p2);
  print(distance);
}

Reference

Související články 
 Flutter
 Java
 Google Web Toolkit

Externí odkazy 
 
 (anglicky) Oficialní stránka
  Neoficiální stránka
 DartPad

Skriptovací jazyky
Google
Objektově orientované programovací jazyky
Software pod licencí BSD