Dart (limba)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Lance
limbaj de programare
Limbajul de programare Dart logo.svg
Autor Google
Data de origine 18 octombrie 2011
Ultima versiune 2.13.4 (28 iunie 2021)
Utilizare dart.dev
Paradigme programare multi-paradigmă, programare orientată obiect, programare funcțională , programare imperativă și reflecție
Tastare opțional
Specificații lingvistice Specificația limbii săgeții
Extensii comune .lance
Influențată de CoffeeScript , [ fără sursă ] Java , JavaScript , Strongtalk [ fără sursă ]
Implementare referință
Sistem de operare multiplataforma
Licență Licență BSD
Site-ul web dart.dev

Dart (numit inițial Dash [1] ) este un limbaj de programare dezvoltat de Google . Acesta a fost prezentat la conferința „GOTO Aarhus 2011” în perioada 10-12 octombrie 2011 [2] . Scopul Dart este de a „înlocui JavaScript ca lingua franca pentru dezvoltarea web pe platforma web deschisă” [3] .

Compilatorul Dart vă permite să scrieți programe atât pentru web, cât și pentru desktopuri și servere, prin utilizarea a două platforme diferite:

  • Dart Native : pentru dispozitive (smartphone-uri, desktop-uri, servere și multe altele), Dart Native include atât Dart VM cu o compilație just-in-time (JIT), cât și un compilator anticipat (AOT) pentru producerea codului executabil.
  • Dart Web : pentru web, Dart Web include atât un compilator pentru dezvoltare ( dartdevc ), cât și unul pentru producție ( dart2js )

Motivul pentru o nouă limbă

Intenția lui Dart este de a rezolva problemele JavaScript (care, conform memoriei interne scurse, [3] nu pot fi rezolvate odată cu evoluția limbajului), oferind în același timp performanțe mai bune, capacitatea de a dezvolta mai ușor instrumente utile pentru gestionarea proiectelor mari și funcții mai bune legate de securitate [1] . Inginerii Google dezvoltă un IDE bazat pe cloud , numit Brightly, care ar putea fi prima aplicație dezvoltată cu Dart. Google va oferi un compilator încrucișat care compilează limbajul Dart în ECMAScript 3 din mers, pentru compatibilitate cu browserele fără suport Dart nativ. De asemenea, va exista un instrument pentru a converti codul închiderilor tastate în limbajul Dart. [4]

Dart VM și Dart cross-compiler trebuiau să fie disponibile și integrate în browserul Chrome deja la sfârșitul anului 2011 [1], însă Google în sine a renunțat la integrarea cu browserul, având în vedere opoziția puternică exercitată de concurenții majori pentru standardizarea limbii [5]. ] .

Exemplu

Celebrul exemplu Hello world :

 main () {
  print ( 'Hello World!' );
}

O funcție pentru calcularea celui de-al nouălea număr Fibonacci :

 int fib ( int n ) {
  if ( n <= 1 ) returnează n ;
  return fib ( n - 1 ) + fib ( n - 2 );
}

main () {
  print ( 'fib (20) = $ { fib ( 20 ) } ' );
}

Utilizare

Există patru moduri de a rula codul Dart:

Compilat ca JavaScript
Pentru a lucra în browserele web tradiționale, Dart se bazează pe un compilator sursă-sursă pentru JavaScript. Conform site-ului web al proiectului, Dart a fost „conceput pentru a fi instrumente de dezvoltare ușor de scris, potrivite pentru dezvoltarea de aplicații moderne și capabile de implementări de înaltă performanță” [6] . Când rulați codul Dart într-un browser web, codul este precompilat în JavaScript folosind compilatorul dart2js. Compilat ca JavaScript, codul Dart este compatibil cu toate browserele majore, fără a fi nevoie ca browserele să adopte Dart. Optimizând ieșirea JavaScript compilată pentru a evita verificările și operațiunile costisitoare, codul scris în Dart poate, în unele cazuri, să ruleze mai repede decât codul scris de mână echivalent folosind expresii JavaScript [7] .
Independent, autonom
Dart Software Development Kit (SDK) vine cu o mașină virtuală Dart independentă, care permite codului Dart să ruleze într-un mediu de interfață de linie de comandă. Deoarece instrumentele lingvistice incluse în Dart SDK sunt scrise în principal în Dart, Dart VM independent este o parte cheie a SDK. Aceste instrumente includ compilatorul dart2js și un manager de pachete numit pub. Dart vine cu o bibliotecă standard cuprinzătoare care permite utilizatorilor să scrie aplicații de sistem complet funcționale, cum ar fi servere web personalizate [8] .
Compilat în avans
Codul Dart poate fi compilat AOT în codul mașinii (set de instrucțiuni native). Aplicațiile create cu Flutter , o aplicație mobilă SDK construită cu Dart, sunt distribuite magazinelor de aplicații sub formă de cod Dart compilat de AOT [9] .
Nativ
Logo Flutter
Logo Flutter
Dart 2.6 cu compilatorul dart2native pentru a compila într-un cod executabil nativ independent. Înainte de Dart 2.6, această caracteristică arăta această funcționalitate numai pe dispozitivele mobile iOS și Android prin Flutter [10] .

Izolați

Pentru a obține concurența, Dart folosește izolate, care sunt lucrători independenți care nu partajează memoria, ci folosesc în schimb transmiterea mesajelor. Acest lucru este similar cu procesele Erlang. Fiecare program Dart folosește cel puțin un izolat, care este cel principal. Începând cu versiunea 2, Dart nu mai acceptă blocuri și sugerează dezvoltatorilor să folosească în schimb Web Workers .

Instantanee

Instantaneele sunt o parte fundamentală a mașinii virtuale Dart. Instantaneele sunt fișiere care stochează obiecte și alte date de rulare [11] .

Instantanee ale scriptului
Programele DART pot fi compilate în fișiere instantanee. Aceste fișiere conțin tot codul programului și dependențele presetate și gata de rulare. Acest lucru permite plecări rapide.
Instantanee complete
Bibliotecile de bază Dart pot fi compilate într-un fișier instantaneu care permite încărcarea rapidă a bibliotecilor. Majoritatea implementărilor standard ale mașinii virtuale master Dart au un instantaneu implicit pentru bibliotecile master care este încărcat în timpul rulării.
Instantanee de obiecte
Dart este un limbaj foarte asincron. Deoarece aceștia sunt lucrători care transmit mesaje, aveți nevoie de o modalitate de a serializa un mesaj. Acest lucru se face folosind un instantaneu, generat de un anumit obiect, apoi transferat într-un alt izolat pentru deserializare .

Notă

  1. ^ a b c Alex Chitu, Dash, Google's Alternative to JavaScript , pe Dash, Google's Alternative to JavaScript , 13 septembrie 2011. Accesat la 21 iulie 2019 .
  2. ^ Prezentare: „Opening Keynote: Dart, un nou limbaj de programare pentru programarea web structurată” - conferința GOTO Aarhus 2011. Prezentarea oficială a limbajului Dart, 10 octombrie 2011
  3. ^ a b Documentul „Viitorul JavaScript-ului” din „Summitul JavaScript” de săptămâna trecută - Google Mail intern scurs]
  4. ^ Google Dart pentru „în cele din urmă ... înlocui JavaScript”
  5. ^ Dart VM - Starea platformei Chrome , la www.chromestatus.com . Adus pe 21 iulie 2019 .
  6. ^ De ce? , în Dart lang (FAQ).
    „Am proiectat Dart pentru a fi instrumente de dezvoltare ușor de scris, potrivite pentru dezvoltarea de aplicații moderne și capabile de implementări de înaltă performanță.” .
  7. ^ JavaScript ca țintă de compilare: Efectuarea rapidă ( PDF ), pe dartlang.org . Adus la 18 august 2013 (arhivat din original la 2 iulie 2016) .
  8. ^ Introducere în biblioteca dart: io , pe Dartlang.org . Adus pe 21 iulie 2013 .
  9. ^ Întrebări frecvente despre Flutter , în flutter.io , Cum rulează Flutter codul meu pe iOS? Accesat la 2 octombrie 2016 .
  10. ^ Anunțarea Dart 2.6 cu dart2native: Compilați Dart la executabile auto-conținute, native , pe medium.com . Adus la 6 decembrie 2019 .
  11. ^ dart compile , pe dart.dev . Adus la 25 februarie 2021 .

Elemente conexe

  • Document Object Model (DOM) - o convenție pentru reprezentarea și interacțiunea cu obiecte în documente HTML , XHTML și XML
  • HaXe - Limbaj de programare asemănător cu săgețile pentru aplicații web
  • Opa - un alt limbaj de programare pentru aplicații web similar cu Dart
  • TypeScript - un limbaj de programare superset al JavaScript
  • Flutter - cadru open-source pentru crearea de interfețe grafice în Dart

Alte proiecte

linkuri externe

Controlul autorității LCCN ( EN ) sh2014100182