Mivel mindegyik említett nyelvben van egy virtuális gép, nem igazán értem a kérdésedet. Az ASM.js egy "nyelv", amire több nyelvből lehet fordítani (és elméletbe visszafelé is). Alacsonyabb szintű, mivel a JavaScript csak egy kisebb részhalmazát támogatja, viszont azok, amiket támogat nagyon gyorsak a jelenleg elérhető JS motorokon. Van benne fordítás idejű és dinamikus validáció is, ezzel biztosítva a jobb kódminőséget.
Ha a dolog célja, hogy a jövőben komolyabb alkalmazások költözhessenek a böngészőbe akkor nem lehet szempont, hogy most hogy van. Az egész asm.js akkor nyer majd értelmet, ha kijönnek a böngészők jövőbeli kiadásai.
Az egész mloc.js, meg az alattunk levő bookmark is azzal foglalkozik, hogy szép meg jó a javascript, csak hosszú távon alkalmatlan arra, amire használják. Mégis sokan erre a lapra tettek fel mindent (Windows RT, Mozilla OS, HTML 5 és társaik), ezért megpróbálnak kihozni belőle, amit csak lehet.
Szerintem arra gondolt, hogy már nem csak kliens, hanem szerveroldalon is van lehetőség ezen a nyelven programozni.
Egy épkézláb VM nem hiszem hogy a kompatibilitás útjába állna. A hagyományos, JS-ben írt kódokat a böngésző egyszerűen lefordíthatná a VM utasításaira.
Viszont így megnyílna a lehetőség más nyelvben írt kódok futtatására is a böngészőben (előrefordított bytekód formájában).
Lehetne kiindulni neadjisten egy Java MIDP-ből, ehhez hozzáadni a DOM-ot és néhány elengedhetetlen API-t, ez megoldaná a performasz problémákat, és megnyitná az utat sok más nyelv webes verziója előtt.
Ez a jelenlegi helyzet. Igazából egyből natív kódba fordítanak, szóval nincs valódi VM saját bájtkóddal.
A magas szintű nyelv, amit támogatnak a JS, az alacsony szintű pedig az asm.js nyelvezete lenne. - Amit mondok, hogy ennyi erővel az asm.js helyett, lehetne egy valódi, bejáratott VM bájtkódja az alacsonyszintű eszköz. Emellé pluszba (a kompatibilitás miatt) mellékelne a böngésző egy JS fordítót a "régi" oldalakhoz.
Mindkét megoldás feltételez egy konszenszust a böngészőgyártók részéről, valamint az implementáció költségeit. Nem látom mit nyerünk, ha tiszta lap helyett egy JS alapú alacsony szintű eszközt válaszunk.
A böngészők fragmentációjának köszönhetően mindenféle kliensoldali fejlesztés (mint ez az asm.js) nagyon nehéz ügy, mert sosem tudod, mikor jut el elég emberhez, így mindenféle wrappert kell írnod hozzá, hogy működjön a lehető legtöbb helyen, ami a fejlesztést mindenképpen bonyolultabbá teszi. Tehát max. ellenőrzött helyen, pl. szerveroldalon érdemes az elején használni, így aztán vagy lesz belőle valami vagy sem.
Ennek fényében valóban igazad van, hogy van-e értelme a JS-be beleerőltetni ezt az egészet.
Hogyne lenne szempont. Ha egy meglévő infrastruktúrát lehet használni egy új kifejlesztése helyett, az éveket spórol meg, ha egyáltalán az új valaha is elterjedne. Mivel ez a nyelv a JS egy korlátozott változata, így az asm.js kód már ma is futtatható mindenhol, viszont a motorok fejlesztői ki tudják majd használni optimalizációhoz.
Itt pont hogy nem használunk meglévőt. Az új eszköz előnyeinek élvezéséhez szükség van konszenzusra (vagyis szabványra és szándékra), és implementációra. Implementálni kell a böngészőgyártónak és implementáli kell a webprogramozónak. - Ez a képlet ugyanúgy igaz az asm.js és egy szabványosított VM esetén.
Arról nem is beszélve, hogy vannak bejáratott VM-ek. Például van egy aminek van GPL-es implementációja és a gyári böngészők készítői is rendelkeznek hozzá saját implementációval.
De igen, mert az asm.js kód szabványos JavaScript kód, ami fut a mostani motorokkal is, ugyanolyan teljesítménnyel, mint bármilyen más szkript, ezért nem kell egy új infrastuktúrát kiépíteni, és az asm.js-t nem támogató böngészőkkel is kompatibilis marad. A motorokhoz azonban folyamatosan tudják hozzáadni az optimalizációt az ilyen kódra.
Legalábbis a fejlesztőeszközben, ha asmjs kódot szeretnél gyártani, azt validálni kell. - Első látásra persze közelebb van, mert JS alapú, de nem hiszem, hogy szükség van ilyen kompromisszumokra.
Én úgy látom, hogy mindn szereplő a felhőt erölteti szóval a szándék megvan, hogy gyorsabb platform legyen a web.
Olyan fordítókra van szükség, amik asm.js kódra fordítják az általad választott típusos nyelvet. Az ilyen eszközök gyorsabban terjednek, mint amilyen nehézkes egy új nyelv bevezetése a böngészőbe (a Dart sem jutott még sehova, valószínűleg nem is fog). Ez egy eléggé realisztikus megoldás a jelenlegi problémákra.
Anno mloc-js -en is bananabench -el demozták a dolog hatékonyságát (18. perc környéke).
Elvielben mindenféle kódnak jót tehet egyébként tekintve, hogy ilyenkor a vm előre tudhatja, hogy érdemes natív kódót fordítani ebből a részből, plusz nem kell megvárnia míg elég információja gyűlik össze a kódrol, hogy ráeressze jit-et mert a "milyen típusú szokott ez itt lenni" kérdést előre megválaszolják neki.
Ezen felül a generált kódból ki lehet hagyni a "de ha mégsem az amit betippeltünk" feltétel ellenőrzéseket is ami szintét dobhat valamennyit a generált nativ kód teljesítményén.
Ugynézki v8 oldalon is elindultak előkészületek, már van "neve" a gyereknek #2599 alatt.
Amit nem értek
Mivel mindegyik említett
Pontosítanék
Egy olyan VM, aminek kialakításánál a JS-kompatibilitás a fő szempont nekem félmegoldásnak tűnik. Teljesen fölösleges kompromisszum.
Mert a JavaScript VM már ott
Nem lehet szempont
Amúgy nem tudom milyen JS VM-re gondolsz.
Az egész mloc.js, meg az
Szerintem arra gondolt, hogy már nem csak kliens, hanem szerveroldalon is van lehetőség ezen a nyelven programozni.
Olvastam
Egy épkézláb VM nem hiszem hogy a kompatibilitás útjába állna. A hagyományos, JS-ben írt kódokat a böngésző egyszerűen lefordíthatná a VM utasításaira.
Viszont így megnyílna a lehetőség más nyelvben írt kódok futtatására is a böngészőben (előrefordított bytekód formájában).
Lehetne kiindulni neadjisten egy Java MIDP-ből, ehhez hozzáadni a DOM-ot és néhány elengedhetetlen API-t, ez megoldaná a performasz problémákat, és megnyitná az utat sok más nyelv webes verziója előtt.
Az a baj, hogy minden JS VM
Ez van most
A magas szintű nyelv, amit támogatnak a JS, az alacsony szintű pedig az asm.js nyelvezete lenne. - Amit mondok, hogy ennyi erővel az asm.js helyett, lehetne egy valódi, bejáratott VM bájtkódja az alacsonyszintű eszköz. Emellé pluszba (a kompatibilitás miatt) mellékelne a böngésző egy JS fordítót a "régi" oldalakhoz.
Mindkét megoldás feltételez egy konszenszust a böngészőgyártók részéről, valamint az implementáció költségeit. Nem látom mit nyerünk, ha tiszta lap helyett egy JS alapú alacsony szintű eszközt válaszunk.
A böngészők fragmentációjának
Ennek fényében valóban igazad van, hogy van-e értelme a JS-be beleerőltetni ezt az egészet.
Félreértés
Miért törölted?
Rájöttem, hogy félreértettem
Hogyne lenne szempont. Ha egy
Nem ezt használnánk
Arról nem is beszélve, hogy vannak bejáratott VM-ek. Például van egy aminek van GPL-es implementációja és a gyári böngészők készítői is rendelkeznek hozzá saját implementációval.
De igen, mert az asm.js kód
Ennek fényében más a leányzó
Kell infrastrukttúra
Én úgy látom, hogy mindn szereplő a felhőt erölteti szóval a szándék megvan, hogy gyorsabb platform legyen a web.
Olyan fordítókra van szükség,
Jelen pillanatban az
A prog.hu szerint a Firefox éjszakaiba már bekerült az asm.js támogatása.
Már rendben az oldal.
Hol lehet ezt igazán
Játékok
https://blog.mozilla.org/blog/2013/03/27/mozilla-is-unlocking-the-power-of-the-web-as-a-platform-for-gaming/
Anno mloc-js -en is bananabench -el demozták a dolog hatékonyságát (18. perc környéke).
Elvielben mindenféle kódnak jót tehet egyébként tekintve, hogy ilyenkor a vm előre tudhatja, hogy érdemes natív kódót fordítani ebből a részből, plusz nem kell megvárnia míg elég információja gyűlik össze a kódrol, hogy ráeressze jit-et mert a "milyen típusú szokott ez itt lenni" kérdést előre megválaszolják neki.
Ezen felül a generált kódból ki lehet hagyni a "de ha mégsem az amit betippeltünk" feltétel ellenőrzéseket is ami szintét dobhat valamennyit a generált nativ kód teljesítményén.
Ugynézki v8 oldalon is elindultak előkészületek, már van "neve" a gyereknek #2599 alatt.