niedziela, października 16, 2011

Poskramianie Darta ;-)

Chciałbym się móc pobawić Dartem, ale Google nie lubi Windowsa.
Nawet gdzieś mi po głowie chodzi by kupić sobie takiego małego niby ultrabooka (czy prawie, 13.1 cala, 4 albo 8 GB RAM, 500 GB HDD do tego około 8 godzin pracy na baterii, system to Win7, ale Ubuntu jakieś można pewnie postawić, szczególnie w wersji Wubi czy jak to to się zowie (taka, którą się instaluje z Windowsa)) by się na Linuksie pobawić Dartem. Zabawka to jakieś 3k, więc się da ;-)

Ale ktoś był miły i zrobił binarki dla Windowsa :-) [działają pod Win7, podobno pod XP nie], link pojawił się w dyskusji na General Dart Discussion w wątku Win32 Binaries].
Żeby było prościej tu linki do 2 najważniejszych plików:

http://www.kelleysoft.com/dart/dart.exe
http://www.kelleysoft.com/dart/libdart.dll

No i są problemy ;-) Uruchomienie mojego programu do testowania szybkości, tego od całkowania numerycznego trwa wieki, 1 iteracja w wersji skompilowanej do JavaScript'u i wykonywanej w Chrome to było około 2.8 ms, w przypadku użycia wirtualne maszyny Darta jest około 370 ms ;-)
Czyli wirtualna maszyna w wersji jaką mam jest 132 razy wolniejsza od skompilowanego Darta do JavaScript'u ;-)
Na 99% chodzi o brak optymalizacji, którą może i da się włączyć, ale nie znam magicznego przełącznika do tego.

Przy okazji odkryłem kilka ciekawostek w Dart'cie :-)
Po pierwsze Clock.now() nie zwraca czasu w milisekundach! Tzn. czasem zwraca ;-) ale tak naprawdę czas w sekundach to:
Clock.now()/Clock.frequency()
Po skompilowaniu do JavaScriptu Clock.frequency() zwraca 1000, co oznacza, że Clock.now() zwraca czas w milisekundach, w przypadku maszyny wirtualnej zwraca milion, czyli czas z Clock.now() to mikrosekundy :-) 
Po drugie, int w Darcie to odpowiednik Java'oweg BigDecimal :-) Nie ma ograniczeń innych niż rozmiar pamięci. Nie głupi pomysł.
Po trzecie, Dart daje możliwość używania "modułów" czy jak to nazwać ;-) Nie znam jeszcze wszystkich szczegółów, ale chcąc w 1 pliku Darta użyć rzeczy z innego wystarczy użyć na początku pliku dyrektywy #source("nazwaPliku") :-)

Szczerze już dawno żaden język mi się tak na dzień dobry nie spodobał. Stąd liczę, że jednak świat się do Darta przekona ;-)



Podobne postybeta
Całkujący Dart ;-)
Raspberry Pi to nie jest demon prędkości ;-)
Dart - się mnie podoba :-)
Koszmarek - Small Basic ;-)
CosmoPlayer w Google Chrome