2012-07-20 2 views
8

Lo so, quel dardo è ancora in anteprima tecnica. Dart può anche essere compilato in JavaScript.Quali sono i limiti della compilazione di dart in javascript?

Ma quali sono i limiti della compilazione di dart in javascript? Dart deve avere alcune caratteristiche o concetti specifici all'interno della lingua, che non possono essere semplicemente tradotti in codice JavaScript?

Il motivo è che un amico mi ha chiesto se Dart può compilare tutto ciò che è possibile su JavaScript o che, ad es. Il 5% degli elementi linguistici (sapete, le cose veramente migliorate) non saranno compilabili.

http://www.dartlang.org

risposta

3

Posso includere un FAQ quote? ;)

D. Un codice Dart valido può essere compilato su JavaScript oppure esistono limitazioni ? Sì, intendiamo per qualsiasi codice Dart valido da compilare a JavaScript. Se manca qualche supporto da uno dei nostri compilatori, è un bug (nel compilatore o nelle specifiche).

Quindi, se non è il caso ora, almeno l'obiettivo di Google è quello di compilare qualsiasi pezzo di codice Dart a JavaScript.

7

mio avvio ha sviluppato un'applicazione 50.000+ linee di Dart e hanno finora stumpled su pochissime limitazioni per quanto riguarda la compilazione Dart a JavaScript. Dart è stato progettato fin dall'inizio per essere convertito in JavaScript, quindi non risente dei problemi di compilazione che hanno afflitto GWT (non è stato possibile serializzare in JavaScript le classi Java in GWT, facendo sì che le persone avvolgano roba per nessun altro motivo che per rendere felice il compilatore GWT).

Detto questo, esistono alcune limitazioni durante la compilazione di Dart in JavaScript, ma la maggior parte di esse sono correlate alla tecnologia lato server che non può essere eseguita nel browser come socket e accesso IO e sono quindi molto ragionevoli. Ci sono anche alcune limitazioni per quanto riguarda il passaggio degli oggetti agli isolati, ma credo che verranno risolti nelle versioni future di dart2js.

+1

Che cosa ha detto Lars. Aggiungerò che al momento, dal 2012-07-20, c'è un problema noto di compilare interi molto molto grandi (da Dart) a JavaScript. Dart supporta numeri interi arbitrari, JavaScript no. Questo è un bug noto e il team lo sa. Se rimani all'interno delle dimensioni dei numeri JavaScript, sarai a posto. Intendiamo affrontare questa discrepanza prima del rilascio di Dart. –

+0

@SethLadd scusate si mi sono dimenticato di quello (è per questo che ho la mia implementazione int, ma la maggior parte delle persone non avrà mai bisogno di questo). Sapete se JS int diventerà con precisione arbitraria (come nella VM) o sarà limitato a numeri interi JavaScript a 64 bit. –