Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Jak vytvořit pseudo 3D hry v HTML5 canvasu s raycastingem

David Majda aura:98
18. 12. 2008 17:42

Re: ??

celé vlákno

Se statickým typováním nemáte úplně pravdu. Zrovna můj dnešní článek tady na Zdrojáku ukazuje, jak se s absencí typových deklarací poměrně úspěšně vyrovnává interpret SquirrelFish (WebKit/Safari) - jednoduše si potřebná data posbírá v runtime. Podobně to dělá V8 (Google Chrome). SpiderMonkey/TraceMoneky (Firefox) zas používá techniku trace trees, která nedostatek informací o typch také v určitých případech dovede obejít.

Pokud se interpret napíše opravdu dobře (což ale stojí poměrně hodně úsilí, proto se to moc nedělá), dá se s ním dosáhnout rychlosti blízké rychlosti céčka. Viz zmínka Avi Bryanta o Strongtalku, dialektu SmallTalku:

Strongtalk is that it does allow optional static type annotations, but the optimizer completely ignores them: your code runs exactly as fast if you duck type everything as if you statically type everything. That’s not because the implementors were lazy - their goal was to produce the fastest system possible, it’s just that their dynamic implementation was already fast enough that the static information didn’t help.

Podobně také viz jazyk Self:

Despite this complete devotion to objects, Self code runs at up to half the speed of optimized C, the high performance being achieved through dynamic profile-driven optimization.

JavaScript na tom sice nyní tak dobře, aby běžel polovinou rychlosti céčkového kódu, není, ale není nepravděpodobné, že brzy někde okolo těchto hodnot bude.