Dart (linguaggio)

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Dart
AutoreGoogle
Data di origine18 ottobre 2011
Ultima versione2.5.1 - 27 settembre 2019
Utilizzodart.dev
Paradigmiprogrammazione multi-paradigma, programmazione orientata agli oggetti, programmazione funzionale, programmazione imperativa e programmazione riflessiva
Tipizzazioneopzionale
Specifiche di linguaggioDart Language Specification
Estensioni comuni.dart
Influenzato daCoffeeScript,[senza fonte] Java, JavaScript, Strongtalk[senza fonte]
Implementazione di riferimento
Sistema operativomultipiattaforma
Licenzalicenza BSD
Sito web

Dart (originariamente chiamato Dash[1]) è un linguaggio di programmazione sviluppato da Google. È stato presentato alla conferenza "GOTO Aarhus 2011" dal 10 al 12 ottobre 2011[2]. Lo scopo di Dart è quello di "sostituire JavaScript come lingua franca per lo sviluppo web sulla piattaforma web aperto"[3].

Il compilatore Dart permette di scrivere programmi sia per il web che per desktop e server, attraverso l'uso di due diverse piattaforme:

  • Dart Native: Per i dispositivi (smartphone, desktop, server, and altro), Dart Native include sia la Dart VM con una compilazione JIT (just-in-time) e un compilatore AOT (ahead-of-time) per la produzione di codice eseguibile.
  • Dart Web: Per il web, Dart Web include sia un compilatore per lo sviluppo (dartdevc) che uno per la produzione (dart2js)

Motivo per un nuovo linguaggio[modifica | modifica wikitesto]

L'intento di Dart è quello di risolvere i problemi di JavaScript (che, secondo il memo interno trapelato,[3] non possono essere risolti con l'evoluzione del linguaggio) offrendo al tempo stesso migliori prestazioni, la possibilità di sviluppare più facilmente strumenti utili alla gestione di progetti di grandi dimensioni e migliori funzionalità legate alla sicurezza[1]. Gli ingegneri di Google stanno sviluppando un IDE basato sul cloud chiamato Brightly, che potrebbe essere la prima applicazione sviluppata con Dart. Google offrirà un cross-compilatore che compila il linguaggio Dart in ECMAScript 3 al volo, per compatibilità con browser privi del supporto nativo per Dart. Ci sarà anche uno strumento per convertire il codice delle chiusure tipizzate in linguaggio Dart.[4]

La VM Dart ed il cross-compilatore Dart dovevano essere disponibili e integrati nel browser Chrome già nel tardo 2011[1] ma Google stessa nel 2017 rinuncia all'integrazione con il browser data la forte opposizione esercitata dai maggiori concorrenti per la standarizzazione del linguaggio[5].

Esempio[modifica | modifica wikitesto]

Il famoso esempio Hello world:

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

Una funzione per calcolare l'n-esimo Numero di Fibonacci:

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

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

Note[modifica | modifica wikitesto]

  1. ^ a b c Alex Chitu, Dash, Google's Alternative to JavaScript, su Dash, Google's Alternative to JavaScript, 13 settembre 2011. URL consultato il 21 luglio 2019.
  2. ^ Presentazione: "Opening Keynote: Dart, a new programming language for structured web programming" - conferenza GOTO Aarhus 2011. Presentazione ufficiale del linguaggio Dart, 10 ottobre 2011
  3. ^ a b documento "Il futuro di JavaScript" dal nostro "JavaScript Summit" della settimana scorsa - Mail interna a Google trapelata]
  4. ^ Google Dart to "ultimately ... replace JavaScript"
  5. ^ Dart VM - Chrome Platform Status, su www.chromestatus.com. URL consultato il 21 luglio 2019.

Voci correlate[modifica | modifica wikitesto]

  • Document Object Model (DOM) - una convenzione per rappresentare ed interagire con oggetti in documenti HTML, XHTML, ed XML
  • HaXe - linguaggio di programmazione per applicazioni web simile a Dart
  • Opa - un altro linguaggio di programmazione per applicazioni web simile a Dart
  • TypeScript - un linguaggio di programmazione superset di JavaScript
  • Flutter - framework open-source per la realizzazione di interfacce grafiche in Dart

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autoritàLCCN (ENsh2014100182