W3C ha conferito a WebAssembly lo status di standard raccomandato

Consorzio W3C ha annunciato per l'assegnazione della tecnologia WebAssembly come standard raccomandato. WebAssembly fornisce un codice intermedio universale a basso livello indipendente dal browser per l'esecuzione di applicazioni compilate da diversi linguaggi di programmazione. WebAssembly è posizionato come una tecnologia più promettente e portabile per la creazione di applicazioni web ad alte prestazioni. WebAssembly può essere utilizzato per affrontare attività che richiedono elevate prestazioni, come la codifica video, l'elaborazione audio, la manipolazione grafica e 3D, lo sviluppo di giochi, operazioni crittografiche, calcoli matematici e la creazione di implementazioni portabili di linguaggi di programmazione.

WebAssembly ricorda molto Asm.js, ma si differenzia per essere un formato binario non legato a JavaScript. In WebAssembly non è necessario l'uso di un garbage collector, poiché si utilizza la gestione esplicita della memoria. Grazie all'uso del JIT, per WebAssembly è possibile raggiungere un livello di prestazioni vicino al codice nativo. Tra le principali sfide di WebAssembly c'è la garanzia della portabilità, la prevedibilità del comportamento e l'identità dell'esecuzione del codice su diverse piattaforme. Ultimamente, WebAssembly è anche promosso come una piattaforma universale per l'esecuzione sicura del codice in qualsiasi infrastruttura, sistema operativo e dispositivo, senza limitarsi ai browser.

Il W3C ha standardizzato tre specifiche relative a WebAssembly:

  • WebAssembly Core — descrive una macchina virtuale a basso livello per l'esecuzione del codice intermedio WebAssembly. Le risorse associate a WebAssembly sono fornite nel formato «.wasm», simile a un file «.class» in Java e contenente dati statici e segmenti di codice per lavorare con questi dati.
  • WebAssembly Web API — definisce un'interfaccia di programmazione basata sul meccanismo Promise per richiedere ed eseguire risorse «.wasm». Il formato delle risorse WebAssembly è ottimizzato per l'avvio dell'esecuzione senza attendere il caricamento completo del file, il che aumenta la reattività delle applicazioni web.
  • Interfaccia JavaScript di WebAssembly — fornisce un'API per l'integrazione con JavaScript. Permette di ottenere valori e trasmettere parametri alle funzioni WebAssembly. L'esecuzione di WebAssembly rispetta il modello di sicurezza di JavaScript e tutta l'interazione con il sistema sottostante avviene analogamente all'esecuzione del codice JavaScript.

In futuro si prevede di preparare specifiche per tali funzionalità di WebAssembly come:

  • Multi-threading con memoria condivisa e accesso atomico alla memoria;
  • Operazioni vettoriali basate su SIMD, che consentono di parallelizzare l'esecuzione dei cicli;
  • Tipi di riferimento per puntamenti diretti su oggetti dal codice WebAssembly;
  • Possibilità di chiamata di funzioni senza consumare spazio aggiuntivo nello stack;
  • Integrazione con i moduli ECMAScript — possibilità di caricare codice WebAssembly da JavaScript come moduli conformi alla specifica ECMAScript 6;
  • Modalità di lavoro con il garbage collector;
  • Interfacce di debug;
  • WASI (WebAssembly System Interface) — API per interagire direttamente con il sistema operativo (API POSIX per lavorare con file, socket, ecc.).

    Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster