Dart (programovací jazyk)
Paradigma | multiparadigmatický: skriptovací, objektově orientovaný (založený na třídách), imperativní, reflexní, funkcionální[1] |
---|---|
Vznik | 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 |
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
[editovat | editovat zdroj]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í
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]- ↑ 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.[nedostupný zdroj]
- ↑ 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
[editovat | editovat zdroj]Externí odkazy
[editovat | editovat zdroj]- Obrázky, zvuky či videa k tématu Dart na Wikimedia Commons
- (anglicky) Oficialní stránka
- (česky) Neoficiální stránka
- DartPad