Dart (programovací jazyk)

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].

Dart
Dart programming language logo.svg
Paradigmamultiparadigmatický: skriptovací, objektově orientovaný (založený na třídách), imperativní, reflexní, funkcionální[1]
Vznikl v10. ří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

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.

HistorieEditovat

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

Jsou tři způsoby jak spouštět Dart kód

Nativní aplikaceEditovat

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í.

EditoryEditovat

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í.

IsolatesEditovat

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říkladyEditovat

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);
}

ReferenceEditovat

  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. 
  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ánkyEditovat

Externí odkazyEditovat