środa, 16 kwietnia 2008

Japońskie triki

Zawsze podziwiałem Japończyków za ich podejście do technologii. W przyswajaniu nowinek technologicznych wyprzedzają resztę świata. Mają bardzo praktyczne podejście. Co przejawia się w tym że ich blogi są pełne wskazówek tłumaczących działanie bibliotek czy rozwiązywaniem pewnych problemów. Adobe pewnego czasu wypuściło kod źródłowy silnika Tamarin z propozycją aby fundacja Mozilla go rozwijała. Ponieważ postanowiono Tamarina dopiero włączyć do Firefoxa 4 (czyli inaczej musi upłynąć sporo czasu). To tylko Japończyków zainteresował Tamarin na poważnie, że zrobili z tego aplikację do uruchamiania skryptów.
Po prostu poczytali sobie o MMgc, o AVM2
, o kompilacji - zajrzeli do repozytorium kodów źródłowych i skompilowali sobie intepreter powłoki (avmshell) aby móc z linii poleceń wykonywać skrypty w ActionScript 3.
Otóż na razie niewielu interesuje się Tamarinem. Otóż warto sprawdzić sobie czym sobie zasłuzył: szybkością. Otóż jest już wersja alfa dla JavaScript2 do ściągnięcia. Zainstalowałem i napisałem sobie skrypcik


Efekt był taki że miałem dla wykonania tej samej funkcji fib(30) i IE7 z tym powyższym silnikiem osiągnęło 3938 ms co biorąć pod uwagę że ta wersja jeszcze jest niedopracowana to i tak już osiąga całkiem dobry wynik.

Natomiast dla porównania napisałem analogiczny kod w JavaScript

IE7 - 10922 ms
Firefox 2 1875 ms
Opera 3000 ms

Idąc dalej pomyślałem że całkiem będzie inaczej jak wykorzystam avmplus.exe jako silnik wykonawczy dla skryptów pisanych w ActionScript. Potrzebowałem pliku wykonawczego więc znalazłem to u Japończyków. I pomyślałem że warto sprawdzić jak to zadziała

Napisałem kod w ActionScript


function fib(n) {
if(n <= 1)
return 1;
else
return fib(n-1) + fib(n-2);
}
start = new Date();
print("fib 30 = " + fib(30));
end = new Date();
addTime = end-start;
print(addTime + " ms.");

Najpierw skompilowałem to do pliku fib.abc za pomocą asc.jar z Flex SDK

java -jar asc.jar fib.as

a potem uruchomiłem to za pomocą następującego polecenia

avmplus.exe fib.abc

Wynik ? 1109 ms

Poczytałem o tym co można zrobić z tym małym plikiem avmplus.exe Okazało się, że można wiele od Japończyków nauczyć się. Pasjonaci ActionScriptu w Japonii zrobili sobie serwis Spark project w którym dzielą się swoimi kodami. Całkiem niedawno (15 marca) zrobili sobie konferencję poświęconą formatowi SWF o nazwie Shibuya.abc W sieci zamieścili nawet nagrania z tej konferencji.
Warto poczytać o tym co można zrobić z Tamarinem. Postawili na ActionScript 3 jako technologię serwer-side.

Następnie pokazali że warto wymyślać nowe języki programowania które w wyniku kompilacji otrzyma się SWF. Streszczenie można poczytać tu



O optymalizacji Flash Lite można posłuchać i poczytać


O dekompilacji i czytaniu kodu binarnego ActionScriptu z SWF można pooglądać


O tym jak rozwija się Gnash - opensourcowy Flash Player można poczytać i pooglądać.


I chyba najciekawsza prezentacja o tym jak można programować w systemie Windows różne aplikacje w ActionScript 3 za pomocą biblioteki winQuery i awmplus.exe


Szkoda, że tak mało się pisze o tym co wymyślają Japończycy.

1 komentarz:

Krzysztof pisze...

Kiedy Japończycy zauważą, że w świecie informatyki językiem międzynarodowym jest angielski a nie japoński, to może będzie się o ich pomysłach pisało więcej.