Csak az Apple ódzkodik a vektoros típusoktól
Újabb front nyílhat a böngészőháborúban, a nagy böngészők ugyanis nem állnak fel egységesen a SIMD.js kiterjesztés mögött. Az új JavaScript-képesség a vektoros műveleteket gyorsíthatja, az Apple azonban elzárkózik az implementációtól.
Már csak az Apple maradt adós a SIMD.js támogatásával, miután a Google hivatalosan bejelentette, a Chrome-ban is implementálni fogja az új, különleges vektoros típusokat. A Microsoft és a Mozilla szintén beállt már a sorba, így várhatóan év végére minden jelentős részesedéssel rendelkező böngészőben elérhető lesz majd az új képesség - kivéve a Safarit. A támogatás már tesztelhető a Chrome és a Firefox fejlesztői kiadásában, év végére várhatóan a Chrome (és az azonos műszaki alapokat használó Opera), a Firefox és a Microsoft Edge is támogatni fogja a kiterjesztést.
SIMD.js - új típusok, vektoros feldolgozáshoz
A SIMD.js három új vektoros típust ad a JavaScripthez, a float64x4, float64x2 és uint32x4, valamint az ezekhez tartozó Typed Array nézeteket. A típusokon végzett műveleteket már az adott böngésző JavaScript-motorjának kell az adott hardverplatform által támogatott tulajdonképpeni SIMD-utasításokra lefordítani, a típusok használatával azonban lehetőség nyílik arra, hogy ezt a fejlesztő megkönnyítse.
Machine recruiting: nem biztos, hogy szeretni fogod Az AI visszafordíthatatlanul beépült a toborzás folyamatába.
A típusok használatával rendkívül meggyorsítható az olyan adatok feldolgozása, amelyek jellemzően 2-3-4 tagú vektorokba rendezhetőek. Az első implementációk tesztjei szerint a gyorsulás adott feladatok alatt 3-12-szeres is lehet, elsősorban grafikus (2D és 3D) rutinok, digitális jelfeldolgozás és titkosítási illetve tömörítési eljárások profitálhatnak belőle. A gyorsulásból szintén hatalmasat profitálhatnak azok a keretrendszerek, amelyek a JavaScriptet köztes nyelvként használják - a dedikált SIMD típusok ezek teljesítményét is közelebb hozhatják a natív kódhoz.
Részletesebb leírást és bemutatót a Mozilla és az Intel oldalán lehet olvasni.
Az Apple nemet mond?
Egyelőre a nagy szereplők közül csak az Apple hallgat mélyen az implementációról. Mivel utóbbi a piac jelentős részét birtokolja az erős telefonos-tabletes jelenlét révén, a SIMD.js széles körű elterjedését visszafoghatja, ha a cég nem fogja azt támogatni. A Safari által használt motor, a WebKit fejlesztői levelezőlistáján Nadav Rotem, az Apple fejlesztője még tavaly ősszel fogalmazta meg a típusokkal kapcsolatos kritikát, eszerint a JS-fejlesztők helyett a motornak, a JIT-fordítónak kell gondoskodnia a JavaScript-kód vektorizációjáról, az adott processzor képességeinek megfelelően. Rotem kritikája szerint a SIMD.js használata egyenetlen, kiszámíthatatlan sebességet produkál hardvertől függően, ami pontosan a JavaScript hordozhatóságának ártana a leginkább.
A WebKit listán kibontakozó vitát érdemes végigolvasni, abból ugyanis a JavaScript jövőjét illető eltérő nézetek csapnak össze. Egyik oldalon a szereplők a JavaScriptet minél közelebb hoznák a natív kódhoz. Ez a hozzáállás egyre több hardveres képességet tesz elérhetővé a fejlesztő számára, mellékhatásként viszont az egyes architektúrák közti különbséggel is a fejlesztőnek kell megbirkóznia. A másik oldal a kiszámítható viselkedést és az architektúrák közötti hordozhatóságot szeretné maximalizálni és tiltakozik minden olyan kezdeményezés ellen, amely a fejlesztőnek hozzáférést ad hardverspecifikus funkciókhoz - ebben a vitában ezt az álláspontot az Apple fejlesztői képviselik.