Dart (programovací jazyk)

Dart
Paradigmamultiparadigmatický: skriptovací, objektově orientovaný (založený na třídách), imperativní, reflexní, funkcionální[1]
Vznik10. října 2011[2]
AutorLars Bak and Kasper Lund
VývojářGoogle
Typová kontrola1.x: volitelná
2.x: statická[3]
Hlavní implementaceDart VM, dart2native, dart2js, DDC, Flutter
Ovlivněn jazykyJava, JavaScript, Smalltalk, Erlang, Strongtalk, C#
OSmultiplatformní
LicenceBSD
Webdart.dev
.dart
Přípona souboru.dart
Typ internetového médiaapplication/dart[4]
Standard(y)Dart Language Specification
Otevřený formátano

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[5], nicméně lze využít i na serveru nebo desktopových aplikacích[6].

Jedná se o objektově orientovaný, garbage collection jazyk se syntaxí podobnou jazykům Java nebo C[7]. 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[8]. 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[9]. 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[10], 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[11]. 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[12]. 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

  1. David Kopec. Dart for Absolute Beginners. [s.l.]: apress, c2014 Dostupné online. ISBN 978-1-4302-6482-8. Kapitola Functional programming languages, s. 56. (anglicky) 
  2. The official Google Code blog. Dart: a language for structured web programming [online]. Google inc., 2011-10-10 [cit. 2018-08-11]. Dostupné online. (anglicky) 
  3. Dart. Frequently Asked Questions (FAQ) [online]. Rev. květen 2018 [cit. 2018-08-11]. Dostupné online. (anglicky) 
  4. Media Type application/dart. www.iana.org [online]. [cit. 2014-02-08]. Dostupné v archivu pořízeném dne 2014-10-01. 
  5. Dart overview. dart.dev [online]. [cit. 2021-05-12]. Dostupné online. [nedostupný zdroj]
  6. Command-line and server apps. dart.dev [online]. [cit. 2021-05-12]. Dostupné online. 
  7. A tour of the Dart language. dart.dev [online]. [cit. 2021-05-12]. Dostupné online. 
  8. Presentations → Opening Keynote: Dart, a new programming language for structured web programming. gotocon.com [online]. [cit. 2021-05-12]. Dostupné v archivu pořízeném dne 2011-10-13. 
  9. MOORE, Kevin. Announcing Dart 2 Stable and the Dart Web Platform. Medium [online]. 2018-08-08 [cit. 2021-05-12]. Dostupné online. (anglicky) 
  10. Sound null safety. dart.dev [online]. [cit. 2021-05-12]. Dostupné online. 
  11. Flutter - Beautiful native apps in record time. flutter.dev [online]. [cit. 2021-05-12]. Dostupné online. (anglicky) 
  12. Tools. dart.dev [online]. [cit. 2021-05-12]. Dostupné online. 

Související články

Externí odkazy

Média použitá na této stránce

Dart programming language logo.svg
Autor: Google, Licence: CC BY 4.0
Dart programming language logo