WebAssembly

Címkék

A Google, a Microsoft, a Mozilla és a WebKit projekt mérnökei bejelentették, hogy összeálltak egy új projekt, a WebAssembly létrehozására.

[ WebAssembly @ GitHub | WebAssembly @ Mozilla Blog ]

Hozzászólások

És jön vele a sechole-ok új generációja is :D. Pedig már kezdett elég stabil lenni a JS és társai.

--

Végre valaki rájött, hogy ha teljesítmény kell, akkor dobni kell a JavaScriptet. Persze a Java vagy a .NET, vagy esetleg az LLVM nem jó, kell csinálni egy újat. Meglátjuk mi sül ki ebből. A vak is megmondta.

Mondjuk az asm.js eleve kidobja az összes dinamizmust a nyelvből. Aztán erre az alapra teszünk egy bináris sorosító réteget, ami úgy van megtervezve (a design dokumentumok között olvastam), hogy egyből gépi kódra tudja majd fordítani a végrehajtó engine. A végeredménynek már nincs sok köze a JS-hez. Csak annyi, hogy a be és kihívást meg kell oldani a sima JS felé.
Sajnos nem ismerem nagyon az asm.js-t. Arra lennék kiváncsi, hogy a garbage collectort "kötelező"-e használni, vagy le lehet menni explicit malloc/free szerű memóriafoglalás szintre? Tudja valaki?

Szerk.: az általad linkelt cikkben ott volt a válasz, csak tovább kellett olvasni: "Longer term, more features supporting other languages will be added, including the ability to create garbage-collected data (currently, asm.js creates and manages its own heap)."

Ebből nekem az jön ki, hogy az asm.js-ben nincs GC, tehát a nevén meg a szintaxisán kívül már tényleg semmi köze nincs a JavaScript-hez. Ha a szintaxist is elhagyjuk, akkor marad a neve :-).

Az asm.js typed array-okat használ a heap emulálására, (ha jól emlékszem fordításkor meg is kell adni menni a max használt memoria, és ekkora területet fixen lefoglal). A használható utasítások meg kimerülnek az array indexelésben, meg az aritmetikai műveletekben. Azaz tényleg olyan mint egy torz assembly nyelv.
A web assembly végre kidobja a hülye js szintaxist (aminek parse-olása, és ellenörzése nem kevés overhead jelenleg). .Net, Java, meg LLVM-mel ellentétben az is szempont, hogy polyfill-lel a 0. naptól működjön minden böngészőben. Azaz WA binárisból egy js kód asm.js-t generálhat, amit meg akár mint közönséges js kódot futtathat is a böngésző, akkor is ha nincs benne asm.js specifikus optimalizáció. (Chrome-ban, IE-ben pl tudtommal nincs).

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Kíváncsi mi lesz ezután a nacl sorsa.

a közvélekedés szerint ez egy DOA projekt.

--
GPLv3-as hozzászólás.

Nocsak, eljött az én időm?
> Sol omnibus lucet.

Addig addig reszelik a Javascript helyetti gyors nyelvet, amíg eljutnak a jó öreg C-hez csak JIT fordítással. :D