2011-09-27 7 views

risposta

4

Chiusura di Google, è un insieme di librerie javascript e un parser javascript per la compilazione e la compattazione del javascript. Esistono strumenti di chiusura di google che possono essere incorporati nel ciclo di build/deploy.

Google Dart viene visualizzato (dalle informazioni scarse correnti) come lingua sostitutiva per javascript, con l'opzione per la compilazione in javascript. Questo è simile a ciò che google GWT fa ora con java (cioè, si scrive java e si compila in javascript. Credo che questo processo di compilazione usi anche il compilatore di chiusura).

Questo è il motivo per cui i team GWT + Closure sono stati spostati nel progetto Dart: è fondamentale per l'adozione di Dart che gli sviluppatori possano distribuire applicazioni di dardo lato client ai browser che non supportano direttamente il dardo (ad esempio, non cromato). La compilazione incrociata di dart in javascript (nello stesso modo in cui GWT esegue java in javascript) è il metodo di Google per risolvere questo problema.

+0

Ah, capisco, quindi Google Dart è più simile a ClojureScript, in quanto Google Dart si compila fino al codice Google Closure? – Zubair

+1

Penso che dovrai attendere fino a quando Google non lo comunicherà per conoscere le sue specifiche. – John

+0

Solo un aggiornamento: dart2js, il compilatore Dart to JavaScript, non emette il codice di chiusura. Emette vaniglia JavaScript (ottimizzato e minimizzato, ovviamente :) –

2

Il discorso di apertura della Dart dovrebbe essere presto disponibile (domani?), Ma ho pensato di aggiungere anche questo estratto dallo Dash email.

E le basi di codice esistenti per le grandi Google Apps? Non dovranno ricostruire tutto per sfruttare Dash?

Il Dash Cross Compiler deve essere in grado di prendere il codice di chiusura tipizzato (con alcune restrizioni) e la conversione in Dash. Sebbene il processo di migrazione non sia completamente automatico, dovrebbe rendere più semplice lo spostamento verso una base di codice Dash.

2

Al momento, DartC utilizza il compilatore di chiusura per build ottimizzati (--optimize). Per un normale ciclo di modifica/aggiornamento, genera javascript direttamente per guadagnare una certa velocità per lo sviluppatore. La fase di ottimizzazione (e di chiusura) è più una fase di confezionamento e distribuzione.

+0

Solo un aggiornamento, dartc è stato sostituito da dart2js: http://www.dartlang.org/docs/dart-up-and-running/contents/ch04-tools -dart2js.html –

2

Credo che Dart sia stato progettato pensando al Google Closure Compiler sin dal primo avvio. Il principio fondamentale alla base del sistema di digitazione opzionale del Dart è che:

"tipo striping di annotazione non dovrebbe influenzare il comportamento del programma in modalità di produzione"

che abbinano molto bene con il sistema di tipo di annotazione commento a base di Google di chiusura.

http://www.dartlang.org/articles/optional-types/

bar(int n) { return n *2;} 
... 
bar(3.2); // returns 6.4 in production, but fails in checked mode 
Problemi correlati