2011-09-27 14 views

Odpowiedz

4

Zamknięcie Google to zestaw bibliotek javascript i parser javascript służący do kompilowania i kompaktowania języka javascript. Istnieją narzędzia do zamykania google, które można wbudować w cykl budowy/wdrażania.

Google Dart pojawia się (z bieżących informacji skąpych), aby zastąpić język javascript, z opcją kompilacji do javascript. Jest to podobne do tego, co Google GWT robi teraz z java (tzn. Piszesz java i kompiluje się do javascript.) Wierzę, że ten proces kompilacji również używa kompilatora zamykającego).

To właśnie dlatego zespoły GWT + Closure zostały przeniesione do projektu Dart - istotne jest, aby deweloperzy mogli wdrażać aplikacje typu dart po stronie klienta w przeglądarkach, które nie obsługują bezpośrednio rzutek (np.). Krzyżowa kompilacja darta do javascript (w ten sam sposób, w jaki GWT robi java do javascript) jest metodą Googlesa rozwiązania tego.

+0

Ach, widzę, więc Google Dart bardziej przypomina ClojureScript, ponieważ Google Dart będzie kompilował się do kodu zamknięcia Google? – Zubair

+1

Myślę, że będziesz musiał poczekać, aż Google ogłosi go, aby dowiedzieć się czegoś na temat jego szczegółów. – John

+0

Po prostu aktualizacja: dart2js, kompilator Dart to JavaScript, nie emituje kodu zamknięcia. Emituje vanilla JavaScript (zoptymalizowany i zminimalizowany, oczywiście :) –

2

Mowa główna Dart'a powinna wkrótce nastąpić (jutro?), Ale pomyślałem, że dodam ten fragment z Dash email.

Co z istniejącymi podstawami kodu dla dużych Google Apps? Czy nie będą musieli odbudować wszystkiego, aby skorzystać z Dash?

Kompilator Dash Cross powinien być w stanie przyjąć wpisany kod zamknięcia (z pewnymi ograniczeniami) i przekonwertować go na Dash. Chociaż proces migracji nie będzie w pełni automatyczny, powinien nieco ułatwić przejście do kodu kreskowego Dash.

2

W tej chwili DartC używa kompilatora zamknięcia w celu zoptymalizowania kompilacji (--optymalizuj). W normalnym cyklu edycji/odświeżania generuje javascript bezpośrednio, aby zyskać trochę prędkości dla programisty. Faza optymalizacji (i zamykania) jest bardziej etapem pakowania i wdrażania.

+0

Po aktualizacji, dartc został zastąpiony przez dart2js: http://www.dartlang.org/docs/dart-up-and-running/contents/ch04-tools -dart2js.html –

2

Wierzę, że Dart został zaprojektowany z myślą o kompilatorze Google Closure od samego początku. Zasada rdzeń bazowego opcjonalny system typowania dart jest to, że:

„typ Striping adnotacji nie powinny wpływać na zachowanie programu w trybie produkcyjnym”

które odpowiadają bardzo dobrze z systemem typu adnotacji Google zamknięcie za komentarz na bazie.

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