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[5], nicméně lze využít i na serveru nebo desktopových aplikacích[6].
Paradigma | multiparadigmatický: skriptovací, objektově orientovaný (založený na třídách), imperativní, reflexní, funkcionální[1] |
---|---|
Vznikl v | 10. října 2011[2] |
Autor | Lars Bak and Kasper Lund |
Vývojář | |
Typová kontrola | 1.x: volitelná 2.x: statická[3] |
Hlavní implementace | Dart VM, dart2native, dart2js, DDC, Flutter |
Ovlivněn jazyky | Java, JavaScript, Smalltalk, Erlang, Strongtalk, C# |
OS | multiplatformní |
Licence | BSD |
Web | dart.dev |
Přípona souboru | .dart |
---|---|
Typ internetového média | application/dart[4] |
Standard(y) | Dart Language Specification |
Otevřený formát | ano |
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
- 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)
- 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)
- Dart. Frequently Asked Questions (FAQ) [online]. Rev. květen 2018 [cit. 2018-08-11]. Dostupné online. (anglicky)
- Media Type application/dart. www.iana.org [online]. [cit. 2014-02-08]. Dostupné v archivu pořízeném dne 2014-10-01.
- Dart overview. dart.dev [online]. [cit. 2021-05-12]. Dostupné online.
- Command-line and server apps. dart.dev [online]. [cit. 2021-05-12]. Dostupné online.
- A tour of the Dart language. dart.dev [online]. [cit. 2021-05-12]. Dostupné online.
- 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.
- MOORE, Kevin. Announcing Dart 2 Stable and the Dart Web Platform. Medium [online]. 2018-08-08 [cit. 2021-05-12]. Dostupné online. (anglicky)
- Sound null safety. dart.dev [online]. [cit. 2021-05-12]. Dostupné online.
- Flutter - Beautiful native apps in record time. flutter.dev [online]. [cit. 2021-05-12]. Dostupné online. (anglicky)
- Tools. dart.dev [online]. [cit. 2021-05-12]. Dostupné online.
Související články
Externí odkazy
- Obrázky, zvuky či videa k tématu Dart na Wikimedia Commons
- (anglicky) Oficialní stránka
- (česky) Neoficiální stránka
- DartPad